interface.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { EventObject } from '@douyinfe/semi-foundation/calendar/foundation';
  2. import { strings } from '@douyinfe/semi-foundation/calendar/constants';
  3. import { ArrayElement } from '../_base/base';
  4. import { BaseProps } from '../_base/baseComponent';
  5. export interface CalendarProps extends BaseProps {
  6. displayValue?: Date;
  7. range?: Date[];
  8. header?: React.ReactNode;
  9. events?: EventObject[];
  10. mode?: ArrayElement<typeof strings.MODE>;
  11. showCurrTime?: boolean;
  12. scrollTop?: number;
  13. onClick?: (e: React.MouseEvent, value: Date) => void;
  14. onClose?: (e: React.MouseEvent) => void;
  15. renderTimeDisplay?: (time: number) => React.ReactNode;
  16. markWeekend?: boolean;
  17. width?: number | string;
  18. height?: number | string;
  19. dateGridRender?: (dateString?: string, date?: Date) => React.ReactNode;
  20. }
  21. export type DayCalendarProps = Omit<CalendarProps, 'mode'>;
  22. type DayCalendarPropsKeys = 'events' | 'displayValue' | 'showCurrTime' | 'mode' | 'dateGridRender';
  23. export interface DayColProps extends Pick<CalendarProps, DayCalendarPropsKeys>, BaseProps {
  24. scrollHeight: number;
  25. currPos: number;
  26. isWeekend: boolean;
  27. handleClick: (e: React.MouseEvent, val: [Date, number, number, number]) => void;
  28. }
  29. export type MonthCalendarProps = Omit<CalendarProps, 'range' | 'showCurrTime' | 'scrollTop' | 'renderTimeDisplay'>;
  30. export type RangeCalendarProps = CalendarProps;
  31. export interface TimeColProps {
  32. className?: string;
  33. renderTimeDisplay?: CalendarProps['renderTimeDisplay'];
  34. }
  35. export type WeekCalendarProps = CalendarProps;