feat: initial commit with seeded database and premium ui changes
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import { CosmicButton } from "@/components/ui/cosmic-button";
|
||||
import { MapIcon } from "@/components/ui/phosphor-icons";
|
||||
|
||||
interface MapPageHeaderProps {
|
||||
title: string;
|
||||
description: string;
|
||||
onOpenMap: () => void;
|
||||
buttonText: string;
|
||||
icon?: React.ReactNode;
|
||||
children?: React.ReactNode;
|
||||
}
|
||||
|
||||
export function MapPageHeader({ title, description, onOpenMap, buttonText, icon, children }: MapPageHeaderProps) {
|
||||
return (
|
||||
<div className="flex flex-col justify-between gap-4 border-b pb-5 md:flex-row md:items-center">
|
||||
<div>
|
||||
<h1 className="text-3xl font-bold tracking-tight">{title}</h1>
|
||||
<p className="text-muted-foreground">{description}</p>
|
||||
</div>
|
||||
<div className="flex items-center gap-3">
|
||||
<CosmicButton
|
||||
as="button"
|
||||
size="sm"
|
||||
onClick={onOpenMap}
|
||||
>
|
||||
<span className="flex items-center gap-1.5">
|
||||
{icon ?? <MapIcon className="h-4 w-4" />}
|
||||
<span className="capitalize">{buttonText}</span>
|
||||
</span>
|
||||
</CosmicButton>
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
"use client";
|
||||
|
||||
import {
|
||||
Breadcrumb,
|
||||
BreadcrumbItem,
|
||||
BreadcrumbLink,
|
||||
BreadcrumbList,
|
||||
BreadcrumbPage,
|
||||
BreadcrumbSeparator
|
||||
} from "@/components/ui/breadcrumb";
|
||||
import { HouseIcon, GlobeHemisphereWestIcon, CaretDoubleRightIcon } from "@/components/ui/phosphor-icons";
|
||||
import type { ReactNode } from "react";
|
||||
|
||||
interface MapsBreadcrumbProps {
|
||||
currentPage: string;
|
||||
currentIcon?: ReactNode;
|
||||
isLeafletOpen?: boolean;
|
||||
onExitMap?: () => void;
|
||||
}
|
||||
|
||||
export function MapsBreadcrumb({ currentPage, currentIcon, isLeafletOpen = false, onExitMap }: MapsBreadcrumbProps) {
|
||||
return (
|
||||
<Breadcrumb>
|
||||
<BreadcrumbList>
|
||||
<BreadcrumbItem>
|
||||
<BreadcrumbLink href="/dashboard" className="flex items-center gap-1">
|
||||
<HouseIcon className="size-3.5" />
|
||||
Beranda
|
||||
</BreadcrumbLink>
|
||||
</BreadcrumbItem>
|
||||
<BreadcrumbSeparator>
|
||||
<CaretDoubleRightIcon />
|
||||
</BreadcrumbSeparator>
|
||||
|
||||
{!isLeafletOpen ? (
|
||||
<BreadcrumbItem>
|
||||
<BreadcrumbPage className="flex items-center gap-1">
|
||||
{currentIcon}
|
||||
{currentPage}
|
||||
</BreadcrumbPage>
|
||||
</BreadcrumbItem>
|
||||
) : (
|
||||
<>
|
||||
<BreadcrumbItem>
|
||||
{onExitMap ? (
|
||||
<BreadcrumbLink
|
||||
render={<button type="button" onClick={onExitMap} />}
|
||||
className="flex items-center gap-1"
|
||||
>
|
||||
{currentIcon}
|
||||
{currentPage}
|
||||
</BreadcrumbLink>
|
||||
) : (
|
||||
<BreadcrumbLink
|
||||
href={
|
||||
currentPage === "Peta Kemiskinan" || currentPage === "Poverty" ? "/dashboard/poverty" :
|
||||
currentPage === "Lahan dan Jalan" || currentPage === "Lands and Roads" ? "/dashboard/land" :
|
||||
currentPage === "SPBU dan Charger" || currentPage === "Gas Stations" ? "/dashboard/gas-station" :
|
||||
"/dashboard"
|
||||
}
|
||||
className="flex items-center gap-1"
|
||||
>
|
||||
{currentIcon}
|
||||
{currentPage}
|
||||
</BreadcrumbLink>
|
||||
)}
|
||||
</BreadcrumbItem>
|
||||
<BreadcrumbSeparator>
|
||||
<CaretDoubleRightIcon />
|
||||
</BreadcrumbSeparator>
|
||||
<BreadcrumbItem>
|
||||
<BreadcrumbPage className="flex items-center gap-1">
|
||||
<GlobeHemisphereWestIcon className="size-3.5" />
|
||||
Peta
|
||||
</BreadcrumbPage>
|
||||
</BreadcrumbItem>
|
||||
</>
|
||||
)}
|
||||
</BreadcrumbList>
|
||||
</Breadcrumb>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user