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() {
|
||||
return <>
|
||||
Page Dev
|
||||
import PageLandingPage from "./landing-page/page";
|
||||
|
||||
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() {
|
||||
|
||||
return (
|
||||
// <Page1 data={store.get("session")?.value} />
|
||||
<div>
|
||||
<center>
|
||||
<h1>HIPMI PROJECT</h1>
|
||||
<p>Bip Production@Team_wibu</p>
|
||||
<a href="/dev">Project</a>
|
||||
</center>
|
||||
</div>
|
||||
// <div>
|
||||
// <center>
|
||||
// <h1>HIPMI PROJECT</h1>
|
||||
// <p>Bip Production@Team_wibu</p>
|
||||
// <a href="/dev">Project</a>
|
||||
// </center>
|
||||
// </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