Skip to content

Commit 097b686

Browse files
committed
fix(packages): ui: fix select prop separator
1 parent b039675 commit 097b686

File tree

4 files changed

+17
-6
lines changed

4 files changed

+17
-6
lines changed

packages/ui/src/components/select/select-option.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import type { SelectOptionData, SelectOptionProps } from './types';
99
import { isGroupOption } from './shared';
1010
1111
defineOptions({
12-
name: 'SSelectOption'
12+
name: 'SSelectOption',
13+
inheritAttrs: false
1314
});
1415
1516
defineProps<SelectOptionProps<T>>();
@@ -27,14 +28,14 @@ const slotKeys = computed(() => Object.keys(slots) as (keyof Slots)[]);
2728
<template>
2829
<SelectGroup v-if="isGroupOption(item)" :class="ui?.group">
2930
<SSelectLabel :class="ui?.groupLabel">{{ item.label }}</SSelectLabel>
30-
<SSelectSeparator v-if="item.separator" :class="ui?.separator" />
31+
<SSelectSeparator v-if="separator || item.separator" :class="ui?.separator" />
3132
<SSelectSingleOption v-for="(opt, index) in item.items" :key="index" :size="size" :item="opt" :ui="ui">
3233
<template v-for="slotKey in slotKeys" :key="slotKey">
3334
<slot :name="slotKey" :item="opt" />
3435
</template>
3536
</SSelectSingleOption>
3637
</SelectGroup>
37-
<SSelectSingleOption v-else :size="size" :item="item" :ui="ui">
38+
<SSelectSingleOption v-else :size="size" :item="item" :ui="ui" :separator="separator">
3839
<template v-for="slotKey in slotKeys" :key="slotKey">
3940
<slot :name="slotKey" :item="item" />
4041
</template>

packages/ui/src/components/select/select-single-option.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import SSelectSeparator from './select-separator.vue';
66
import type { SelectSingleOptionProps } from './types';
77
88
defineOptions({
9-
name: 'SSelectSingleOption'
9+
name: 'SSelectSingleOption',
10+
inheritAttrs: false
1011
});
1112
1213
defineProps<SelectSingleOptionProps>();
@@ -21,5 +22,5 @@ defineProps<SelectSingleOptionProps>();
2122
<slot name="itemIndicatorIcon" />
2223
</SSelectItemIndicator>
2324
</SSelectItem>
24-
<SSelectSeparator v-if="item.separator" :class="ui?.separator" />
25+
<SSelectSeparator v-if="separator || item.separator" :class="ui?.separator" />
2526
</template>

packages/ui/src/components/select/select.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,14 @@ function getModelValue(modelValue: AcceptableValue | AcceptableValue[] | undefin
112112
</SSelectScrollUpButton>
113113
<SSelectViewport :class="ui?.viewport" :nonce="nonce" :position="position">
114114
<slot>
115-
<SSelectOption v-for="(item, index) in items" :key="index" :size="size" :item="item" :ui="ui">
115+
<SSelectOption
116+
v-for="(item, index) in items"
117+
:key="index"
118+
:size="size"
119+
:item="item"
120+
:ui="ui"
121+
:separator="separator"
122+
>
116123
<template #leading="slotProps">
117124
<slot name="itemLeading" :item="slotProps.item" />
118125
</template>

packages/ui/src/components/select/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export interface SelectSingleOptionProps<T extends AcceptableValue = AcceptableV
7171
size?: ThemeSize;
7272
item: SelectOptionData<T>;
7373
ui?: Partial<Record<SelectSingleOptionSlots, ClassValue>>;
74+
separator?: boolean;
7475
}
7576

7677
export type SelectOptionSlots = Extract<
@@ -82,6 +83,7 @@ export interface SelectOptionProps<T extends AcceptableValue = AcceptableValue>
8283
size?: ThemeSize;
8384
item: SelectOptionData<T> | SelectGroupOptionData<T>;
8485
ui?: Partial<Record<SelectOptionSlots, ClassValue>>;
86+
separator?: boolean;
8587
}
8688

8789
export type SelectUi = Partial<Record<SelectSlots, ClassValue>>;

0 commit comments

Comments
 (0)