diff options
author | 2023-11-13 22:38:01 +0100 | |
---|---|---|
committer | 2023-11-13 21:38:01 +0000 | |
commit | 38586caab78c3ae18fefe04886ee1195feb2b236 (patch) | |
tree | 82adab11c28f2f551eaf3edb0cc1044b3deb6dfb /src/ui/c-buttons-select/c-buttons-select.vue | |
parent | 043e4f0a08fa9e1966b9733c58f33ca93d45da50 (diff) | |
download | it-tools-38586caab78c3ae18fefe04886ee1195feb2b236.tar.gz it-tools-38586caab78c3ae18fefe04886ee1195feb2b236.tar.zst it-tools-38586caab78c3ae18fefe04886ee1195feb2b236.zip |
refactor(uuid generator): uuid version picker (#751)
Diffstat (limited to 'src/ui/c-buttons-select/c-buttons-select.vue')
-rw-r--r-- | src/ui/c-buttons-select/c-buttons-select.vue | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/ui/c-buttons-select/c-buttons-select.vue b/src/ui/c-buttons-select/c-buttons-select.vue index 38fff66..a1ffa42 100644 --- a/src/ui/c-buttons-select/c-buttons-select.vue +++ b/src/ui/c-buttons-select/c-buttons-select.vue @@ -1,10 +1,11 @@ <script setup lang="ts" generic="T extends unknown"> +import _ from 'lodash'; import type { CLabelProps } from '../c-label/c-label.types'; import type { CButtonSelectOption } from './c-buttons-select.types'; const props = withDefaults( defineProps<{ - options?: CButtonSelectOption<T>[] | string[] + options?: CButtonSelectOption<T>[] | string[] | Record<string, T> value?: T size?: 'small' | 'medium' | 'large' } & CLabelProps >(), @@ -20,14 +21,18 @@ const emits = defineEmits(['update:value']); const { options: rawOptions, size } = toRefs(props); -const options = computed(() => { - return rawOptions.value.map((option: string | CButtonSelectOption<T>) => { - if (typeof option === 'string') { - return { label: option, value: option }; - } +const options = computed<CButtonSelectOption<T>[]>(() => { + if (_.isArray(rawOptions.value)) { + return rawOptions.value.map((option: string | CButtonSelectOption<T>) => { + if (typeof option === 'string') { + return { label: option, value: option }; + } - return option; - }); + return option; + }) as CButtonSelectOption<T>[]; + } + + return _.map(rawOptions.value, (value, label) => ({ label, value })) as CButtonSelectOption<T>[]; }); const value = useVModel(props, 'value', emits); |