diff --git a/resources/js/components/nav-main.tsx b/resources/js/components/nav-main.tsx index 12f1351..9cfa76d 100644 --- a/resources/js/components/nav-main.tsx +++ b/resources/js/components/nav-main.tsx @@ -1,70 +1,74 @@ -"use client" +'use client'; -import { Link, usePage } from "@inertiajs/react"; +import { Link, usePage } from '@inertiajs/react'; import { - SidebarGroup, - SidebarGroupLabel, - SidebarMenu, - SidebarMenuButton, - SidebarMenuItem -} from "@/components/ui/sidebar"; + SidebarGroup, + SidebarGroupLabel, + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, +} from '@/components/ui/sidebar'; export type NavItem = { - name: string - url: string - icon: React.ComponentType<{ className?: string }> -} + name: string; + url: string; + icon: React.ComponentType<{ className?: string }>; +}; export type NavGroup = { - label: string - items: NavItem[] -} - -export function NavMain({ - items, -}: { - items: (NavGroup | NavItem)[] -}) { - const { url } = usePage() - - return ( - <> - {items.map((item) => { - if ("label" in item) { - return ( - - {item.label} - - {item.items.map((child) => ( - - - - - {child.name} - - - - ))} - - - ) - } - - return ( - - - - - - - {item.name} - - - - - - ) - })} - > - ) + label: string; + items: NavItem[]; +}; + +export function NavMain({ items }: { items: (NavGroup | NavItem)[] }) { + const { url } = usePage(); + + return ( + <> + {items.map((item) => { + if ('label' in item) { + return ( + + {item.label} + + {item.items.map((child) => ( + + + + + {child.name} + + + + ))} + + + ); + } + + return ( + + + + + + + {item.name} + + + + + + ); + })} + > + ); } diff --git a/resources/js/components/nav-secondary.tsx b/resources/js/components/nav-secondary.tsx index c933b7f..7a929b7 100644 --- a/resources/js/components/nav-secondary.tsx +++ b/resources/js/components/nav-secondary.tsx @@ -1,42 +1,43 @@ -"use client" +'use client'; -import type {Icon} from "@tabler/icons-react"; -import * as React from "react" +import { Link } from '@inertiajs/react'; +import type { Icon } from '@tabler/icons-react'; +import * as React from 'react'; import { - SidebarGroup, - SidebarGroupContent, - SidebarMenu, - SidebarMenuButton, - SidebarMenuItem, -} from "@/components/ui/sidebar" + SidebarGroup, + SidebarGroupContent, + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, +} from '@/components/ui/sidebar'; export function NavSecondary({ - items, - ...props + items, + ...props }: { - items: { - title: string - url: string - icon: Icon - }[] + items: { + title: string; + url: string; + icon: Icon; + }[]; } & React.ComponentPropsWithoutRef) { - return ( - - - - {items.map((item) => ( - - - - - {item.title} - - - - ))} - - - - ) + return ( + + + + {items.map((item) => ( + + + + + {item.title} + + + + ))} + + + + ); } diff --git a/resources/js/pages/admin/academic-classes/assignments/submissions.tsx b/resources/js/pages/admin/academic-classes/assignments/submissions.tsx index af9e019..fbf5b63 100644 --- a/resources/js/pages/admin/academic-classes/assignments/submissions.tsx +++ b/resources/js/pages/admin/academic-classes/assignments/submissions.tsx @@ -1,4 +1,4 @@ -import { Head, router } from '@inertiajs/react'; +import { Head, Link, router } from '@inertiajs/react'; import type { ColumnDef } from '@tanstack/react-table'; import { format } from 'date-fns'; import { ArrowLeft, Pencil, Plus, Trash2 } from 'lucide-react'; @@ -161,10 +161,10 @@ export default function SubmissionIndex({ title="Pengumpulan Tugas" actions={ - + Kembali - + } /> diff --git a/resources/js/pages/admin/academic-classes/attendances/session.tsx b/resources/js/pages/admin/academic-classes/attendances/session.tsx index 781730d..3bd62a1 100644 --- a/resources/js/pages/admin/academic-classes/attendances/session.tsx +++ b/resources/js/pages/admin/academic-classes/attendances/session.tsx @@ -1,4 +1,4 @@ -import { Head, router } from '@inertiajs/react'; +import { Head, Link, router } from '@inertiajs/react'; import { format } from 'date-fns'; import { ArrowLeft, CheckCircle2, Save, XCircle } from 'lucide-react'; import { useState } from 'react'; @@ -86,10 +86,10 @@ export default function AttendanceSession({ title="Kehadiran" actions={ - + Kembali - + } /> diff --git a/resources/js/pages/admin/finances/tuition-invoices/payments.tsx b/resources/js/pages/admin/finances/tuition-invoices/payments.tsx index 67a5f94..cb81f3f 100644 --- a/resources/js/pages/admin/finances/tuition-invoices/payments.tsx +++ b/resources/js/pages/admin/finances/tuition-invoices/payments.tsx @@ -1,4 +1,4 @@ -import { Head, router } from '@inertiajs/react'; +import { Head, Link, router } from '@inertiajs/react'; import type { ColumnDef } from '@tanstack/react-table'; import { format } from 'date-fns'; import { ArrowLeft, Paperclip, Pencil, Plus, Trash2 } from 'lucide-react'; @@ -176,10 +176,10 @@ export default function TuitionPaymentIndex({ invoice, payments }: Props) { title="Pembayaran" actions={ - + Kembali - + } /> diff --git a/resources/js/pages/admin/manage/course-classes/enrollments.tsx b/resources/js/pages/admin/manage/course-classes/enrollments.tsx index fbf772c..8c7f857 100644 --- a/resources/js/pages/admin/manage/course-classes/enrollments.tsx +++ b/resources/js/pages/admin/manage/course-classes/enrollments.tsx @@ -1,4 +1,4 @@ -import { Head, router } from '@inertiajs/react'; +import { Head, Link, router } from '@inertiajs/react'; import type { ColumnDef } from '@tanstack/react-table'; import { format } from 'date-fns'; import { ArrowLeft, Trash2, UserPlus } from 'lucide-react'; @@ -109,10 +109,10 @@ export default function ClassEnrollmentIndex({ title="Peserta Kelas" actions={ - + Kembali - + } /> diff --git a/resources/js/pages/admin/users/administrators/create.tsx b/resources/js/pages/admin/users/administrators/create.tsx index f72dc82..c4ba2fa 100644 --- a/resources/js/pages/admin/users/administrators/create.tsx +++ b/resources/js/pages/admin/users/administrators/create.tsx @@ -1,4 +1,4 @@ -import { Form, Head } from '@inertiajs/react'; +import { Form, Head, Link } from '@inertiajs/react'; import { format } from 'date-fns'; import { ArrowLeft, Save } from 'lucide-react'; import { useState } from 'react'; @@ -7,7 +7,13 @@ import InputError from '@/components/input-error'; import { PageHeader } from '@/components/page-header'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; -import { Combobox, ComboboxContent, ComboboxInput, ComboboxItem, ComboboxList } from '@/components/ui/combobox'; +import { + Combobox, + ComboboxContent, + ComboboxInput, + ComboboxItem, + ComboboxList, +} from '@/components/ui/combobox'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { PhoneInput } from '@/components/ui/phone-input'; @@ -35,10 +41,10 @@ export default function AdministratorCreate({ roles }: Props) { title="Tambah Administrator" actions={ - + Kembali - + } /> @@ -53,29 +59,62 @@ export default function AdministratorCreate({ roles }: Props) { - Username * + Username{' '} + + * + - + - Email * + Email{' '} + + * + - + - Role * + Role{' '} + + * + - - setRole(v ?? '')}> - + + + setRole(v ?? '') + } + > + {roles.map((r) => ( - + {r.name} ))} @@ -94,57 +133,138 @@ export default function AdministratorCreate({ roles }: Props) { - Nama Lengkap * + Nama Lengkap{' '} + + * + - - + + - Nomor Telepon * + Nomor Telepon{' '} + + * + - - + + - Jenis Kelamin * + Jenis Kelamin{' '} + + * + - - + + - - Laki-laki + + + Laki-laki + - - Perempuan + + + Perempuan + - + - Tempat Lahir * + Tempat Lahir{' '} + + * + - - + + - Tanggal Lahir * + Tanggal Lahir{' '} + + * + - - - + + + - Alamat * + Alamat{' '} + + * + - + diff --git a/resources/js/pages/admin/users/administrators/edit.tsx b/resources/js/pages/admin/users/administrators/edit.tsx index f997f6b..9846324 100644 --- a/resources/js/pages/admin/users/administrators/edit.tsx +++ b/resources/js/pages/admin/users/administrators/edit.tsx @@ -1,4 +1,4 @@ -import { Form, Head } from '@inertiajs/react'; +import { Form, Head, Link } from '@inertiajs/react'; import { format } from 'date-fns'; import { ArrowLeft, Save } from 'lucide-react'; import { useState } from 'react'; @@ -7,7 +7,13 @@ import InputError from '@/components/input-error'; import { PageHeader } from '@/components/page-header'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; -import { Combobox, ComboboxContent, ComboboxInput, ComboboxItem, ComboboxList } from '@/components/ui/combobox'; +import { + Combobox, + ComboboxContent, + ComboboxInput, + ComboboxItem, + ComboboxList, +} from '@/components/ui/combobox'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { PhoneInput } from '@/components/ui/phone-input'; @@ -21,7 +27,14 @@ type User = { id: number; username: string; email: string; - profile: { full_name: string; phone_number: string; address: string; gender: string; birth_date: string; birth_place: string } | null; + profile: { + full_name: string; + phone_number: string; + address: string; + gender: string; + birth_date: string; + birth_place: string; + } | null; roles: { id: number; name: string }[]; }; @@ -33,7 +46,9 @@ type Props = { export default function AdministratorEdit({ user, roles }: Props) { const [gender, setGender] = useState(user.profile?.gender ?? ''); const [birthDate, setBirthDate] = useState( - user.profile?.birth_date ? new Date(user.profile.birth_date) : undefined + user.profile?.birth_date + ? new Date(user.profile.birth_date) + : undefined, ); const [role, setRole] = useState(user.roles?.[0]?.name ?? ''); @@ -46,10 +61,10 @@ export default function AdministratorEdit({ user, roles }: Props) { title="Edit Administrator" actions={ - + Kembali - + } /> @@ -64,29 +79,62 @@ export default function AdministratorEdit({ user, roles }: Props) { - Username * + Username{' '} + + * + - + - Email * + Email{' '} + + * + - + - Role * + Role{' '} + + * + - - setRole(v ?? '')}> - + + + setRole(v ?? '') + } + > + {roles.map((r) => ( - + {r.name} ))} @@ -105,57 +153,147 @@ export default function AdministratorEdit({ user, roles }: Props) { - Nama Lengkap * + Nama Lengkap{' '} + + * + - - + + - Nomor Telepon * + Nomor Telepon{' '} + + * + - - + + - Jenis Kelamin * + Jenis Kelamin{' '} + + * + - - + + - - Laki-laki + + + Laki-laki + - - Perempuan + + + Perempuan + - + - Tempat Lahir * + Tempat Lahir{' '} + + * + - - + + - Tanggal Lahir * + Tanggal Lahir{' '} + + * + - - - + + + - Alamat * + Alamat{' '} + + * + - + diff --git a/resources/js/pages/admin/users/administrators/index.tsx b/resources/js/pages/admin/users/administrators/index.tsx index 26e8855..e171a23 100644 --- a/resources/js/pages/admin/users/administrators/index.tsx +++ b/resources/js/pages/admin/users/administrators/index.tsx @@ -1,4 +1,4 @@ -import { Head, router } from '@inertiajs/react'; +import { Head, Link, router } from '@inertiajs/react'; import { Plus, RotateCcw } from 'lucide-react'; import { useState } from 'react'; import { ConfirmDialog } from '@/components/confirm-dialog'; @@ -118,10 +118,10 @@ export default function AdministratorIndex({ administrators, filters }: Props) { title="Administrator" actions={ - + Tambah - + } /> diff --git a/resources/js/pages/admin/users/lecturers/create.tsx b/resources/js/pages/admin/users/lecturers/create.tsx index 7837297..73fb48a 100644 --- a/resources/js/pages/admin/users/lecturers/create.tsx +++ b/resources/js/pages/admin/users/lecturers/create.tsx @@ -1,4 +1,4 @@ -import { Form, Head } from '@inertiajs/react'; +import { Form, Head, Link } from '@inertiajs/react'; import { format } from 'date-fns'; import { ArrowLeft, Save } from 'lucide-react'; import { useState } from 'react'; @@ -49,10 +49,10 @@ export default function LecturerCreate({ departments }: Props) { title="Tambah Dosen" actions={ - + Kembali - + } /> diff --git a/resources/js/pages/admin/users/lecturers/edit.tsx b/resources/js/pages/admin/users/lecturers/edit.tsx index 184a44c..a17978d 100644 --- a/resources/js/pages/admin/users/lecturers/edit.tsx +++ b/resources/js/pages/admin/users/lecturers/edit.tsx @@ -1,4 +1,4 @@ -import { Form, Head } from '@inertiajs/react'; +import { Form, Head, Link } from '@inertiajs/react'; import { format } from 'date-fns'; import { ArrowLeft, Save } from 'lucide-react'; import { useState } from 'react'; @@ -76,10 +76,10 @@ export default function LecturerEdit({ user, departments }: Props) { title="Edit Dosen" actions={ - + Kembali - + } /> diff --git a/resources/js/pages/admin/users/lecturers/index.tsx b/resources/js/pages/admin/users/lecturers/index.tsx index 1e6960b..709bf43 100644 --- a/resources/js/pages/admin/users/lecturers/index.tsx +++ b/resources/js/pages/admin/users/lecturers/index.tsx @@ -1,4 +1,4 @@ -import { Head, router } from '@inertiajs/react'; +import { Head, Link, router } from '@inertiajs/react'; import { FileSpreadsheet, Plus, RotateCcw } from 'lucide-react'; import { useState } from 'react'; import { ConfirmDialog } from '@/components/confirm-dialog'; @@ -147,10 +147,10 @@ export default function LecturerIndex({ - + Tambah - + } diff --git a/resources/js/pages/admin/users/students/create.tsx b/resources/js/pages/admin/users/students/create.tsx index 19947e1..1464be7 100644 --- a/resources/js/pages/admin/users/students/create.tsx +++ b/resources/js/pages/admin/users/students/create.tsx @@ -1,4 +1,4 @@ -import { Form, Head } from '@inertiajs/react'; +import { Form, Head, Link } from '@inertiajs/react'; import { format } from 'date-fns'; import { ArrowLeft, Save } from 'lucide-react'; import { useState } from 'react'; @@ -56,10 +56,10 @@ export default function StudentCreate({ departments, lecturers }: Props) { title="Tambah Mahasiswa" actions={ - + Kembali - + } /> diff --git a/resources/js/pages/admin/users/students/edit.tsx b/resources/js/pages/admin/users/students/edit.tsx index 9c25ea3..e230ae9 100644 --- a/resources/js/pages/admin/users/students/edit.tsx +++ b/resources/js/pages/admin/users/students/edit.tsx @@ -1,4 +1,4 @@ -import { Form, Head } from '@inertiajs/react'; +import { Form, Head, Link } from '@inertiajs/react'; import { format } from 'date-fns'; import { ArrowLeft, Save } from 'lucide-react'; import { useState } from 'react'; @@ -85,10 +85,10 @@ export default function StudentEdit({ user, departments, lecturers }: Props) { title="Edit Mahasiswa" actions={ - + Kembali - + } /> diff --git a/resources/js/pages/admin/users/students/index.tsx b/resources/js/pages/admin/users/students/index.tsx index e851abd..42b26b1 100644 --- a/resources/js/pages/admin/users/students/index.tsx +++ b/resources/js/pages/admin/users/students/index.tsx @@ -1,4 +1,4 @@ -import { Head, router } from '@inertiajs/react'; +import { Head, Link, router } from '@inertiajs/react'; import { FileSpreadsheet, Info, Plus, RotateCcw } from 'lucide-react'; import { useState } from 'react'; import { ConfirmDialog } from '@/components/confirm-dialog'; @@ -179,10 +179,10 @@ export default function StudentIndex({ - + Tambah - + }