UNPKG

react-schedule-view

Version:

A zero-dependency, fully customizable component for displaying schedules in a daily or week format

31 lines (25 loc) 823 B
import deepMerge from "../utils/deepMerge"; import { ScheduleTheme, ScheduleThemeOverride } from "../utils/models"; import { appleColors, appleTheme } from "./apple"; import { googleColors, googleTheme } from "./google"; export type ThemeName = "google" | "apple"; export const themes: Record<ThemeName, ScheduleTheme> = { google: googleTheme, apple: appleTheme, }; export const colors: Record<ThemeName, Record<string, string>> = { google: googleColors, apple: appleColors, }; export const createTheme = ( baseTheme: ScheduleTheme | ThemeName, partialTheme: ScheduleThemeOverride ): ScheduleTheme => { const selectedBaseTheme = typeof baseTheme === "string" ? themes[baseTheme] : baseTheme; return deepMerge.withOptions( { mergeArrays: false }, selectedBaseTheme, partialTheme ); };