2022-11-09 12:28:04 +08:00
|
|
|
import React from 'react';
|
2023-08-17 17:12:51 +08:00
|
|
|
import type { BadgeProps, CalendarProps } from 'antd';
|
2023-07-28 16:17:43 +08:00
|
|
|
import { Badge, Calendar } from 'antd';
|
2024-04-08 14:04:08 +08:00
|
|
|
import type { Dayjs } from 'dayjs';
|
2022-11-09 12:28:04 +08:00
|
|
|
|
|
|
|
const getListData = (value: Dayjs) => {
|
2024-06-22 21:59:12 +08:00
|
|
|
let listData: { type: string; content: string }[] = []; // Specify the type of listData
|
2022-11-09 12:28:04 +08:00
|
|
|
switch (value.date()) {
|
|
|
|
case 8:
|
|
|
|
listData = [
|
|
|
|
{ type: 'warning', content: 'This is warning event.' },
|
|
|
|
{ type: 'success', content: 'This is usual event.' },
|
|
|
|
];
|
|
|
|
break;
|
|
|
|
case 10:
|
|
|
|
listData = [
|
|
|
|
{ type: 'warning', content: 'This is warning event.' },
|
|
|
|
{ type: 'success', content: 'This is usual event.' },
|
|
|
|
{ type: 'error', content: 'This is error event.' },
|
|
|
|
];
|
|
|
|
break;
|
|
|
|
case 15:
|
|
|
|
listData = [
|
|
|
|
{ type: 'warning', content: 'This is warning event' },
|
2023-08-17 17:12:51 +08:00
|
|
|
{ type: 'success', content: 'This is very long usual event......' },
|
2022-11-09 12:28:04 +08:00
|
|
|
{ type: 'error', content: 'This is error event 1.' },
|
|
|
|
{ type: 'error', content: 'This is error event 2.' },
|
|
|
|
{ type: 'error', content: 'This is error event 3.' },
|
|
|
|
{ type: 'error', content: 'This is error event 4.' },
|
|
|
|
];
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
}
|
|
|
|
return listData || [];
|
|
|
|
};
|
|
|
|
|
|
|
|
const getMonthData = (value: Dayjs) => {
|
|
|
|
if (value.month() === 8) {
|
|
|
|
return 1394;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
const App: React.FC = () => {
|
|
|
|
const monthCellRender = (value: Dayjs) => {
|
|
|
|
const num = getMonthData(value);
|
|
|
|
return num ? (
|
|
|
|
<div className="notes-month">
|
|
|
|
<section>{num}</section>
|
|
|
|
<span>Backlog number</span>
|
|
|
|
</div>
|
|
|
|
) : null;
|
|
|
|
};
|
|
|
|
|
|
|
|
const dateCellRender = (value: Dayjs) => {
|
|
|
|
const listData = getListData(value);
|
|
|
|
return (
|
|
|
|
<ul className="events">
|
2022-11-19 13:47:33 +08:00
|
|
|
{listData.map((item) => (
|
2022-11-09 12:28:04 +08:00
|
|
|
<li key={item.content}>
|
|
|
|
<Badge status={item.type as BadgeProps['status']} text={item.content} />
|
|
|
|
</li>
|
|
|
|
))}
|
|
|
|
</ul>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
2023-08-17 17:12:51 +08:00
|
|
|
const cellRender: CalendarProps<Dayjs>['cellRender'] = (current, info) => {
|
2023-04-03 11:21:24 +08:00
|
|
|
if (info.type === 'date') return dateCellRender(current);
|
|
|
|
if (info.type === 'month') return monthCellRender(current);
|
|
|
|
return info.originNode;
|
|
|
|
};
|
|
|
|
|
|
|
|
return <Calendar cellRender={cellRender} />;
|
2022-11-09 12:28:04 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
export default App;
|