feat: projects redux storage and select

This commit is contained in:
2025-07-30 17:44:30 +04:00
parent b8d431ae99
commit cb168b6415
10 changed files with 226 additions and 2 deletions

View File

@ -0,0 +1,42 @@
"use client";
import { useEffect } from "react";
import { useSelector } from "react-redux";
import { Group } from "@mantine/core";
import ProjectSelect from "@/components/selects/ProjectSelect/ProjectSelect";
import {
selectProject,
setProjects,
} from "@/lib/features/projects/projectsSlice";
import { RootState, useAppDispatch } from "@/lib/store";
const Header = () => {
const projectsState = useSelector(
(state: RootState) => state.projectsState
);
const dispatch = useAppDispatch();
useEffect(() => {
const mockProjects = [
{ id: 1, name: "Проект 1" },
{ id: 2, name: "Проект 2" },
{ id: 3, name: "Проект 3" },
];
dispatch(setProjects(mockProjects));
dispatch(selectProject(mockProjects[0]));
}, []);
return (
<Group
justify={"flex-end"}
w={"100%"}>
<ProjectSelect
data={projectsState.projects}
value={projectsState.selectedProject}
onChange={value => value && dispatch(selectProject(value))}
/>
</Group>
);
};
export default Header;