All files / src/calendar CalendarPart.tsx

50% Statements 4/8
100% Branches 2/2
50% Functions 2/4
50% Lines 4/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81                                                  3x   3x                                                   3x 3x                                                    
import React from "react";
import classNames from "classnames";
import { StyledProps } from "../_type";
import { JustifyProps, Justify } from "../justify";
import { useConfig } from "../_util/config-context";
 
export default {
  Panel: CalendarPanel,
  Header: CalendarHeader,
  Body: CalendarBody,
  Footer: CalendarFooter,
};
 
/**
 * 日历面板
 */
type ContainerProps = StyledProps & { children: React.ReactNode };
 
export function CalendarPanel({
  style,
  className,
  children,
  rangeMode = false,
  timeMode = false,
}: ContainerProps & { rangeMode?: boolean; timeMode?: boolean }) {
  const { classPrefix } = useConfig();
 
  return (
    <div
      className={classNames(`${classPrefix}-calendar`, className, {
        [`${classPrefix}-calendar--date-range`]: rangeMode,
        [`${classPrefix}-calendar--time`]: timeMode,
      })}
      style={style}
    >
      {children}
    </div>
  );
}
 
export function CalendarHeader({ style, className, children }: ContainerProps) {
  const { classPrefix } = useConfig();
  return (
    <div
      className={classNames(`${classPrefix}-calendar__header`, className)}
      style={style}
    >
      {children}
    </div>
  );
}
 
export function CalendarBody({ style, className, children }: ContainerProps) {
  const { classPrefix } = useConfig();
  return (
    <div
      className={classNames(`${classPrefix}-calendar__body`, className)}
      style={style}
    >
      {children}
    </div>
  );
}
 
export function CalendarFooter({
  style,
  className,
  left,
  right,
}: StyledProps & JustifyProps) {
  const { classPrefix } = useConfig();
  return (
    <div
      className={classNames(`${classPrefix}-calendar__footer`, className)}
      style={style}
    >
      <Justify left={left} right={right} />
    </div>
  );
}