import { Container, Indicator, IndicatorProps, Popover, useMantineTheme, Button } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { MediaList } from './MediaList'; import { MediasType } from './type'; interface CalendarDayProps { date: Date; medias: MediasType; size: string; } export const CalendarDay = ({ date, medias, size }: CalendarDayProps) => { const [opened, { close, open }] = useDisclosure(false); const { radius, fn } = useMantineTheme(); var indicatorSize = 10; var indicatorOffset = -4; switch(size){ case "xs": { indicatorSize += 0; indicatorOffset -= 0; break; } case "sm": { indicatorSize += 1; indicatorOffset -= 1; break; } case "md": { indicatorSize += 2; indicatorOffset -= 1; break; } case "lg": { indicatorSize += 3; indicatorOffset -= 2; break; } case "xl": { indicatorSize += 4; indicatorOffset -= 3; break; } } return ( 0 ? open : undefined} h="100%" w="100%" sx={{ padding:'18% !important', borderRadius: ['xs','sm'].includes(size) ? radius.md : radius.lg, borderStyle: "solid", borderWidth: "0.2rem", borderColor: opened ? fn.primaryColor() : 'transparent', }} >
{date.getDate()}
); }; interface DayIndicatorProps { size: any; offset: any; color: string; medias: any[]; children: JSX.Element; position: IndicatorProps['position']; } const DayIndicator = ({ size, offset, color, medias, children, position }: DayIndicatorProps) => { if (medias.length === 0) return children; return ( {children} ); };