70 lines
1.9 KiB
TypeScript
70 lines
1.9 KiB
TypeScript
|
|
import { BsPlusCircleFill } from "react-icons/bs";
|
|
import { useNavigate } from "react-router-dom";
|
|
import { useTranslation } from "react-i18next";
|
|
import useModalHandler from "../../utils/useModalHandler";
|
|
import { deletePathSegments } from "../../utils/deletePathSegments";
|
|
import { getPrevPathRoute } from "../../utils/getPrevPathRoute";
|
|
import PageTitleComponent from "./PageTitle";
|
|
import { useFilterStateState } from "../../zustand/Filter";
|
|
|
|
const PageHeader = ({
|
|
canAdd,
|
|
ModelAbility,
|
|
pageTitle,
|
|
openModel = true,
|
|
locationToNavigate,
|
|
addModal = true
|
|
}: {
|
|
canAdd?: any;
|
|
ModelAbility?: any;
|
|
pageTitle: string;
|
|
openModel?: boolean;
|
|
locationToNavigate?: string | any;
|
|
addModal?:boolean;
|
|
}) => {
|
|
const navigate = useNavigate();
|
|
const { handel_open_model } = useModalHandler();
|
|
const { t } = useTranslation();
|
|
|
|
const PrevPath = getPrevPathRoute(location.pathname);
|
|
const { setFilter } = useFilterStateState();
|
|
|
|
const handleNavigateToPage = (location: string) => {
|
|
setFilter({})
|
|
navigate(location);
|
|
|
|
};
|
|
|
|
console.log();
|
|
return (
|
|
<div className="page_header">
|
|
<header className="d-flex justify-content-between">
|
|
<span className="page_header_links" >
|
|
<h1 className="page_title">{t(`PageTitle.${pageTitle}`)}</h1>
|
|
<span className="page_links">
|
|
<PageTitleComponent/>
|
|
</span>
|
|
</span>
|
|
{ addModal ? canAdd && (
|
|
<div className="Selects">
|
|
<button
|
|
onClick={() =>
|
|
openModel
|
|
? handel_open_model(ModelAbility)
|
|
: handleNavigateToPage(locationToNavigate)
|
|
}
|
|
className="add_button"
|
|
>
|
|
<BsPlusCircleFill />
|
|
{t(`practical.add`)}
|
|
</button>
|
|
</div>
|
|
) :""}
|
|
</header>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default PageHeader;
|