react-day-picker
Version:
Customizable Date Picker for React
33 lines (30 loc) • 1 kB
text/typescript
import type { CSSProperties } from "react";
import { UI } from "../UI.js";
import type { Modifiers, ModifiersStyles, Styles } from "../types/index.js";
/**
* Returns the computed style for a day based on its modifiers.
*
* This function merges the base styles for the day with any styles associated
* with active modifiers.
*
* @param dayModifiers The modifiers applied to the day.
* @param styles The base styles for the calendar elements.
* @param modifiersStyles The styles associated with specific modifiers.
* @returns The computed style for the day.
*/
export function getStyleForModifiers(
dayModifiers: Modifiers,
styles: Partial<Styles> = {},
modifiersStyles: Partial<ModifiersStyles> = {}
): CSSProperties {
let style: CSSProperties = { ...styles?.[UI.Day] };
Object.entries(dayModifiers)
.filter(([, active]) => active === true)
.forEach(([modifier]) => {
style = {
...style,
...modifiersStyles?.[modifier]
};
});
return style;
}