+
);
}
diff --git a/src/app/(admin)/invoice/page.tsx b/src/app/(admin)/invoice/page.tsx
new file mode 100644
index 0000000..f832e7c
--- /dev/null
+++ b/src/app/(admin)/invoice/page.tsx
@@ -0,0 +1,7 @@
+import InvoicePage from "@/components/invoice/invoice";
+
+export default function BasicTableOne() {
+ return(
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/(user)/history/page.tsx b/src/app/(user)/history/page.tsx
index 22da0cf..a319438 100644
--- a/src/app/(user)/history/page.tsx
+++ b/src/app/(user)/history/page.tsx
@@ -2,14 +2,96 @@
import React, { useEffect, useState } from "react";
import ComponentCard from "@/components/common/ComponentCard";
+import axios from "axios";
+import dayjs from "dayjs";
+
+
+const history = [
+ {
+ eventName: 'Konsultasi dengan Pak Budi',
+ dateTime: '2025-04-28T10:00:00.000Z',
+ status: 'Confirmed',
+ notes: 'Discussing project progress',
+ },
+ {
+ eventName: 'Konsultasi dengan Ibu Siti',
+ dateTime: '2025-04-28T14:00:00.000Z',
+ status: 'Pending',
+ notes: 'Discussing business strategy',
+ },
+ {
+ eventName: 'Review Project',
+ dateTime: '2025-04-29T09:00:00.000Z',
+ status: 'Confirmed',
+ notes: 'Reviewing the latest designs',
+ },
+ {
+ eventName: 'Konsultasi Pajak',
+ dateTime: '2025-04-29T13:00:00.000Z',
+ status: 'Canceled',
+ notes: 'Need to reschedule',
+ },
+];
export default function HistoryPage() {
+ const [bookings, setBookings] = useState([]);
+
+ const getHistory = async () => {
+ const result = await axios.get("/api/registration")
+
+ setBookings(result.data.data)
+ }
+
+ useEffect(() => {
+ getHistory()
+ }, [])
+
+ console.log(bookings)
return (
-
-
+
+ {bookings.map((booking, index) => {
+ // Membuat timestamp dari TanggalRegistrasi dan JamKonsul
+ const bookingTimestamp = dayjs(`${booking.TanggalRegistrasi} ${booking.JamKonsul}`, 'DD MMMM YYYY HH:mm');
+
+ // Membandingkan dengan waktu sekarang
+ const isConfirmed = bookingTimestamp.isBefore(dayjs()); // Jika bookingTimestamp lebih kecil dari waktu sekarang, berarti sudah lewat
+
+ // Menentukan status
+ booking.status = isConfirmed ? 'Confirmed' : 'Pending';
+ return (
+
+
+
+
{booking.NamaRuangPelayanan} dengan {booking.NamaPegawai}
handleCardClick(item.IdRegistrasi)} // Tindakan klik untuk menuju halaman invoice
+ className="cursor-pointer" // Menambahkan pointer cursor agar terlihat klikabel
+ >
+
)
})}
diff --git a/src/app/api/action/route.ts b/src/app/api/action/route.ts
new file mode 100644
index 0000000..98c2081
--- /dev/null
+++ b/src/app/api/action/route.ts
@@ -0,0 +1,26 @@
+import { NextResponse } from 'next/server'; // Menggunakan NextResponse
+import { handleGetAction } from '@/database/controllers/actionController';
+
+// Fungsi untuk menangani permintaan GET
+export async function GET() {
+ try {
+ // Panggil controller untuk mendapatkan data asuransi
+ const response = await handleGetAction();
+
+ // Mengembalikan response dengan status sukses menggunakan NextResponse
+ return NextResponse.json({
+ status: 'SUCCESS',
+ code: 200,
+ data: response, // Data hasil query
+ });
+ } catch (error) {
+ console.error('Error fetching insurance:', error);
+
+ // Jika terjadi error, kembalikan status gagal dengan error message
+ return NextResponse.json({
+ status: 'FAILURE',
+ code: 500,
+ message: 'Internal Server Error',
+ });
+ }
+}
diff --git a/src/components/auth/SignInForm.tsx b/src/components/auth/SignInForm.tsx
index db27988..8b860ec 100644
--- a/src/components/auth/SignInForm.tsx
+++ b/src/components/auth/SignInForm.tsx
@@ -5,7 +5,7 @@ import Label from "@/components/form/Label";
import Button from "@/components/ui/button/Button";
import { ChevronLeftIcon, EyeCloseIcon, EyeIcon } from "@/icons";
import Link from "next/link";
-import React, { useState } from "react";
+import React, { MouseEvent, useState } from "react";
import Cookies from "js-cookie";
import { useRouter } from "next/navigation";
@@ -18,20 +18,23 @@ export default function SignInForm() {
const [showPassword, setShowPassword] = useState(false);
const [isChecked, setIsChecked] = useState(false);
- const handleSignIn = async () => {
- // Simulasi login & ambil role dari backend
- const role = email === 'admin@example.com' ? 'admin' : 'user'
+ const handleSignIn = async (e: MouseEvent) => {
+ e.preventDefault(); // ← tambahin ini
+ console.log("first");
- // Simpan role ke cookie
- // Cookies.set('role', role)
+ const role = email === 'admin@example.com' ? 'admin' : 'user';
+
+ Cookies.set('role', role);
- // Redirect ke dashboard
if (role === 'admin') {
- return router.push('/')
+ router.push('/all-registration');
+ } else {
+ router.push('/booking');
}
- return router.push('/booking')
+ console.log("role");
}
+
return (
@@ -151,7 +154,7 @@ export default function SignInForm() {