BIN
public/img/logo_1.png
Normal file
BIN
public/img/logo_1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.0 KiB |
64
src/app/dev/dashboard-admin/layout.tsx
Normal file
64
src/app/dev/dashboard-admin/layout.tsx
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
"use client";
|
||||||
|
import {
|
||||||
|
AppShell,
|
||||||
|
Box,
|
||||||
|
Burger,
|
||||||
|
Button,
|
||||||
|
Flex,
|
||||||
|
Group,
|
||||||
|
Header,
|
||||||
|
MediaQuery,
|
||||||
|
Menu,
|
||||||
|
Text,
|
||||||
|
useMantineTheme,
|
||||||
|
} from "@mantine/core";
|
||||||
|
import router from "next/router";
|
||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
|
export default function LayoutDashboardAdmin({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode;
|
||||||
|
}) {
|
||||||
|
const theme = useMantineTheme();
|
||||||
|
const [opened, setOpened] = useState(false);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<AppShell
|
||||||
|
styles={{
|
||||||
|
main: {
|
||||||
|
background:
|
||||||
|
theme.colorScheme === "dark"
|
||||||
|
? theme.colors.dark[8]
|
||||||
|
: theme.colors.gray[0],
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
// navbarOffsetBreakpoint="sm"
|
||||||
|
// asideOffsetBreakpoint="sm"
|
||||||
|
header={
|
||||||
|
<Header height={{ base: 50, md: 70 }} p="md">
|
||||||
|
<div style={{ height: "100%" }}>
|
||||||
|
<MediaQuery largerThan="sm" styles={{ display: "none" }}>
|
||||||
|
<Burger
|
||||||
|
opened={opened}
|
||||||
|
onClick={() => setOpened((o) => !o)}
|
||||||
|
size="sm"
|
||||||
|
color={theme.colors.gray[6]}
|
||||||
|
mr="xl"
|
||||||
|
/>
|
||||||
|
</MediaQuery>
|
||||||
|
|
||||||
|
<Group position="apart">
|
||||||
|
<Text>Dashboard Admin</Text>
|
||||||
|
<Button>Admin</Button>
|
||||||
|
</Group>
|
||||||
|
</div>
|
||||||
|
</Header>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</AppShell>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
7
src/app/dev/dashboard-admin/page.tsx
Normal file
7
src/app/dev/dashboard-admin/page.tsx
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import DashboardAdmin from "@/modules/dashboard_admin";
|
||||||
|
|
||||||
|
export default function PageDashboardAdmin(){
|
||||||
|
return <>
|
||||||
|
<DashboardAdmin/>
|
||||||
|
</>
|
||||||
|
}
|
||||||
64
src/app/dev/dashboard-super-admin/layout.tsx
Normal file
64
src/app/dev/dashboard-super-admin/layout.tsx
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
"use client";
|
||||||
|
import {
|
||||||
|
AppShell,
|
||||||
|
Box,
|
||||||
|
Burger,
|
||||||
|
Button,
|
||||||
|
Flex,
|
||||||
|
Group,
|
||||||
|
Header,
|
||||||
|
MediaQuery,
|
||||||
|
Menu,
|
||||||
|
Text,
|
||||||
|
useMantineTheme,
|
||||||
|
} from "@mantine/core";
|
||||||
|
import router from "next/router";
|
||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
|
export default function LayoutDashboardSuperAdmin({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode;
|
||||||
|
}) {
|
||||||
|
const theme = useMantineTheme();
|
||||||
|
const [opened, setOpened] = useState(false);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<AppShell
|
||||||
|
styles={{
|
||||||
|
main: {
|
||||||
|
background:
|
||||||
|
theme.colorScheme === "dark"
|
||||||
|
? theme.colors.dark[8]
|
||||||
|
: theme.colors.gray[0],
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
// navbarOffsetBreakpoint="sm"
|
||||||
|
// asideOffsetBreakpoint="sm"
|
||||||
|
header={
|
||||||
|
<Header height={{ base: 50, md: 70 }} p="md">
|
||||||
|
<div style={{ height: "100%" }}>
|
||||||
|
<MediaQuery largerThan="sm" styles={{ display: "none" }}>
|
||||||
|
<Burger
|
||||||
|
opened={opened}
|
||||||
|
onClick={() => setOpened((o) => !o)}
|
||||||
|
size="sm"
|
||||||
|
color={theme.colors.gray[6]}
|
||||||
|
mr="xl"
|
||||||
|
/>
|
||||||
|
</MediaQuery>
|
||||||
|
|
||||||
|
<Group position="apart">
|
||||||
|
<Text>Dashboard Super Admin</Text>
|
||||||
|
<Button>Super Admin</Button>
|
||||||
|
</Group>
|
||||||
|
</div>
|
||||||
|
</Header>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</AppShell>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
7
src/app/dev/dashboard-super-admin/page.tsx
Normal file
7
src/app/dev/dashboard-super-admin/page.tsx
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import DashboardSuperAdmin from "@/modules/dashboard_super_admin";
|
||||||
|
|
||||||
|
export default function PageDashboardSuperAdmin(){
|
||||||
|
return <>
|
||||||
|
<DashboardSuperAdmin/>
|
||||||
|
</>
|
||||||
|
}
|
||||||
110
src/app/dev/landing-page/layout.tsx
Normal file
110
src/app/dev/landing-page/layout.tsx
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
"use client";
|
||||||
|
import {
|
||||||
|
ActionIcon,
|
||||||
|
AppShell,
|
||||||
|
Aside,
|
||||||
|
AspectRatio,
|
||||||
|
Box,
|
||||||
|
Burger,
|
||||||
|
Button,
|
||||||
|
Flex,
|
||||||
|
Footer,
|
||||||
|
Grid,
|
||||||
|
Group,
|
||||||
|
Header,
|
||||||
|
HoverCard,
|
||||||
|
Image,
|
||||||
|
MediaQuery,
|
||||||
|
Menu,
|
||||||
|
Navbar,
|
||||||
|
Text,
|
||||||
|
useMantineTheme,
|
||||||
|
} from "@mantine/core";
|
||||||
|
import { useShallowEffect } from "@mantine/hooks";
|
||||||
|
import Link from "next/link";
|
||||||
|
import { useRouter } from "next/navigation";
|
||||||
|
import React, { useState } from "react";
|
||||||
|
|
||||||
|
export default function LayoutLandingPage({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode;
|
||||||
|
}) {
|
||||||
|
const router = useRouter();
|
||||||
|
const theme = useMantineTheme();
|
||||||
|
const [opened, setOpened] = useState(false);
|
||||||
|
|
||||||
|
//menunggu rendering client karena tampilan di mulai dirender pada server
|
||||||
|
const [waiting, setWaiting] = useState(false);
|
||||||
|
useShallowEffect(() => {
|
||||||
|
if (window) setWaiting(true);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
if (!waiting) return <></>;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<AppShell
|
||||||
|
styles={{
|
||||||
|
main: {
|
||||||
|
background:
|
||||||
|
theme.colorScheme === "dark"
|
||||||
|
? theme.colors.dark[8]
|
||||||
|
: theme.colors.gray[0],
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
// navbarOffsetBreakpoint="sm"
|
||||||
|
// asideOffsetBreakpoint="sm"
|
||||||
|
header={
|
||||||
|
<Header height={{ base: 50, md: 70 }} p="md">
|
||||||
|
<div style={{ height: "100%" }}>
|
||||||
|
<MediaQuery largerThan="sm" styles={{ display: "none" }}>
|
||||||
|
<Burger
|
||||||
|
opened={opened}
|
||||||
|
onClick={() => setOpened((o) => !o)}
|
||||||
|
size="sm"
|
||||||
|
color={theme.colors.gray[6]}
|
||||||
|
mr="xl"
|
||||||
|
/>
|
||||||
|
</MediaQuery>
|
||||||
|
|
||||||
|
<Group position="apart">
|
||||||
|
<Image maw={150} src="/img/logo_1.png" alt="Random image" />
|
||||||
|
<Box>
|
||||||
|
<Flex gap={"xl"}>
|
||||||
|
<Text>Beranda</Text>
|
||||||
|
<Text>Tentang Kami</Text>
|
||||||
|
<Text>Informasi</Text>
|
||||||
|
<Text>Galeri</Text>
|
||||||
|
</Flex>
|
||||||
|
</Box>
|
||||||
|
<Menu position="bottom">
|
||||||
|
<Menu.Target>
|
||||||
|
<Button>Login</Button>
|
||||||
|
</Menu.Target>
|
||||||
|
<Menu.Dropdown>
|
||||||
|
<Menu.Item onClick={() => router.push("/dev/login")}>
|
||||||
|
Login
|
||||||
|
</Menu.Item>
|
||||||
|
<Menu.Item
|
||||||
|
onClick={() => router.push("/dev/dashboard-admin")}
|
||||||
|
>
|
||||||
|
Dashboard Admin
|
||||||
|
</Menu.Item>
|
||||||
|
<Menu.Item
|
||||||
|
onClick={() => router.push("/dev/dashboard-super-admin")}
|
||||||
|
>
|
||||||
|
Dashboard Super Admin
|
||||||
|
</Menu.Item>
|
||||||
|
</Menu.Dropdown>
|
||||||
|
</Menu>
|
||||||
|
</Group>
|
||||||
|
</div>
|
||||||
|
</Header>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</AppShell>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
10
src/app/dev/landing-page/page.tsx
Normal file
10
src/app/dev/landing-page/page.tsx
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import LandingPage from "@/modules/landing_page";
|
||||||
|
import { Button, Menu, Stack } from "@mantine/core";
|
||||||
|
|
||||||
|
export default function PageLandingPage() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<LandingPage />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
9
src/app/dev/login/page.tsx
Normal file
9
src/app/dev/login/page.tsx
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { LoginPage } from "@/modules/login";
|
||||||
|
|
||||||
|
export default function PageLogin() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<LoginPage />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
export default function PageDev() {
|
import PageLandingPage from "./landing-page/page";
|
||||||
return <>
|
|
||||||
Page Dev
|
export default async function PageDev() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<PageLandingPage />
|
||||||
</>
|
</>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
7
src/app/dev/registrasi/page.tsx
Normal file
7
src/app/dev/registrasi/page.tsx
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import { RegisterPage } from "@/modules/login";
|
||||||
|
|
||||||
|
export default function PageRegister(){
|
||||||
|
return <>
|
||||||
|
<RegisterPage/>
|
||||||
|
</>
|
||||||
|
}
|
||||||
@@ -1,14 +1,20 @@
|
|||||||
|
import LayoutLandingPage from "./dev/landing-page/layout";
|
||||||
|
import PageLandingPage from "./dev/landing-page/page";
|
||||||
|
import PageDev from "./dev/page";
|
||||||
|
|
||||||
export default async function Page() {
|
export default async function Page() {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
// <Page1 data={store.get("session")?.value} />
|
// <Page1 data={store.get("session")?.value} />
|
||||||
<div>
|
// <div>
|
||||||
<center>
|
// <center>
|
||||||
<h1>HIPMI PROJECT</h1>
|
// <h1>HIPMI PROJECT</h1>
|
||||||
<p>Bip Production@Team_wibu</p>
|
// <p>Bip Production@Team_wibu</p>
|
||||||
<a href="/dev">Project</a>
|
// <a href="/dev">Project</a>
|
||||||
</center>
|
// </center>
|
||||||
</div>
|
// </div>
|
||||||
|
<LayoutLandingPage>
|
||||||
|
<PageLandingPage/>
|
||||||
|
</LayoutLandingPage>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
9
src/modules/dashboard_admin/dashboard_admin.tsx
Normal file
9
src/modules/dashboard_admin/dashboard_admin.tsx
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
export function DashboardAdmin(){
|
||||||
|
return <>
|
||||||
|
<div>
|
||||||
|
ini dashboard admin
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
3
src/modules/dashboard_admin/index.ts
Normal file
3
src/modules/dashboard_admin/index.ts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import { DashboardAdmin } from "./dashboard_admin";
|
||||||
|
|
||||||
|
export default DashboardAdmin
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
export function DashboardSuperAdmin(){
|
||||||
|
return <>
|
||||||
|
<div>Ini super admin</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
3
src/modules/dashboard_super_admin/index.ts
Normal file
3
src/modules/dashboard_super_admin/index.ts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import { DashboardSuperAdmin } from "./dashboard_super_admin";
|
||||||
|
|
||||||
|
export default DashboardSuperAdmin
|
||||||
5
src/modules/landing_page/index.tsx
Normal file
5
src/modules/landing_page/index.tsx
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
import { LandingPage } from "./landing-page";
|
||||||
|
|
||||||
|
export default LandingPage;
|
||||||
|
|
||||||
11
src/modules/landing_page/landing-page.tsx
Normal file
11
src/modules/landing_page/landing-page.tsx
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { Box } from "@mantine/core"
|
||||||
|
|
||||||
|
export function LandingPage(){
|
||||||
|
return <>
|
||||||
|
<Box>
|
||||||
|
ini Landing
|
||||||
|
</Box>
|
||||||
|
</>
|
||||||
|
}
|
||||||
5
src/modules/login/index.ts
Normal file
5
src/modules/login/index.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import LoginPage from "./login_page";
|
||||||
|
import RegisterPage from "./register_page";
|
||||||
|
|
||||||
|
export {LoginPage}
|
||||||
|
export {RegisterPage}
|
||||||
3
src/modules/login/login_page/index.ts
Normal file
3
src/modules/login/login_page/index.ts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import { LoginPage } from "./login_page";
|
||||||
|
|
||||||
|
export default LoginPage
|
||||||
12
src/modules/login/login_page/login_page.tsx
Normal file
12
src/modules/login/login_page/login_page.tsx
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { Button } from "@mantine/core"
|
||||||
|
import { useRouter } from "next/navigation"
|
||||||
|
|
||||||
|
export function LoginPage(){
|
||||||
|
const router = useRouter()
|
||||||
|
return <>
|
||||||
|
<div>ini login</div>
|
||||||
|
<Button onClick={() =>router.push("/dev/registrasi") }>Register</Button>
|
||||||
|
</>
|
||||||
|
}
|
||||||
3
src/modules/login/register_page/index.ts
Normal file
3
src/modules/login/register_page/index.ts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import { RegisterPage } from "./register_page";
|
||||||
|
|
||||||
|
export default RegisterPage
|
||||||
7
src/modules/login/register_page/register_page.tsx
Normal file
7
src/modules/login/register_page/register_page.tsx
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
export function RegisterPage(){
|
||||||
|
return <>
|
||||||
|
<div>ini register</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user