{title}
diff --git a/components/Notes.tsx b/components/Notes.tsx
index ee659a0..bd06aea 100644
--- a/components/Notes.tsx
+++ b/components/Notes.tsx
@@ -12,27 +12,15 @@ import { GameUpdate } from '@/types';
type NotesProps = {
gameData: GameUpdate;
+ show: boolean;
};
-export default function Notes({ gameData: { dmID, cards, settings } }: NotesProps) {
+export default function Notes({ gameData: { dmID, cards, settings }, show }: NotesProps) {
const isDM = !!dmID;
const [open, setOpen] = useState(false);
- const gameDummy = {
- dmID: '',
- spectatorID: '',
- cards: [],
- settings: {
- positionBack: false,
- positionFront: false,
- prophecy: false,
- notes: false,
- cardStyle: 'color',
- },
- };
-
- const notes = useMemo(
+ const notes: (string[] | undefined)[] = useMemo(
() =>
Array.from({ length: 9 })
.map((_cell: unknown, index: number) => cards[cardMap[index]])
@@ -47,39 +35,44 @@ export default function Notes({ gameData: { dmID, cards, settings } }: NotesProp
[settings],
);
- return isDM || settings.notes ? (
-
- {!open && (
-
- )}
+ const showNotes = show && open && (isDM || settings.notes);
- {open && (
-
setOpen((prev) => !prev)}>
-
-
note!.join('\n')).join('\n\n')}
- className="absolute top-2 right-2 p-2 bg-black/30 hover:bg-black/50 rounded-full text-gray-200 hover:text-white"
- />
-
- {notes.map((note, index) => (
-
-
- {note!.map((blurb, index) => (
-
{blurb}
- ))}
-
- {index < notes.length - 1 &&
}
+ return (
+
+
+
+
setOpen((prev) => !prev)}
+ className={`transition-all duration-250 ${showNotes ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0'}`}
+ >
+
+
note!.join('\n')).join('\n\n')}
+ className="absolute top-2 right-2 p-2 transition-all duration-250 bg-black/20 hover:bg-black/40 rounded-full text-gray-300 hover:text-white"
+ />
+
+ {notes.map((note, index) => (
+
+
+ {note!.map((blurb, index) => (
+
{blurb}
+ ))}
- ))}
-
+ {index < notes.length - 1 &&
}
+
+ ))}
-
- )}
+
+
- ) : null;
+ );
}
diff --git a/components/Settings.tsx b/components/Settings.tsx
index 4d604d4..dcb5329 100644
--- a/components/Settings.tsx
+++ b/components/Settings.tsx
@@ -1,7 +1,7 @@
'use client';
import { useState } from 'react';
-import { Settings as Gear, X } from 'lucide-react';
+import { Settings as Gear } from 'lucide-react';
import CopyButton from '@/components/CopyButton';
import Scrim from '@/components/Scrim';
@@ -78,29 +78,33 @@ export default function Settings({ gameData, changeAction }: SettingsProps) {
);
- return open ? (
-
setOpen((prev) => !prev)}>
-
-
- ) : (
-
+ return (
+
+
setOpen((prev) => !prev)}
+ className={`transition-all duration-250 ${open ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0'}`}
+ >
+
+