open-consul/ui/packages/consul-ui/app/helpers/selectable-key-values.js
John Cowen c98130cc08
ui: Move to Workspaced Structure (#8994)
* ui: Add the most basic workspace root in /ui

* We already have a LICENSE file in the repository root

* Change directory path in build scripts ui-v2 -> ui

* Make yarn install flags configurable from elsewhere

* Minimal workspace root makefile

* Call the new docker specific target

* Update yarn in the docker build image

* Reconfigure the netlify target and move to the higher makefile

* Move ui-v2 -> ui/packages/consul-ui

* Change repo root to refleect new folder structure

* Temporarily don't hoist consul-api-double

* Fixup CI configuration

* Fixup lint errors

* Fixup Netlify target
2020-10-21 15:23:16 +01:00

47 lines
1 KiB
JavaScript

import { helper } from '@ember/component/helper';
import { slugify } from 'consul-ui/helpers/slugify';
export const selectableKeyValues = function(params = [], hash = {}) {
let selected;
const items = params.map(function(item, i) {
let key, value;
switch (typeof item) {
case 'string':
key = slugify([item]);
value = item;
break;
default:
if (item.length > 1) {
key = item[0];
value = item[1];
} else {
key = slugify([item[0]]);
value = item[0];
}
break;
}
const kv = {
key: key,
value: value,
};
switch (typeof hash.selected) {
case 'string':
if (hash.selected === item[0]) {
selected = kv;
}
break;
case 'number':
if (hash.selected === i) {
selected = kv;
}
break;
}
return kv;
});
return {
items: items,
selected: typeof selected === 'undefined' ? items[0] : selected,
};
};
export default helper(selectableKeyValues);