diff --git a/frontend/features/AdminBookingCalendar/AdminBookingCalendarComponent.spec.tsx b/frontend/features/AdminBookingCalendar/AdminBookingCalendarComponent.spec.tsx
new file mode 100644
index 00000000..ded844b7
--- /dev/null
+++ b/frontend/features/AdminBookingCalendar/AdminBookingCalendarComponent.spec.tsx
@@ -0,0 +1,10 @@
+import React from "react";
+import { describe, it, expect } from "vitest";
+import { render, screen } from "@testing-library/react";
+import { AdminBookingCalendarComponent } from "./AdminBookingCalendarComponent";
+describe("AdminBookingCalendarComponent", () => {
+ it("renders correctly", () => {
+ render();
+ expect(screen.getByText("Admin Calendar")).toBeDefined();
+ });
+});
diff --git a/frontend/features/AdminBookingCalendar/AdminBookingCalendarComponent.tsx b/frontend/features/AdminBookingCalendar/AdminBookingCalendarComponent.tsx
new file mode 100644
index 00000000..9eb25954
--- /dev/null
+++ b/frontend/features/AdminBookingCalendar/AdminBookingCalendarComponent.tsx
@@ -0,0 +1,32 @@
+import React from "react";
+import { useAdminBookingCalendar } from "./useAdminBookingCalendar";
+export const AdminBookingCalendarComponent: React.FC = () => {
+ const { view, slots, setView } = useAdminBookingCalendar();
+ return (
+
+
+
Admin Calendar
+
+
+
+
+
+
+ {/* Render slots based on view */}
+
+ No bookings for this {view}
+
+
+
+ );
+};
diff --git a/frontend/features/AdminBookingCalendar/AdminBookingCalendarStore.ts b/frontend/features/AdminBookingCalendar/AdminBookingCalendarStore.ts
new file mode 100644
index 00000000..0eaaba4f
--- /dev/null
+++ b/frontend/features/AdminBookingCalendar/AdminBookingCalendarStore.ts
@@ -0,0 +1,8 @@
+import { createContext } from "react";
+import { CalendarState, BookingSlot } from "./AdminBookingCalendarTypes";
+export interface CalendarStore extends CalendarState {
+ setView: (view: "day" | "week") => void;
+}
+export const AdminBookingCalendarContext = createContext<
+ CalendarStore | undefined
+>(undefined);
diff --git a/frontend/features/AdminBookingCalendar/AdminBookingCalendarTypes.ts b/frontend/features/AdminBookingCalendar/AdminBookingCalendarTypes.ts
new file mode 100644
index 00000000..d7acc3d6
--- /dev/null
+++ b/frontend/features/AdminBookingCalendar/AdminBookingCalendarTypes.ts
@@ -0,0 +1,10 @@
+export interface BookingSlot {
+ id: string;
+ workspaceId: string;
+ startTime: string;
+ endTime: string;
+}
+export interface CalendarState {
+ view: "day" | "week";
+ slots: BookingSlot[];
+}
diff --git a/frontend/features/AdminBookingCalendar/useAdminBookingCalendar.ts b/frontend/features/AdminBookingCalendar/useAdminBookingCalendar.ts
new file mode 100644
index 00000000..aef1207a
--- /dev/null
+++ b/frontend/features/AdminBookingCalendar/useAdminBookingCalendar.ts
@@ -0,0 +1,7 @@
+import { useState } from "react";
+import { BookingSlot } from "./AdminBookingCalendarTypes";
+export const useAdminBookingCalendar = () => {
+ const [view, setView] = useState<"day" | "week">("week");
+ const [slots] = useState([]);
+ return { view, slots, setView };
+};