Skip to content

Commit 5d6c69b

Browse files
committed
feat: add theme option for today in datepicker
1 parent 51621a1 commit 5d6c69b

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

packages/ui/src/components/Datepicker/Views/Days.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
getWeekDays,
1010
isDateEqual,
1111
isDateInRange,
12+
isDateToday,
1213
Views,
1314
} from "../helpers";
1415

@@ -23,6 +24,7 @@ export interface DatepickerViewsDaysTheme {
2324
base: string;
2425
selected: string;
2526
disabled: string;
27+
today: string;
2628
};
2729
};
2830
}
@@ -62,6 +64,7 @@ export function DatepickerViewsDays() {
6264
const isSelected = selectedDate && isDateEqual(selectedDate, currentDate);
6365
const isDisabled =
6466
!isDateInRange(currentDate, minDate, maxDate) || (filterDate && !filterDate(currentDate, Views.Days));
67+
const isToday = isDateToday(currentDate);
6568

6669
return (
6770
<button
@@ -70,6 +73,7 @@ export function DatepickerViewsDays() {
7073
type="button"
7174
className={twMerge(
7275
theme.items.item.base,
76+
isToday && theme.items.item.today,
7377
isSelected && theme.items.item.selected,
7478
isDisabled && theme.items.item.disabled,
7579
)}

packages/ui/src/components/Datepicker/helpers.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ export function isDateEqual(date: Date, selectedDate: Date): boolean {
4444
return date.getTime() === selectedDate.getTime();
4545
}
4646

47+
export function isDateToday(date: Date): boolean {
48+
const today = new Date();
49+
return isDateEqual(date, today);
50+
}
51+
4752
export function isMonthEqual(date: Date, selectedDate: Date): boolean {
4853
return date.getMonth() === selectedDate.getMonth();
4954
}

packages/ui/src/components/Datepicker/theme.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export const datePickerTheme = createTheme<DatepickerTheme>({
4949
base: "block flex-1 cursor-pointer rounded-lg border-0 text-center text-sm font-semibold leading-9 text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600",
5050
selected: "bg-primary-700 text-white hover:bg-primary-600",
5151
disabled: "text-gray-500",
52+
today: "",
5253
},
5354
},
5455
},

0 commit comments

Comments
 (0)