bc518174
王天杨
提交两个项目文件
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import { DayPickerContextValue } from 'contexts/DayPicker';
import { ActiveModifiers, InternalModifier } from 'types/Modifiers';
function isInternalModifier(modifier: string): modifier is InternalModifier {
return Object.values(InternalModifier).includes(modifier as InternalModifier);
}
/**
* Return the class names for the Day element, according to the given active
* modifiers.
*
* Custom class names are set via `modifiersClassNames` or `classNames`,
* where the first have the precedence.
*/
export function getDayClassNames(
dayPicker: Pick<DayPickerContextValue, 'modifiersClassNames' | 'classNames'>,
activeModifiers: ActiveModifiers
) {
const classNames: string[] = [dayPicker.classNames.day];
Object.keys(activeModifiers).forEach((modifier) => {
const customClassName = dayPicker.modifiersClassNames[modifier];
if (customClassName) {
classNames.push(customClassName);
} else if (isInternalModifier(modifier)) {
const internalClassName = dayPicker.classNames[`day_${modifier}`];
if (internalClassName) {
classNames.push(internalClassName);
}
}
});
return classNames;
}
|