Merge branch 'feature/add-user-account-view' into 'main'
Add user account and settings boilerplate canvas pages. See merge request vkuchenik/website-framework!36
This commit is contained in:
@@ -7,6 +7,8 @@ import GlobalMapCanvas from "./views/GlobalMapCanvas";
|
|||||||
import RegionalMapCanvas from "./views/RegionalMapCanvas";
|
import RegionalMapCanvas from "./views/RegionalMapCanvas";
|
||||||
import VolcanoCanvas from "./views/VolcanoCanvas";
|
import VolcanoCanvas from "./views/VolcanoCanvas";
|
||||||
import AdminCanvas from "./views/AdminCanvas";
|
import AdminCanvas from "./views/AdminCanvas";
|
||||||
|
import AccountCanvas from "./views/AccountCanvas"
|
||||||
|
import SettingsCanvas from "./views/SettingsCanvas"
|
||||||
import { DashboardCanvas } from "./views/DashboardCanvas";
|
import { DashboardCanvas } from "./views/DashboardCanvas";
|
||||||
import { DASHBOARD_VIEWS } from "@/constants/viewKeys";
|
import { DASHBOARD_VIEWS } from "@/constants/viewKeys";
|
||||||
|
|
||||||
@@ -30,6 +32,8 @@ export default function Canvas({ view, setView, layout, setLayout, onLayoutChang
|
|||||||
{view === "regional" && <RegionalMapCanvas />}
|
{view === "regional" && <RegionalMapCanvas />}
|
||||||
{view === "volcano" && <VolcanoCanvas />}
|
{view === "volcano" && <VolcanoCanvas />}
|
||||||
{view === "admin" && <AdminCanvas />}
|
{view === "admin" && <AdminCanvas />}
|
||||||
|
{view === "account" && <AccountCanvas />}
|
||||||
|
{view === "settings" && <SettingsCanvas />}
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { Box, Text } from '@chakra-ui/react';
|
||||||
|
|
||||||
|
export default function AccountCanvas() {
|
||||||
|
return (
|
||||||
|
<Box p={8} mt={4} ml="auto" mr="auto" width="600px">
|
||||||
|
<Box
|
||||||
|
bg="bg"
|
||||||
|
shadow="md"
|
||||||
|
borderRadius="md"
|
||||||
|
p={8}
|
||||||
|
width="600px"
|
||||||
|
height="100px"
|
||||||
|
textAlign="center"
|
||||||
|
display="flex"
|
||||||
|
alignItems="center"
|
||||||
|
justifyContent="center"
|
||||||
|
>
|
||||||
|
<Text fontsize="2xl" fontWeight="bold" color="gray.700">
|
||||||
|
Account Canvas coming soon!
|
||||||
|
</Text>
|
||||||
|
</Box>
|
||||||
|
</Box>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { Box, Text } from '@chakra-ui/react';
|
||||||
|
|
||||||
|
export default function SettingsCanvas() {
|
||||||
|
return (
|
||||||
|
<Box p={8} mt={4} ml="auto" mr="auto" width="600px">
|
||||||
|
<Box
|
||||||
|
bg="bg"
|
||||||
|
shadow="md"
|
||||||
|
borderRadius="md"
|
||||||
|
p={8}
|
||||||
|
width="600px"
|
||||||
|
height="100px"
|
||||||
|
textAlign="center"
|
||||||
|
display="flex"
|
||||||
|
alignItems="center"
|
||||||
|
justifyContent="center"
|
||||||
|
>
|
||||||
|
<Text fontsize="2xl" fontWeight="bold" color="gray.700">
|
||||||
|
Settings Canvas coming soon!
|
||||||
|
</Text>
|
||||||
|
</Box>
|
||||||
|
</Box>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -61,12 +61,16 @@ export default function Dashboard() {
|
|||||||
width="100vw"
|
width="100vw"
|
||||||
>
|
>
|
||||||
<GridItem rowSpan={1} colSpan={2}>
|
<GridItem rowSpan={1} colSpan={2}>
|
||||||
<Header />
|
<Header
|
||||||
|
view={ view }
|
||||||
|
setView={ setView }
|
||||||
|
/>
|
||||||
</GridItem>
|
</GridItem>
|
||||||
<GridItem colSpan={1}>
|
<GridItem colSpan={1}>
|
||||||
<Sidebar
|
<Sidebar
|
||||||
view={ view }
|
view={ view }
|
||||||
onChangeView={ setView }/>
|
onChangeView={ setView }
|
||||||
|
/>
|
||||||
</GridItem>
|
</GridItem>
|
||||||
<GridItem colSpan={1} width="100%" overflow="auto">
|
<GridItem colSpan={1} width="100%" overflow="auto">
|
||||||
<Canvas
|
<Canvas
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const user = {
|
|||||||
// avatar: "src\\assets\\user_profile.svg"
|
// avatar: "src\\assets\\user_profile.svg"
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function Header() {
|
export default function Header({ view, setView }) {
|
||||||
const recipe = useRecipe({ key: "header" });
|
const recipe = useRecipe({ key: "header" });
|
||||||
const styles = recipe();
|
const styles = recipe();
|
||||||
|
|
||||||
@@ -20,7 +20,12 @@ export default function Header() {
|
|||||||
<Text color="color" fontWeight="bold" textStyle="lg">{user.name}</Text>
|
<Text color="color" fontWeight="bold" textStyle="lg">{user.name}</Text>
|
||||||
<Text color="fg.muted" textStyle="sm">{user.email}</Text>
|
<Text color="fg.muted" textStyle="sm">{user.email}</Text>
|
||||||
</Stack>
|
</Stack>
|
||||||
<UserAvatarMenu name={user.name} avatar={user.avatar} />
|
<UserAvatarMenu
|
||||||
|
name={user.name}
|
||||||
|
avatar={user.avatar}
|
||||||
|
view={ view }
|
||||||
|
setView={ setView }
|
||||||
|
/>
|
||||||
</Flex>
|
</Flex>
|
||||||
</chakra.div>
|
</chakra.div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Avatar, Menu, Portal, Box } from "@chakra-ui/react"
|
import { Avatar, Menu, Portal, Box } from "@chakra-ui/react"
|
||||||
|
|
||||||
|
|
||||||
export default function UserAvatarMenu({ name, avatar }) {
|
export default function UserAvatarMenu({ view, setView, name, avatar }) {
|
||||||
return (
|
return (
|
||||||
<Menu.Root>
|
<Menu.Root>
|
||||||
<Menu.Trigger focusRing="none">
|
<Menu.Trigger focusRing="none">
|
||||||
@@ -21,9 +21,15 @@ export default function UserAvatarMenu({ name, avatar }) {
|
|||||||
{/* zIndex: overlay = 1300 */}
|
{/* zIndex: overlay = 1300 */}
|
||||||
<Menu.Positioner zIndex="overlay">
|
<Menu.Positioner zIndex="overlay">
|
||||||
<Menu.Content>
|
<Menu.Content>
|
||||||
<Menu.Item value="account">Account</Menu.Item>
|
<Menu.Item value="account" onClick={() => setView("account")}>
|
||||||
<Menu.Item value="settings">Settings</Menu.Item>
|
Account
|
||||||
<Menu.Item value="logout">Logout</Menu.Item>
|
</Menu.Item>
|
||||||
|
<Menu.Item value="settings" onClick={() => setView("settings")}>
|
||||||
|
Settings
|
||||||
|
</Menu.Item>
|
||||||
|
<Menu.Item value="logout" onClick={() => console.log("Log out triggered")}>
|
||||||
|
Logout
|
||||||
|
</Menu.Item>
|
||||||
</Menu.Content>
|
</Menu.Content>
|
||||||
</Menu.Positioner>
|
</Menu.Positioner>
|
||||||
</Portal>
|
</Portal>
|
||||||
|
|||||||
Reference in New Issue
Block a user