parent
3cdc0ce06f
commit
6d3036292f
@ -0,0 +1,89 @@
|
|||||||
|
import React, { useState, useMemo } from "react";
|
||||||
|
import { Select, Table } from "antd";
|
||||||
|
import moment from "moment-timezone";
|
||||||
|
import tagIcon from "../../../assets/tagIcon.svg";
|
||||||
|
import { useMyHistoryData } from "../../../Hooks/Profile";
|
||||||
|
|
||||||
|
const { Option } = Select;
|
||||||
|
|
||||||
|
interface MyHistoryProps {
|
||||||
|
role: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const MyHistory: React.FC<MyHistoryProps> = ({ role }) => {
|
||||||
|
const [range, setRange] = useState<number>(1);
|
||||||
|
|
||||||
|
const { start_date, end_date } = useMemo(() => {
|
||||||
|
const nowUtcPlus5 = moment.tz("Asia/Tashkent");
|
||||||
|
const startDate = nowUtcPlus5.clone().subtract(range, "days");
|
||||||
|
return {
|
||||||
|
start_date: startDate.format("YYYY-MM-DDTHH:mm:ss"),
|
||||||
|
end_date: nowUtcPlus5.format("YYYY-MM-DDTHH:mm:ss"),
|
||||||
|
};
|
||||||
|
}, [range]);
|
||||||
|
|
||||||
|
const historyData = useMyHistoryData({ start_date, end_date });
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<Select
|
||||||
|
style={{ width: "20%", marginBottom: 10 }}
|
||||||
|
placeholder="days"
|
||||||
|
onChange={(value: any) => setRange(Number(value))}
|
||||||
|
allowClear
|
||||||
|
>
|
||||||
|
<Option value={3}>3 days</Option>
|
||||||
|
<Option value={7}>a week</Option>
|
||||||
|
<Option value={30}>a month</Option>
|
||||||
|
</Select>
|
||||||
|
|
||||||
|
<Table
|
||||||
|
dataSource={historyData?.data?.map((u, i) => ({
|
||||||
|
no: i + 1,
|
||||||
|
task: { id: u.task },
|
||||||
|
action: u?.action,
|
||||||
|
description:
|
||||||
|
role !== "Owner"
|
||||||
|
? "You finished this task and earned another 5 points!"
|
||||||
|
: `You ${u?.description.slice(u?.description.indexOf(" ") + 1)}`,
|
||||||
|
timestamp: u.timestamp
|
||||||
|
? moment(u.timestamp).format("DD.MM.YYYY, HH:mm")
|
||||||
|
: "",
|
||||||
|
key: u.id,
|
||||||
|
}))}
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: <img alt="" src={tagIcon} />,
|
||||||
|
dataIndex: "no",
|
||||||
|
key: "no",
|
||||||
|
width: "5%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Task ID",
|
||||||
|
dataIndex: "task",
|
||||||
|
key: "task",
|
||||||
|
render: ({ id }: { id: number }) => <span>{id}</span>,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Action",
|
||||||
|
dataIndex: "action",
|
||||||
|
key: "action",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Description",
|
||||||
|
dataIndex: "description",
|
||||||
|
key: "description",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Timestamp",
|
||||||
|
dataIndex: "timestamp",
|
||||||
|
key: "timestamp",
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
scroll={{ x: "768px" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default MyHistory;
|
Loading…
Reference in new issue