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