diff --git a/src/components/Header/Selectors.tsx b/src/components/Header/Selectors.tsx
deleted file mode 100644
index 849bbde..0000000
--- a/src/components/Header/Selectors.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import React, { memo } from 'react';
-import { StyleSheet, View } from 'react-native';
-import { useCalendarContext } from '../../calendar-context';
-import MonthButton from './month-button';
-import YearButton from './year-button';
-import { TimeButton } from './time-button';
-import { NavigationPosition } from '../../types';
-
-type Props = {
- position: NavigationPosition;
-};
-
-const Selectors = ({ position }: Props) => {
- const { mode, calendarView, timePicker } = useCalendarContext();
-
- return (
-
-
- {calendarView !== 'year' ? : null}
-
-
- {timePicker && mode === 'single' && calendarView !== 'year' ? (
-
- ) : null}
-
- );
-};
-
-export default memo(Selectors);
-
-const defaultStyles = StyleSheet.create({
- container: {
- flex: 1,
- flexDirection: 'row',
- alignItems: 'center',
- },
- monthAndYear: {
- gap: 5,
- flexDirection: 'row',
- alignItems: 'center',
- },
-});
diff --git a/src/components/Header/index.tsx b/src/components/Header/index.tsx
deleted file mode 100644
index 105dcb1..0000000
--- a/src/components/Header/index.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-import React, { memo } from 'react';
-import { View, StyleSheet } from 'react-native';
-import type { HeaderProps } from './types';
-import PrevButton from './prev-button';
-import NextButton from './next-button';
-import Selectors from './selectors';
-import { isEqual } from 'lodash';
-
-const Header = ({
- navigationPosition,
- styles = {},
- classNames = {},
-}: HeaderProps) => {
- return (
-
- {navigationPosition === 'left' ? (
-
-
-
-
-
-
-
- ) : navigationPosition === 'right' ? (
-
-
-
-
-
-
-
- ) : (
-
-
-
-
-
- )}
-
- );
-};
-
-const defaultStyles = StyleSheet.create({
- headerContainer: {
- paddingVertical: 3,
- },
- container: {
- padding: 5,
- gap: 10,
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'space-between',
- },
- navigation: {
- flexDirection: 'row',
- },
-});
-
-const customComparator = (
- prev: Readonly,
- next: Readonly
-) => {
- const areEqual =
- prev.PrevIcon === next.PrevIcon &&
- prev.NextIcon === next.NextIcon &&
- prev.navigationPosition === next.navigationPosition &&
- isEqual(prev.styles, next.styles) &&
- isEqual(prev.classNames, next.classNames);
-
- return areEqual;
-};
-
-export default memo(Header, customComparator);
diff --git a/src/components/Header/month-button.tsx b/src/components/Header/month-button.tsx
deleted file mode 100644
index dd9873d..0000000
--- a/src/components/Header/month-button.tsx
+++ /dev/null
@@ -1,47 +0,0 @@
-import React, { memo } from 'react';
-import dayjs from 'dayjs';
-import { Pressable, Text, View } from 'react-native';
-import { useCalendarContext } from '../../calendar-context';
-
-const MonthButton = () => {
- const {
- currentDate,
- calendarView,
- setCalendarView,
- locale,
- styles,
- classNames,
- disableMonthPicker,
- monthCaptionFormat,
- } = useCalendarContext();
-
- const currentMonthText = dayjs(currentDate)
- .locale(locale)
- .format(monthCaptionFormat === 'full' ? 'MMMM' : 'MMM');
-
- return (
-
- setCalendarView(calendarView === 'month' ? 'day' : 'month')
- }
- testID="btn-month"
- accessibilityRole="button"
- accessibilityLabel={currentMonthText}
- >
-
-
- {currentMonthText}
-
-
-
- );
-};
-
-export default memo(MonthButton);
diff --git a/src/components/Header/next-button.tsx b/src/components/Header/next-button.tsx
deleted file mode 100644
index 6be939f..0000000
--- a/src/components/Header/next-button.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-import React, { memo, useCallback } from 'react';
-import {
- Image,
- Pressable,
- StyleSheet,
- useColorScheme,
- View,
-} from 'react-native';
-import { useCalendarContext } from '../../calendar-context';
-import { YEAR_PAGE_SIZE } from '../../utils';
-import { ClassNames, Styles } from '../../types';
-import { UI } from '../../ui';
-import { isEqual } from 'lodash';
-import { COLORS } from '../../theme';
-
-const arrow_right = require('../../assets/images/arrow_right.png');
-
-type NextButtonProps = {
- style?: Styles[UI.button_next];
- className?: ClassNames[UI.button_next];
-};
-
-const NextButton = ({ style, className }: NextButtonProps) => {
- const {
- currentYear,
- onChangeMonth,
- onChangeYear,
- calendarView,
- components = {},
- } = useCalendarContext();
-
- const colorScheme = useColorScheme();
- const theme = colorScheme ?? 'light';
-
- const onPress = useCallback(() => {
- switch (calendarView) {
- case 'day':
- return onChangeMonth(1);
- case 'month':
- return onChangeYear(currentYear + 1);
- case 'year':
- return onChangeYear(currentYear + YEAR_PAGE_SIZE);
- default:
- return {};
- }
- }, [calendarView, currentYear, onChangeMonth, onChangeYear]);
-
- return (
-
-
- {components.IconNext || (
-
- )}
-
-
- );
-};
-
-const customComparator = (
- prev: Readonly,
- next: Readonly
-) => {
- const areEqual =
- prev.className === next.className && isEqual(prev.style, next.style);
-
- return areEqual;
-};
-
-export default memo(NextButton, customComparator);
-
-const defaultStyles = StyleSheet.create({
- iconContainer: {
- padding: 4,
- },
- next: {
- marginLeft: 3,
- },
-});
diff --git a/src/components/Header/prev-button.tsx b/src/components/Header/prev-button.tsx
deleted file mode 100644
index 6f584e3..0000000
--- a/src/components/Header/prev-button.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-import React, { memo, useCallback } from 'react';
-import {
- Image,
- Pressable,
- StyleSheet,
- useColorScheme,
- View,
-} from 'react-native';
-import { useCalendarContext } from '../../calendar-context';
-import { YEAR_PAGE_SIZE } from '../../utils';
-import { ClassNames, Styles } from '../../types';
-import { UI } from '../../ui';
-import { isEqual } from 'lodash';
-import { COLORS } from '../../theme';
-
-const arrow_left = require('../../assets/images/arrow_left.png');
-
-type PrevButtonProps = {
- style?: Styles[UI.button_prev];
- className?: ClassNames[UI.button_prev];
-};
-
-const PrevButton = ({ style, className }: PrevButtonProps) => {
- const {
- currentYear,
- calendarView,
- onChangeMonth,
- onChangeYear,
- components = {},
- } = useCalendarContext();
-
- const colorScheme = useColorScheme();
- const theme = colorScheme ?? 'light';
-
- const onPress = useCallback(() => {
- switch (calendarView) {
- case 'day':
- return onChangeMonth(-1);
- case 'month':
- return onChangeYear(currentYear - 1);
- case 'year':
- return onChangeYear(currentYear - YEAR_PAGE_SIZE);
- default:
- return {};
- }
- }, [calendarView, currentYear, onChangeMonth, onChangeYear]);
-
- return (
-
-
- {components.IconPrev || (
-
- )}
-
-
- );
-};
-
-const customComparator = (
- prev: Readonly,
- next: Readonly
-) => {
- const areEqual =
- prev.className === next.className && isEqual(prev.style, next.style);
-
- return areEqual;
-};
-
-export default memo(PrevButton, customComparator);
-
-const defaultStyles = StyleSheet.create({
- iconContainer: {
- padding: 4,
- },
- prev: {
- marginRight: 3,
- },
-});
diff --git a/src/components/Header/time-button.tsx b/src/components/Header/time-button.tsx
deleted file mode 100644
index 891e543..0000000
--- a/src/components/Header/time-button.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import dayjs from 'dayjs';
-import { useMemo } from 'react';
-import { Pressable, Text, View } from 'react-native';
-import { useCalendarContext } from '../../calendar-context';
-import { formatNumber, getParsedDate } from '../../utils';
-
-export const TimeButton = () => {
- const {
- currentDate,
- date,
- calendarView,
- setCalendarView,
- styles,
- classNames,
- numerals = 'latn',
- } = useCalendarContext();
-
- const { hour, minute } = useMemo(
- () => getParsedDate(date || currentDate),
- [date, currentDate]
- );
-
- const labelText = useMemo(() => {
- const hourLabel =
- hour < 10
- ? `${formatNumber(0, numerals)}${formatNumber(hour, numerals)}`
- : `${formatNumber(hour, numerals)}`;
-
- const minuteLabel =
- minute < 10
- ? `${formatNumber(0, numerals)}${formatNumber(minute, numerals)}`
- : `${formatNumber(minute, numerals)}`;
-
- return `${hourLabel}:${minuteLabel}`;
- }, [numerals, formatNumber, hour, minute]);
-
- return (
- setCalendarView(calendarView === 'time' ? 'day' : 'time')}
- accessibilityRole="button"
- accessibilityLabel={dayjs(date || currentDate).format('HH:mm')}
- >
-
-
- {labelText}
-
-
-
- );
-};
diff --git a/src/components/Header/types.ts b/src/components/Header/types.ts
deleted file mode 100644
index 273416b..0000000
--- a/src/components/Header/types.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import React from 'react';
-import { ClassNames, Styles, NavigationPosition } from '../../types';
-
-export type HeaderProps = {
- PrevIcon?: React.ReactNode;
- NextIcon?: React.ReactNode;
- navigationPosition?: NavigationPosition;
- styles?: Styles;
- classNames?: ClassNames;
-};
diff --git a/src/components/Header/year-button.tsx b/src/components/Header/year-button.tsx
deleted file mode 100644
index b8d9ff5..0000000
--- a/src/components/Header/year-button.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import React, { memo } from 'react';
-import { Pressable, StyleSheet, Text, View } from 'react-native';
-import { useCalendarContext } from '../../calendar-context';
-import { formatNumber, getDateYear, getYearRange } from '../../utils';
-import dayjs from 'dayjs';
-
-const YearButton = () => {
- const {
- currentDate,
- calendarView,
- setCalendarView,
- currentYear,
- onChangeYear,
- styles,
- classNames,
- disableYearPicker,
- numerals = 'latn',
- } = useCalendarContext();
-
- const years = getYearRange(currentYear);
- return (
- {
- setCalendarView(calendarView === 'year' ? 'day' : 'year');
- onChangeYear(getDateYear(currentDate));
- }}
- testID="btn-year"
- accessibilityRole="button"
- accessibilityLabel={dayjs(currentDate).format('YYYY')}
- >
-
-
- {calendarView === 'year'
- ? `${formatNumber(years[0] || 0, numerals)} - ${formatNumber(years[years.length - 1] || 0, numerals)}`
- : formatNumber(
- parseInt(dayjs(currentDate).format('YYYY')),
- numerals
- )}
-
-
-
- );
-};
-
-export default memo(YearButton);
-
-const defaultStyles = StyleSheet.create({
- container: {
- alignItems: 'center',
- justifyContent: 'center',
- },
-});