diff --git a/apps/dispatch/app/_components/left/SituationBoard.tsx b/apps/dispatch/app/_components/left/SituationBoard.tsx
new file mode 100644
index 00000000..e254efb2
--- /dev/null
+++ b/apps/dispatch/app/_components/left/SituationBoard.tsx
@@ -0,0 +1,45 @@
+"use client";
+import { useLeftMenuStore } from "_store/leftMenuStore";
+import { useSession } from "next-auth/react";
+import { cn } from "_helpers/cn";
+import { ListCollapse, Plane } from "lucide-react";
+
+export const SituationBoard = () => {
+ const { setSituationTabOpen, situationTabOpen } = useLeftMenuStore();
+ const session = useSession();
+
+ return (
+
+
+
+
+ {situationTabOpen && (
+
+
+
+
+ Einsatzliste
+
+
+
+
+
+
+ )}
+
+ );
+};
diff --git a/apps/dispatch/app/_store/leftMenuStore.ts b/apps/dispatch/app/_store/leftMenuStore.ts
index 91e0c364..6c613f0b 100644
--- a/apps/dispatch/app/_store/leftMenuStore.ts
+++ b/apps/dispatch/app/_store/leftMenuStore.ts
@@ -4,6 +4,8 @@ import { dispatchSocket } from "dispatch/socket";
import { pilotSocket } from "pilot/socket";
interface ChatStore {
+ situationTabOpen: boolean;
+ setSituationTabOpen: (open: boolean) => void;
reportTabOpen: boolean;
setReportTabOpen: (open: boolean) => void;
ownId: null | string;
@@ -12,10 +14,7 @@ interface ChatStore {
setChatOpen: (open: boolean) => void;
setSelectedChat: (chatId: string | null) => void;
setOwnId: (id: string) => void;
- chats: Record<
- string,
- { name: string; notification: boolean; messages: ChatMessage[] }
- >;
+ chats: Record;
setChatNotification: (userId: string, notification: boolean) => void;
sendMessage: (userId: string, message: string) => Promise;
addChat: (userId: string, name: string) => void;
@@ -23,6 +22,8 @@ interface ChatStore {
}
export const useLeftMenuStore = create((set, get) => ({
+ situationTabOpen: false,
+ setSituationTabOpen: (open: boolean) => set({ situationTabOpen: open }),
reportTabOpen: false,
setReportTabOpen: (open: boolean) => set({ reportTabOpen: open }),
ownId: null,
@@ -34,17 +35,13 @@ export const useLeftMenuStore = create((set, get) => ({
chats: {},
sendMessage: (userId: string, message: string) => {
return new Promise((resolve, reject) => {
- dispatchSocket.emit(
- "send-message",
- { userId, message },
- ({ error }: { error?: string }) => {
- if (error) {
- reject(error);
- } else {
- resolve();
- }
- },
- );
+ dispatchSocket.emit("send-message", { userId, message }, ({ error }: { error?: string }) => {
+ if (error) {
+ reject(error);
+ } else {
+ resolve();
+ }
+ });
});
},
addChat: (userId, name) => {
@@ -87,8 +84,7 @@ export const useLeftMenuStore = create((set, get) => ({
[userId]: {
...user,
name: isSender ? message.receiverName : message.senderName,
- notification:
- !isSender && (state.selectedChat !== userId || !state.chatOpen),
+ notification: !isSender && (state.selectedChat !== userId || !state.chatOpen),
messages: [...user.messages, message], // Neuen Zustand erzeugen
},
},
@@ -106,12 +102,9 @@ dispatchSocket.on(
store.addMessage(userId, message);
},
);
-pilotSocket.on(
- "chat-message",
- ({ userId, message }: { userId: string; message: ChatMessage }) => {
- const store = useLeftMenuStore.getState();
- console.log("chat-message", userId, message);
- // Update the chat store with the new message
- store.addMessage(userId, message);
- },
-);
+pilotSocket.on("chat-message", ({ userId, message }: { userId: string; message: ChatMessage }) => {
+ const store = useLeftMenuStore.getState();
+ console.log("chat-message", userId, message);
+ // Update the chat store with the new message
+ store.addMessage(userId, message);
+});
diff --git a/apps/dispatch/app/dispatch/page.tsx b/apps/dispatch/app/dispatch/page.tsx
index c3618526..67e26728 100644
--- a/apps/dispatch/app/dispatch/page.tsx
+++ b/apps/dispatch/app/dispatch/page.tsx
@@ -6,6 +6,7 @@ import { cn } from "_helpers/cn";
import dynamic from "next/dynamic";
import { Chat } from "../_components/left/Chat";
import { Report } from "../_components/left/Report";
+import { SituationBoard } from "_components/left/SituationBoard";
const Map = dynamic(() => import("../_components/map/Map"), { ssr: false });
const DispatchPage = () => {
@@ -20,6 +21,11 @@ const DispatchPage = () => {
+