UNPKG

react-native-taqweem

Version:

**A dual calendar component (Hijri + Gregorian) for React Native** — minimal, customizable, and theme-ready. Perfect for apps needing culturally-aware calendars, Islamic date pickers, or just modern UX flexibility.

54 lines (43 loc) 1.45 kB
import { type Moment } from 'moment-hijri'; export function getPreviousMonth(isHijri: boolean, currentDate: Moment) { if (isHijri) { return currentDate.clone().subtract(1, 'iMonth'); } else { return currentDate.clone().subtract(1, 'month'); } } export function getNextMonth(isHijri: boolean, currentDate: Moment) { if (isHijri) { return currentDate.clone().add(1, 'iMonth'); } else { return currentDate.clone().add(1, 'month'); } } export function getFullDateFormat(isHijri: boolean) { return isHijri ? 'iYYYY-iM-iD' : 'YYYY-M-D'; } export function getYearMonthFormat(isHijri: boolean) { return isHijri ? 'iYYYY-iM' : 'YYYY-M'; } export function getCalendarTitleFormat(isHijri: boolean) { return isHijri ? 'iMMMM iYYYY' : 'MMMM YYYY'; } export function getCalendarTitle(dateObj: Moment, titleFormat: string) { return dateObj.format(titleFormat); } export function getCurrentYear(isHijri: boolean, currentDate: Moment) { return isHijri ? currentDate.iYear() : currentDate.year(); } export function getCurrentMonth(isHijri: boolean, currentDate: Moment) { return isHijri ? currentDate.iMonth() : currentDate.month(); } export function getNumberOfDaysInMonth(isHijri: boolean, currentDate: Moment) { return isHijri ? currentDate.iDaysInMonth() : currentDate.daysInMonth(); } export function setDayOfMonth( date: Moment, day: number, isHijri: boolean, ): Moment { return isHijri ? date.iDate(day) : date.date(day); }