Skip to content

Commit 9e86ad8

Browse files
fix: disabled days style
1 parent d1b0a4d commit 9e86ad8

File tree

6 files changed

+23
-8
lines changed

6 files changed

+23
-8
lines changed

example/app/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import 'dayjs/locale/de';
1818
import 'dayjs/locale/es';
1919
import 'dayjs/locale/fr';
2020
import 'dayjs/locale/tr';
21+
import 'dayjs/locale/fa';
2122

2223
const Themes: ITheme[] = [
2324
{ mainColor: '#0047FF', activeTextColor: '#fff' },
@@ -193,7 +194,7 @@ export default function MainPage() {
193194
//maxDate={dayjs().add(3, 'day').endOf('day')}
194195
//disabledDates={[dayjs(), dayjs().add(1, 'day')]}
195196
//disabledDates={(date) => [0, 6].includes(dayjs(date).day())} // disable weekends
196-
//firstDayOfWeek={1}
197+
//firstDayOfWeek={6}
197198
displayFullDays
198199
timePicker={timePicker}
199200
onChange={onChange}

example/components/LocaleSelector.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { memo } from 'react';
22
import { StyleSheet, View, Text, Pressable } from 'react-native';
33

4-
const Locales = ['en', 'de', 'es', 'fr', 'tr'];
4+
const Locales = ['en', 'de', 'es', 'fr', 'tr', 'fa'];
55

66
type Props = {
77
locale: string;

src/components/Day.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,21 @@ function Day({
6565
borderColor: selectedItemColor,
6666
backgroundColor: selectedItemColor,
6767
},
68+
disabled && style.disabledDay,
6869
]);
6970

7071
const textStyle = StyleSheet.flatten([
7172
isSelected
72-
? { color: '#fff', ...selectedTextStyle }
73+
? {
74+
color: '#fff',
75+
...selectedTextStyle,
76+
}
7377
: isToday
74-
? { ...calendarTextStyle, color: selectedItemColor, ...todayTextStyle }
78+
? {
79+
...calendarTextStyle,
80+
color: selectedItemColor,
81+
...todayTextStyle,
82+
}
7583
: calendarTextStyle,
7684
]);
7785

src/components/DaySelector.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const DaySelector = () => {
3030
firstDayOfWeek,
3131
theme,
3232
height,
33+
locale,
3334
} = useCalendarContext();
3435

3536
const { year, month, hour, minute } = getParsedDate(currentDate);
@@ -181,7 +182,7 @@ const DaySelector = () => {
181182

182183
return (
183184
<View style={styles.container} testID="day-selector">
184-
<WeekDays firstDayOfWeek={firstDayOfWeek} theme={theme} />
185+
<WeekDays locale={locale} firstDayOfWeek={firstDayOfWeek} theme={theme} />
185186
<View style={styles.daysContainer} testID="days">
186187
{daysGrid?.map((day, index) => {
187188
return day ? (

src/components/WeekDays.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@ import { getWeekdaysMin } from '../utils';
44
import { CalendarThemeProps } from '../types';
55

66
type WeekDaysProps = {
7+
locale: string | ILocale;
78
firstDayOfWeek: number;
89
theme: CalendarThemeProps;
910
};
1011

11-
const WeekDays = ({ firstDayOfWeek, theme }: WeekDaysProps) => {
12+
const WeekDays = ({ locale, firstDayOfWeek, theme }: WeekDaysProps) => {
1213
return (
1314
<View
1415
style={[styles.weekDaysContainer, theme?.weekDaysContainerStyle]}
1516
testID="week-days"
1617
>
17-
{getWeekdaysMin(firstDayOfWeek)?.map((item, index) => (
18+
{getWeekdaysMin(locale, firstDayOfWeek)?.map((item, index) => (
1819
<View key={index} style={styles.weekDayCell}>
1920
<Text style={theme?.weekDaysTextStyle}>{item}</Text>
2021
</View>

src/utils.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ export const getWeekdays = () => dayjs.weekdays();
1313

1414
export const getWeekdaysShort = () => dayjs.weekdaysShort();
1515

16-
export const getWeekdaysMin = (firstDayOfWeek: number) => {
16+
export const getWeekdaysMin = (
17+
locale: string | ILocale,
18+
firstDayOfWeek: number
19+
) => {
20+
dayjs().locale(locale);
1721
let days = dayjs.weekdaysMin();
1822
if (firstDayOfWeek > 0) {
1923
days = [

0 commit comments

Comments
 (0)