Skip to content

Commit e7b69b7

Browse files
authoredNov 26, 2024··
fix(Calendar): handle icons in RTL mode (#2770)
1 parent 9478fc0 commit e7b69b7

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed
 

‎src/runtime/components/Calendar.vue

+9-4
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ const { code: locale, dir, t } = useLocale()
7171
7272
const rootProps = useForwardPropsEmits(reactiveOmit(props, 'range', 'modelValue', 'defaultValue', 'color', 'size', 'monthControls', 'yearControls', 'class', 'ui'), emits)
7373
74+
const prevYearIcon = computed(() => dir.value === 'rtl' ? appConfig.ui.icons.chevronDoubleRight : appConfig.ui.icons.chevronDoubleLeft)
75+
const prevMonthIcon = computed(() => dir.value === 'rtl' ? appConfig.ui.icons.chevronRight : appConfig.ui.icons.chevronLeft)
76+
const nextYearIcon = computed(() => dir.value === 'rtl' ? appConfig.ui.icons.chevronDoubleLeft : appConfig.ui.icons.chevronDoubleRight)
77+
const nextMonthIcon = computed(() => dir.value === 'rtl' ? appConfig.ui.icons.chevronLeft : appConfig.ui.icons.chevronRight)
78+
7479
const ui = computed(() => calendar({
7580
color: props.color,
7681
size: props.size
@@ -99,21 +104,21 @@ const Calendar = computed(() => props.range ? RangeCalendar : SingleCalendar)
99104
>
100105
<Calendar.Header :class="ui.header({ class: props.ui?.header })">
101106
<Calendar.Prev v-if="props.yearControls" :prev-page="(date: DateValue) => paginateYear(date, -1)" :aria-label="t('calendar.prevYear')" as-child>
102-
<UButton :icon="appConfig.ui.icons.chevronDoubleLeft" :size="props.size" color="neutral" variant="ghost" />
107+
<UButton :icon="prevYearIcon" :size="props.size" color="neutral" variant="ghost" />
103108
</Calendar.Prev>
104109
<Calendar.Prev v-if="props.monthControls" :aria-label="t('calendar.prevMonth')" as-child>
105-
<UButton :icon="appConfig.ui.icons.chevronLeft" :size="props.size" color="neutral" variant="ghost" />
110+
<UButton :icon="prevMonthIcon" :size="props.size" color="neutral" variant="ghost" />
106111
</Calendar.Prev>
107112
<Calendar.Heading v-slot="{ headingValue }" :class="ui.heading({ class: props.ui?.heading })">
108113
<slot name="heading" :value="headingValue">
109114
{{ headingValue }}
110115
</slot>
111116
</Calendar.Heading>
112117
<Calendar.Next v-if="props.monthControls" :aria-label="t('calendar.nextMonth')" as-child>
113-
<UButton :icon="appConfig.ui.icons.chevronRight" :size="props.size" color="neutral" variant="ghost" />
118+
<UButton :icon="nextMonthIcon" :size="props.size" color="neutral" variant="ghost" />
114119
</Calendar.Next>
115120
<Calendar.Next v-if="props.yearControls" :next-page="(date: DateValue) => paginateYear(date, 1)" :aria-label="t('calendar.nextYear')" as-child>
116-
<UButton :icon="appConfig.ui.icons.chevronDoubleRight" :size="props.size" color="neutral" variant="ghost" />
121+
<UButton :icon="nextYearIcon" :size="props.size" color="neutral" variant="ghost" />
117122
</Calendar.Next>
118123
</Calendar.Header>
119124
<div :class="ui.body({ class: props.ui?.body })">

0 commit comments

Comments
 (0)
Please sign in to comment.