feat: no project selecting for clients

This commit is contained in:
2025-07-14 09:52:36 +04:00
parent c866231730
commit 50590fa41c
2 changed files with 21 additions and 8 deletions

View File

@@ -28,7 +28,7 @@ const CardsPageHeader = ({
}: Props) => { }: Props) => {
const { openProjectsEditor } = useProjectsEditorContext(); const { openProjectsEditor } = useProjectsEditorContext();
const { selectedProject, setSelectedProject, projects, refetchProjects } = useProjectsContext(); const { selectedProject, setSelectedProject, projects, refetchProjects } = useProjectsContext();
const userRole = useSelector((state: RootState) => state.auth.role); const { role: userRole, isDealsViewer } = useSelector((state: RootState) => state.auth);
const isAdmin = userRole === "admin"; const isAdmin = userRole === "admin";
const handleCreateClick = () => { const handleCreateClick = () => {
@@ -66,12 +66,14 @@ const CardsPageHeader = ({
</ActionIcon> </ActionIcon>
</> </>
)} )}
<ObjectSelect {!isDealsViewer && (
placeholder={"Выберите проект"} <ObjectSelect
data={projects} placeholder={"Выберите проект"}
value={selectedProject} data={projects}
onChange={setSelectedProject} value={selectedProject}
/> onChange={setSelectedProject}
/>
)}
</div> </div>
); );
}; };

View File

@@ -1,11 +1,22 @@
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { BoardSchema, BoardService } from "../../../client"; import { BoardSchema, BoardService } from "../../../client";
import { useProjectsContext } from "../../../contexts/ProjectsContext.tsx"; import { useProjectsContext } from "../../../contexts/ProjectsContext.tsx";
import { useSelector } from "react-redux";
import { RootState } from "../../../redux/store.ts";
const useBoards = () => { const useBoards = () => {
const { selectedProject } = useProjectsContext(); const { selectedProject } = useProjectsContext();
const [boards, setBoards] = useState<BoardSchema[]>([]); const [boards, setBoards] = useState<BoardSchema[]>([]);
const { isDealsViewer } = useSelector((state: RootState) => state.auth);
const filterBoards = (boards: BoardSchema[]): BoardSchema[] => {
if (isDealsViewer) {
const SALES_DEPARTMENT_FF = 5;
return boards.filter(board => board.id !== SALES_DEPARTMENT_FF);
}
return boards;
};
const refetchBoards = () => { const refetchBoards = () => {
if (!selectedProject) return; if (!selectedProject) return;
@@ -14,7 +25,7 @@ const useBoards = () => {
projectId: selectedProject.id, projectId: selectedProject.id,
}) })
.then(data => { .then(data => {
setBoards(data.boards); setBoards(filterBoards(data.boards));
}) })
.catch(e => console.log(e)); .catch(e => console.log(e));
}; };