2022-03-23 10:44:00 +00:00
|
|
|
import { Link, navigate } from "gatsby";
|
2022-02-18 08:20:47 +00:00
|
|
|
import styled from "styled-components";
|
2022-02-17 11:53:32 +00:00
|
|
|
|
2022-02-23 10:19:09 +00:00
|
|
|
import { screen } from "../../lib/cssHelpers";
|
|
|
|
import { DropdownMenu, DropdownMenuLink } from "../DropdownMenu";
|
|
|
|
import { CogIcon, LockClosedIcon, SkynetLogoIcon } from "../Icons";
|
2022-02-18 08:20:47 +00:00
|
|
|
import { PageContainer } from "../PageContainer";
|
2022-02-17 11:53:32 +00:00
|
|
|
|
2022-02-23 10:19:09 +00:00
|
|
|
import { NavBarLink, NavBarSection } from ".";
|
2022-03-23 10:44:00 +00:00
|
|
|
import accountsService from "../../services/accountsService";
|
2022-02-23 10:19:09 +00:00
|
|
|
|
2022-02-17 11:53:32 +00:00
|
|
|
const NavBarContainer = styled.div.attrs({
|
2022-03-16 08:04:29 +00:00
|
|
|
className: `grid sticky top-0 bg-white z-10 shadow-sm`,
|
2022-02-18 08:20:47 +00:00
|
|
|
})``;
|
2022-02-17 11:53:32 +00:00
|
|
|
|
|
|
|
const NavBarBody = styled.nav.attrs({
|
2022-02-23 10:19:09 +00:00
|
|
|
className: "grid font-sans font-light text-xs sm:text-sm",
|
2022-02-17 11:53:32 +00:00
|
|
|
})`
|
2022-02-23 10:19:09 +00:00
|
|
|
height: 100px;
|
|
|
|
grid-template-columns: 1fr 1fr;
|
|
|
|
grid-template-rows: 60px 40px;
|
|
|
|
grid-template-areas:
|
|
|
|
"logo dropdown"
|
|
|
|
"navigation navigation";
|
|
|
|
|
|
|
|
${screen(
|
|
|
|
"sm",
|
|
|
|
`
|
|
|
|
height: 80px;
|
|
|
|
grid-template-columns: auto max-content 1fr;
|
|
|
|
grid-template-areas: "logo navigation dropdown";
|
|
|
|
grid-template-rows: auto;
|
|
|
|
`
|
|
|
|
)}
|
|
|
|
|
|
|
|
.navigation-area {
|
|
|
|
grid-area: navigation;
|
|
|
|
display: grid;
|
|
|
|
grid-template-columns: repeat(3, 1fr);
|
|
|
|
}
|
|
|
|
|
|
|
|
.logo-area {
|
|
|
|
grid-area: logo;
|
|
|
|
justify-content: start;
|
|
|
|
}
|
|
|
|
|
|
|
|
.dropdown-area {
|
|
|
|
grid-area: dropdown;
|
|
|
|
}
|
2022-02-18 08:20:47 +00:00
|
|
|
`;
|
2022-02-17 11:53:32 +00:00
|
|
|
|
2022-02-23 10:19:09 +00:00
|
|
|
export const NavBar = () => (
|
2022-02-17 11:53:32 +00:00
|
|
|
<NavBarContainer>
|
2022-02-23 10:19:09 +00:00
|
|
|
<PageContainer className="px-0">
|
|
|
|
<NavBarBody>
|
|
|
|
<NavBarSection className="logo-area pl-2 pr-4 md:px-0 md:w-[110px] justify-center sm:justify-start">
|
|
|
|
<SkynetLogoIcon size={48} />
|
|
|
|
</NavBarSection>
|
|
|
|
<NavBarSection className="navigation-area border-t border-palette-100">
|
|
|
|
<NavBarLink to="/" as={Link} activeClassName="!border-b-primary">
|
|
|
|
Dashboard
|
|
|
|
</NavBarLink>
|
|
|
|
<NavBarLink to="/files" as={Link} activeClassName="!border-b-primary">
|
|
|
|
Files
|
|
|
|
</NavBarLink>
|
|
|
|
<NavBarLink to="/payments" as={Link} activeClassName="!border-b-primary">
|
|
|
|
Payments
|
|
|
|
</NavBarLink>
|
|
|
|
</NavBarSection>
|
|
|
|
<NavBarSection className="dropdown-area justify-end">
|
|
|
|
<DropdownMenu title="My account">
|
2022-03-15 14:53:02 +00:00
|
|
|
<DropdownMenuLink
|
|
|
|
to="/settings"
|
|
|
|
as={Link}
|
|
|
|
activeClassName="text-primary"
|
|
|
|
icon={CogIcon}
|
|
|
|
label="Settings"
|
|
|
|
partiallyActive
|
|
|
|
/>
|
2022-03-14 15:58:45 +00:00
|
|
|
<DropdownMenuLink
|
2022-03-23 10:44:00 +00:00
|
|
|
onClick={async () => {
|
|
|
|
await accountsService.post("logout");
|
|
|
|
navigate("/auth/login");
|
|
|
|
}}
|
2022-03-14 15:58:45 +00:00
|
|
|
activeClassName="text-primary"
|
2022-03-23 10:44:00 +00:00
|
|
|
className="cursor-pointer"
|
2022-03-14 15:58:45 +00:00
|
|
|
icon={LockClosedIcon}
|
|
|
|
label="Log out"
|
|
|
|
/>
|
2022-02-23 10:19:09 +00:00
|
|
|
</DropdownMenu>
|
|
|
|
</NavBarSection>
|
|
|
|
</NavBarBody>
|
2022-02-17 11:53:32 +00:00
|
|
|
</PageContainer>
|
|
|
|
</NavBarContainer>
|
2022-02-18 08:20:47 +00:00
|
|
|
);
|