YearHeader.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
  3. import Header from '../Header';
  4. import { YEAR_DECADE_COUNT } from '.';
  5. import { useInjectPanel } from '../../PanelContext';
  6. import useMergeProps from '../../hooks/useMergeProps';
  7. function YearHeader(_props) {
  8. const props = useMergeProps(_props);
  9. const {
  10. prefixCls,
  11. generateConfig,
  12. viewDate,
  13. onPrevDecade,
  14. onNextDecade,
  15. onDecadeClick
  16. } = props;
  17. const {
  18. hideHeader
  19. } = useInjectPanel();
  20. if (hideHeader.value) {
  21. return null;
  22. }
  23. const headerPrefixCls = `${prefixCls}-header`;
  24. const yearNumber = generateConfig.getYear(viewDate);
  25. const startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;
  26. const endYear = startYear + YEAR_DECADE_COUNT - 1;
  27. return _createVNode(Header, _objectSpread(_objectSpread({}, props), {}, {
  28. "prefixCls": headerPrefixCls,
  29. "onSuperPrev": onPrevDecade,
  30. "onSuperNext": onNextDecade
  31. }), {
  32. default: () => [_createVNode("button", {
  33. "type": "button",
  34. "onClick": onDecadeClick,
  35. "class": `${prefixCls}-decade-btn`
  36. }, [startYear, _createTextVNode("-"), endYear])]
  37. });
  38. }
  39. YearHeader.displayName = 'YearHeader';
  40. YearHeader.inheritAttrs = false;
  41. export default YearHeader;