You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
2.6 KiB

3 years ago
// it has style inside index.scss ---> // Start ReactTable4 && end ReactTable4
3 years ago
import React, { useRef, useState } from "react";
3 years ago
3 years ago
import BasicTable from "./BasicTable";
3 years ago
import TitleSubtitle from "../TitleSubtitle";
3 years ago
import MultiRangeInput from "./MultiRangeInput";
3 years ago
import grayLeftArrow from "./gray-arrow-left.svg";
3 years ago
import { BreadCrumb } from "../BreadCrumb";
const ReactTable4 = ({ breadCrumbs, subTitle, title }) => {
3 years ago
const [tabs, setTabs] = useState([
{ name: "جدول " + breadCrumbs[breadCrumbs.length - 1].name, id: 0 },
]);
3 years ago
let [activeTab, setActivateTab] = useState(0);
3 years ago
3 years ago
const stateRef = useRef();
const stateActiveRef = useRef();
3 years ago
3 years ago
stateRef.current = tabs;
stateActiveRef.current = activeTab;
const addTab = (newTab) => {
setActivateTab(newTab.id);
if (stateRef.current.find((e) => e.id === newTab.id)) return;
setTabs([...stateRef.current, newTab]);
};
3 years ago
3 years ago
const delTab = (id) => {
setTabs(stateRef.current.filter((e) => e.id != id));
if (stateActiveRef.current == id) setActivateTab(0);
};
3 years ago
return (
3 years ago
<div className="my-10 w-11/12 mx-auto">
3 years ago
{/* breadCrumb */}
<div className="flex flex-row items-center">
{breadCrumbs.map((breadCrumb, index) => (
3 years ago
<div className="flex flex-row items-center" key={index}>
3 years ago
<span
className={`cursor-pointer text-xs hover:text-blue-900 ${
breadCrumb.active ? "text-blue-900" : "text-blue-400"
}`}
>
{breadCrumb.name}
</span>
{Number(index) !== breadCrumbs.length - 1 && (
<div
className={`mx-2 ${
breadCrumb.active ? "text-blue-900" : "text-blue-400"
}`}
>
<img src={grayLeftArrow} />
3 years ago
</div>
)}
</div>
))}
</div>
<div className="my-7">
<TitleSubtitle titleBorderClassName={"ml-1 w-1 h-6 bg-red-400"} />
3 years ago
</div>
3 years ago
<BasicTable
addTab={addTab}
tabs={tabs}
delTab={delTab}
setActivateTab={setActivateTab}
activeTab={activeTab}
/>
3 years ago
</div>
);
};
3 years ago
3 years ago
export default ReactTable4;
3 years ago
3 years ago
ReactTable4.defaultProps = {
3 years ago
breadCrumbs: [
{
name: "صفحه اصلی",
active: false,
},
{
name: "آمار و گزارشات",
active: false,
},
{
name: "فروش محصولات",
active: false,
},
{
name: "سال 1400",
active: true,
},
],
title: "میزان فروش محصولات",
subTitle: "اطلاعات جداول مشخصاتی کارکنان مجموعه ایران تایر",
};