diff --git a/src/app/pages/SingleBooked/page.js b/src/app/pages/SingleBooked/page.js
index eab9708..f99957a 100644
--- a/src/app/pages/SingleBooked/page.js
+++ b/src/app/pages/SingleBooked/page.js
@@ -1,12 +1,13 @@
"use client";
+import { Suspense } from 'react';
import { useSearchParams } from 'next/navigation';
-import { useEffect, useState, useRef } from 'react';
-import { databases, ID, Query } from "../../lib/appwrite"; // Added Query import
+import { useEffect, useState, useRef } from 'react';
+import { databases, ID, Query } from "../../lib/appwrite";
import { DATABASE_ID, COLLECTION_ID } from "../../lib/api";
import Header from '../../components/partials/header';
import Link from 'next/link';
-export default function SingleBooked() {
+function SingleBookedContent() {
const searchParams = useSearchParams();
const nameParam = searchParams.get('name');
const dateParam = searchParams.get('date');
@@ -20,7 +21,6 @@ export default function SingleBooked() {
const generateTokenNumber = async (date) => {
try {
- // Get the highest token number for the date
const response = await databases.listDocuments(
DATABASE_ID,
COLLECTION_ID,
@@ -35,45 +35,45 @@ export default function SingleBooked() {
return (parseInt(lastToken) + 1).toString().padStart(3, '0');
} catch (error) {
console.error("Token generation error:", error);
- return "001"; // Fallback token number
- }
- };
-
- const createBooking = async () => {
- if (bookingCreated.current) return; // Prevent duplicate calls
-
- try {
- bookingCreated.current = true; // Mark as created
- setLoading(true);
- setError(null);
-
- const generatedToken = await generateTokenNumber(appointmentDate);
-
- await databases.createDocument(
- DATABASE_ID,
- COLLECTION_ID,
- ID.unique(),
- {
- tokenNumber: generatedToken,
- date: appointmentDate,
- patientName: name,
- status: "booked",
- bookedBy: "staff",
- patientId: ID.unique(),
- }
- );
-
- setToken(generatedToken);
- } catch (error) {
- console.error("Booking error:", error);
- setError(error.message);
- bookingCreated.current = false; // Reset on error to allow retry
- } finally {
- setLoading(false);
+ return "001";
}
};
useEffect(() => {
+ const createBooking = async () => {
+ if (bookingCreated.current) return;
+
+ try {
+ bookingCreated.current = true;
+ setLoading(true);
+ setError(null);
+
+ const generatedToken = await generateTokenNumber(appointmentDate);
+
+ await databases.createDocument(
+ DATABASE_ID,
+ COLLECTION_ID,
+ ID.unique(),
+ {
+ tokenNumber: generatedToken,
+ date: appointmentDate,
+ patientName: name,
+ status: "booked",
+ bookedBy: "staff",
+ patientId: ID.unique(),
+ }
+ );
+
+ setToken(generatedToken);
+ } catch (error) {
+ console.error("Booking error:", error);
+ setError(error.message);
+ bookingCreated.current = false;
+ } finally {
+ setLoading(false);
+ }
+ };
+
if (name && appointmentDate) {
createBooking();
}
@@ -125,4 +125,12 @@ export default function SingleBooked() {
);
+}
+
+export default function SingleBooked() {
+ return (
+
You don't have permission to view this page.
+You don't have permission to view this page.