frontPanel/src/pages/startPage/Sidebar/SidebarMobile.tsx

128 lines
3.7 KiB
TypeScript
Raw Normal View History

2023-12-29 13:32:57 +00:00
import { FC, useState } from "react";
2023-09-20 17:39:17 +00:00
import { Box, Typography } from "@mui/material";
2023-12-29 13:32:57 +00:00
import { People } from "@mui/icons-material";
import { SidebarModal } from "./SidebarModal";
import BackArrowIcon from "@icons/BackArrowIcon";
2023-09-20 17:39:17 +00:00
import { ChartLineUp } from "./icons/ChartLineUp";
import { ReturnTime } from "./icons/ReturnTime";
import { Question } from "./icons/Question";
import { Settings } from "./icons/Settings";
import { Pencil } from "./icons/Pencil";
import { ArrowDown } from "./icons/ArrowDown";
interface Iprops {
open: boolean;
2023-12-29 10:17:43 +00:00
changePage: (step: number) => void;
2023-09-20 17:39:17 +00:00
}
2023-12-29 10:17:43 +00:00
const quizSetupSteps = [
{ sidebarIcon: <Pencil style={{ color: "#974BFA", fontSize: "24px" }} /> },
{ sidebarIcon: <People style={{ color: "#974BFA", fontSize: "24px" }} /> },
{
sidebarIcon: <ChartLineUp style={{ color: "#974BFA", fontSize: "24px" }} />,
},
{
sidebarIcon: <ReturnTime style={{ color: "#974BFA", fontSize: "24px" }} />,
},
{ sidebarIcon: <Question style={{ color: "#974BFA", fontSize: "24px" }} /> },
] as const;
2023-12-29 13:32:57 +00:00
export const SidebarMobile: FC<Iprops> = ({ open, changePage }) => {
const [openModal, setOpenModal] = useState<boolean>(false);
2023-09-20 17:39:17 +00:00
2023-12-29 13:32:57 +00:00
const onClose = () => {
setOpenModal(false);
};
return (
2023-09-20 17:39:17 +00:00
<Box
2023-12-29 10:17:43 +00:00
sx={{
2023-12-29 13:32:57 +00:00
display: open ? "block" : "none",
minHeight: "134px",
padding: "20px 16px 16px 16px",
background: "#333647",
borderTop: "1px solid #9A9AAF",
borderBottomLeftRadius: "8px",
borderBottomRightRadius: "8px",
transitionDuration: "200ms",
2023-12-29 10:17:43 +00:00
}}
2023-09-20 17:39:17 +00:00
>
2023-12-29 13:32:57 +00:00
<Box sx={{ display: "flex", alignItems: "center", position: "relative" }}>
<BackArrowIcon color="white" />
<Box sx={{ ml: "15px", display: "flex", alignItems: "end" }}>
<Box>
<Typography sx={{ fontSize: "12px", color: "#9A9AAF" }}>
Название
</Typography>
<Typography
sx={{ color: "#FFF", fontSize: "18px", fontWeight: "500" }}
>
Название проекта
</Typography>
</Box>
<Pencil
style={{
position: "absolute",
right: "0",
color: "white",
fontSize: "24px",
}}
/>
</Box>
</Box>
<Box
sx={{
width: "100%",
justifyContent: "center",
display: "flex",
marginTop: "20px",
flexWrap: "wrap",
gap: "5px",
}}
>
{quizSetupSteps.map(({ sidebarIcon }, index) => (
<Box
onClick={() => changePage(index)}
sx={{
cursor: "pointer",
width: "44px",
height: "44px",
background: "#262835",
display: "flex",
justifyContent: "center",
alignItems: "center",
borderRadius: "8px",
}}
>
{sidebarIcon}
</Box>
))}
2023-12-29 10:17:43 +00:00
<Box
2023-12-29 13:32:57 +00:00
onClick={() => setOpenModal(true)}
2023-12-29 10:17:43 +00:00
sx={{
2023-12-29 13:32:57 +00:00
px: "10px",
width: "70px",
2023-12-29 10:17:43 +00:00
height: "44px",
background: "#262835",
display: "flex",
2023-12-29 13:32:57 +00:00
justifyContent: "space-between",
2023-12-29 10:17:43 +00:00
alignItems: "center",
borderRadius: "8px",
2023-12-29 13:32:57 +00:00
border: "1px solid #FFFFFF66",
marginLeft: "28px",
2023-12-29 10:17:43 +00:00
}}
>
2023-12-29 13:32:57 +00:00
<Settings
style={{ color: "#974BFA", fontSize: "24px", marginLeft: "10px" }}
/>
<ArrowDown style={{ color: "#F2F3F7" }} />
2023-12-29 10:17:43 +00:00
</Box>
2023-09-20 17:39:17 +00:00
</Box>
2023-12-29 14:06:53 +00:00
<SidebarModal open={openModal} onClose={onClose} changePage={changePage} />
2023-09-20 17:39:17 +00:00
</Box>
2023-12-29 13:32:57 +00:00
);
};