From 090e6d0b37a8e2280ecb0089dc91cecf2e4470f3 Mon Sep 17 00:00:00 2001 From: Mohammad Jalali Date: Mon, 19 Aug 2024 13:40:13 +0330 Subject: [PATCH] complete profile part and start working on update profile and changing password --- .../dashboard/headerWithSidebar/index.jsx | 9 ++- .../components/Profile/ChangePass/index.jsx | 52 +++++++++++++ src/core/components/Profile/Update/form.jsx | 0 src/core/components/Profile/Update/index.jsx | 52 +++++++++++++ src/core/components/Profile/index.jsx | 75 +++++++++++++++++++ src/core/components/SidebarMenu.jsx | 36 +-------- src/lib/contexts/tableSetting.js | 1 + 7 files changed, 189 insertions(+), 36 deletions(-) create mode 100644 src/core/components/Profile/ChangePass/index.jsx create mode 100644 src/core/components/Profile/Update/form.jsx create mode 100644 src/core/components/Profile/Update/index.jsx create mode 100644 src/core/components/Profile/index.jsx diff --git a/src/components/layouts/dashboard/headerWithSidebar/index.jsx b/src/components/layouts/dashboard/headerWithSidebar/index.jsx index 68f4bc6..4a66880 100644 --- a/src/components/layouts/dashboard/headerWithSidebar/index.jsx +++ b/src/components/layouts/dashboard/headerWithSidebar/index.jsx @@ -2,10 +2,11 @@ import SidebarMenu from "@/core/components/SidebarMenu"; import ChevronRightIcon from "@mui/icons-material/ChevronRight"; import MenuIcon from "@mui/icons-material/Menu"; -import { Box, Drawer, IconButton, Stack, styled, Toolbar } from "@mui/material"; +import { Box, Drawer, IconButton, Stack, styled, Toolbar, Typography } from "@mui/material"; import MuiAppBar from "@mui/material/AppBar"; import { useState } from "react"; import HeaderMenu from "./HeaderMenu"; +import moment from "jalali-moment"; const drawerWidth = 300; @@ -54,6 +55,7 @@ const DrawerHeader = styled("div")(({ theme }) => ({ const HeaderWithSidebar = ({ children }) => { const [open, setOpen] = useState(true); + const now = moment().locale("fa").format("HH:mm | YYYY/MM/DD"); const handleDrawerOpen = () => { setOpen(true); @@ -90,14 +92,15 @@ const HeaderWithSidebar = ({ children }) => { boxSizing: "border-box", borderTop: 1, borderTopColor: "divider", - position: 'inherit' + position: "inherit", }, }} variant="persistent" anchor="left" open={open} > - + + تاریخ امروز: {now} diff --git a/src/core/components/Profile/ChangePass/index.jsx b/src/core/components/Profile/ChangePass/index.jsx new file mode 100644 index 0000000..31df662 --- /dev/null +++ b/src/core/components/Profile/ChangePass/index.jsx @@ -0,0 +1,52 @@ +"use client"; + +import { + Box, + Button, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + IconButton, + useMediaQuery, +} from "@mui/material"; +import { useTheme } from "@mui/material/styles"; +import CloseIcon from "@mui/icons-material/Close"; + +const ChangePass = ({ open, setOpen }) => { + const theme = useTheme(); + const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); + + return ( + { + setOpen(false); + }}> + + + تغییر رمز عبور + + { + setOpen(false); + }} + sx={{ color: (theme) => theme.palette.grey[500] }} + > + + + + + تست + + + + + + ); +}; +export default ChangePass; \ No newline at end of file diff --git a/src/core/components/Profile/Update/form.jsx b/src/core/components/Profile/Update/form.jsx new file mode 100644 index 0000000..e69de29 diff --git a/src/core/components/Profile/Update/index.jsx b/src/core/components/Profile/Update/index.jsx new file mode 100644 index 0000000..bb244ea --- /dev/null +++ b/src/core/components/Profile/Update/index.jsx @@ -0,0 +1,52 @@ +"use client"; + +import { + Box, + Button, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + IconButton, + useMediaQuery, +} from "@mui/material"; +import { useTheme } from "@mui/material/styles"; +import CloseIcon from "@mui/icons-material/Close"; + +const Update = ({ open, setOpen }) => { + const theme = useTheme(); + const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); + + return ( + { + setOpen(false); + }}> + + + ویرایش پروفایل + + { + setOpen(false); + }} + sx={{ color: (theme) => theme.palette.grey[500] }} + > + + + + + form will come here + + + + + + ); +}; +export default Update; \ No newline at end of file diff --git a/src/core/components/Profile/index.jsx b/src/core/components/Profile/index.jsx new file mode 100644 index 0000000..0940b74 --- /dev/null +++ b/src/core/components/Profile/index.jsx @@ -0,0 +1,75 @@ +"use client"; + +import { Avatar, Box, Chip, Divider, IconButton, Stack, Tooltip, Typography } from "@mui/material"; +import PowerSettingsNewIcon from "@mui/icons-material/PowerSettingsNew"; +import ModeEditIcon from "@mui/icons-material/ModeEdit"; +import VpnKeyIcon from "@mui/icons-material/VpnKey"; +import { useState } from "react"; +import Update from "@/core/components/Profile/Update"; +import ChangePass from "@/core/components/Profile/ChangePass"; + +const Profile = () => { + const [openUpdate, setOpenUpdate] = useState(false); + const [openChangePass, setOpenChangePass] = useState(false); + + return ( + <> + + + + + + حسن محمد زاده عبدالله + + .: اداره کل ستاد :. + + + + آخرین ورود + + 1 ساعت پیش + + + + + + + + + { + setOpenUpdate(true); + }}> + + + + + + + + + + + + { + setOpenChangePass(true); + }}> + + + + + + + + + ); +}; +export default Profile; diff --git a/src/core/components/SidebarMenu.jsx b/src/core/components/SidebarMenu.jsx index 39d8079..2bd04e5 100644 --- a/src/core/components/SidebarMenu.jsx +++ b/src/core/components/SidebarMenu.jsx @@ -1,13 +1,12 @@ "use client"; import SidebarListItems from "@/core/components/SidebarListItems"; import { usePermissions } from "@/lib/hooks/usePermissions"; -import { Avatar, Box, Divider, IconButton, List, Stack, Typography } from "@mui/material"; +import { List } from "@mui/material"; import { usePathname } from "next/navigation"; import { useEffect, useReducer, useState } from "react"; import { filterMenuItems } from "../utils/filterMenuItems"; -import PowerSettingsNewIcon from "@mui/icons-material/PowerSettingsNew"; -import ModeEditIcon from "@mui/icons-material/ModeEdit"; import { pageMenu } from "../utils/pageMenu"; +import Profile from "@/core/components/Profile"; function selectPage(item, route) { if (item.type === "page") { @@ -115,36 +114,7 @@ const SidebarMenu = () => { return ( <> - - - - - - شرکت وایتل - (userName) - - .: اداره کل ستاد :. - - - - آخرین ورود - - 1 ساعت پیش - - - - - - - - - - - + { userPermissions && ( diff --git a/src/lib/contexts/tableSetting.js b/src/lib/contexts/tableSetting.js index 0484511..2458a36 100644 --- a/src/lib/contexts/tableSetting.js +++ b/src/lib/contexts/tableSetting.js @@ -1,4 +1,5 @@ "use client"; + import { createContext, useCallback, useEffect, useState } from "react"; import LZString from "lz-string";