style: apply consistent code formatting across project files

This commit is contained in:
Firman Ramdhani
2026-09-16 13:14:02 +07:00
parent d5791e759e
commit 51d05653c6
48 changed files with 3585 additions and 2575 deletions
+35 -22
View File
@@ -2,7 +2,17 @@
import { useEffect, useState } from 'react'
import { usePathname } from 'next/navigation'
import { Menu, Calendar, Store, ClipboardList, Package, User, FileText, BarChart2, Settings } from 'lucide-react'
import {
Menu,
Calendar,
Store,
ClipboardList,
Package,
User,
FileText,
BarChart2,
Settings,
} from 'lucide-react'
import { buttonVariants } from '@/components/ui/button'
import { cn } from '@/lib/utils'
import Link from 'next/link'
@@ -24,35 +34,35 @@ export function Header({ onMenuClick }: { onMenuClick: () => void }) {
title: 'Open Order Hari Ini',
subtitle: 'Daftar pesanan aktif yang siap kamu titip.',
badge: 'Live PO',
Icon: Store
Icon: Store,
}
case '/my-orders':
return {
title: 'Jasa Order Saya',
subtitle: 'Kelola PO yang Anda buka untuk teman-teman.',
badge: 'Manajemen PO',
Icon: ClipboardList
Icon: ClipboardList,
}
case '/my-purchases':
return {
title: 'Pesanan Saya',
subtitle: 'Pantau barang yang Anda titip beserta status tagihannya.',
badge: 'Riwayat Titipan',
Icon: Package
Icon: Package,
}
case '/profile':
return {
title: 'Pengaturan Profil',
subtitle: 'Kelola identitas dan preferensi akun Anda.',
badge: 'Akun',
Icon: User
Icon: User,
}
case '/reports':
return {
title: 'Laporan Keuangan',
subtitle: 'Pantau omzet, pengeluaran, dan hutang piutang Anda.',
badge: 'Laporan',
Icon: BarChart2
Icon: BarChart2,
}
case '/settings/users':
case '/settings/integrations':
@@ -60,7 +70,7 @@ export function Header({ onMenuClick }: { onMenuClick: () => void }) {
title: 'Pengaturan Aplikasi',
subtitle: 'Konfigurasi integrasi, role, dan sistem.',
badge: 'Superadmin',
Icon: Settings
Icon: Settings,
}
default:
if (pathname.startsWith('/my-orders/')) {
@@ -68,14 +78,14 @@ export function Header({ onMenuClick }: { onMenuClick: () => void }) {
title: 'Detail & Rekap Order',
subtitle: 'Rincian pesanan, tagihan pemesan, dan ringkasan belanja.',
badge: 'Detail PO',
Icon: FileText
Icon: FileText,
}
}
return {
title: 'TitipIn',
subtitle: 'Sistem Titip Pesanan Bersama',
badge: 'App',
Icon: Store
Icon: Store,
}
}
}
@@ -83,31 +93,34 @@ export function Header({ onMenuClick }: { onMenuClick: () => void }) {
const { title, subtitle, badge, Icon } = getPageInfo()
return (
<header className="sticky top-0 z-30 bg-white/90 dark:bg-slate-900/90 backdrop-blur-md border-b border-slate-200/80 dark:border-slate-800 px-6 py-4">
<header className="sticky top-0 z-30 border-b border-slate-200/80 bg-white/90 px-6 py-4 backdrop-blur-md dark:border-slate-800 dark:bg-slate-900/90">
<div className="flex items-center justify-between gap-4">
{/* Left: Mobile hamburger & Page Title */}
<div className="flex items-center gap-3">
<button
<button
onClick={onMenuClick}
className="lg:hidden p-2 rounded-xl border border-slate-200 dark:border-slate-800 text-slate-600 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors"
className="rounded-xl border border-slate-200 p-2 text-slate-600 transition-colors hover:bg-slate-100 lg:hidden dark:border-slate-800 dark:text-slate-300 dark:hover:bg-slate-800"
>
<Menu className="w-5 h-5" />
<Menu className="h-5 w-5" />
</button>
<div className="flex items-center gap-3 sm:gap-4">
<div className="hidden sm:flex items-center justify-center w-11 h-11 md:w-12 md:h-12 rounded-xl border border-blue-100 dark:border-blue-900/50 bg-gradient-to-br from-blue-50 to-[#1B2CC1]/10 dark:from-[#1B2CC1]/20 dark:to-[#121E85]/20 shadow-inner shrink-0">
<Icon className="w-5 h-5 md:w-6 md:h-6 text-[#1B2CC1] dark:text-blue-400" strokeWidth={2.5} />
<div className="hidden h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-blue-100 bg-gradient-to-br from-blue-50 to-[#1B2CC1]/10 shadow-inner sm:flex md:h-12 md:w-12 dark:border-blue-900/50 dark:from-[#1B2CC1]/20 dark:to-[#121E85]/20">
<Icon
className="h-5 w-5 text-[#1B2CC1] md:h-6 md:w-6 dark:text-blue-400"
strokeWidth={2.5}
/>
</div>
<div>
<div className="flex items-center gap-2">
<h1 className="text-xl sm:text-2xl font-black tracking-tight text-slate-900 dark:text-white">
<h1 className="text-xl font-black tracking-tight text-slate-900 sm:text-2xl dark:text-white">
{title}
</h1>
<span className="hidden sm:inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-bold bg-[#1B2CC1]/10 text-[#1B2CC1] dark:bg-blue-900/40 dark:text-blue-300">
<span className="hidden items-center rounded-full bg-[#1B2CC1]/10 px-2 py-0.5 text-[11px] font-bold text-[#1B2CC1] sm:inline-flex dark:bg-blue-900/40 dark:text-blue-300">
{badge}
</span>
</div>
<p className="text-xs text-slate-500 dark:text-slate-400 mt-0.5 hidden sm:block">
<p className="mt-0.5 hidden text-xs text-slate-500 sm:block dark:text-slate-400">
{subtitle}
</p>
</div>
@@ -117,9 +130,9 @@ export function Header({ onMenuClick }: { onMenuClick: () => void }) {
{/* Right: Date info & Quick Action */}
<div className="flex items-center gap-3">
{todayStr && (
<div className="flex items-center gap-2 px-3 py-1.5 rounded-xl bg-slate-100/70 dark:bg-slate-800/60 border border-slate-200/60 dark:border-slate-800 text-[10px] sm:text-xs font-medium text-slate-600 dark:text-slate-300 animate-in fade-in font-bold">
<Calendar className="w-3.5 h-3.5 text-[#1B2CC1] shrink-0" />
<span className='font-bold whitespace-nowrap'>{todayStr}</span>
<div className="animate-in fade-in flex items-center gap-2 rounded-xl border border-slate-200/60 bg-slate-100/70 px-3 py-1.5 text-[10px] font-bold font-medium text-slate-600 sm:text-xs dark:border-slate-800 dark:bg-slate-800/60 dark:text-slate-300">
<Calendar className="h-3.5 w-3.5 shrink-0 text-[#1B2CC1]" />
<span className="font-bold whitespace-nowrap">{todayStr}</span>
</div>
)}
</div>