diff --git a/frontend/apps/artcraft-webapp/src/pages/moodboard/MoodboardPage.tsx b/frontend/apps/artcraft-webapp/src/pages/moodboard/MoodboardPage.tsx index 253e87f959..1c31850ba4 100644 --- a/frontend/apps/artcraft-webapp/src/pages/moodboard/MoodboardPage.tsx +++ b/frontend/apps/artcraft-webapp/src/pages/moodboard/MoodboardPage.tsx @@ -1,6 +1,14 @@ import { useEffect } from "react"; import { useNavigate } from "react-router-dom"; -import { MoodboardWorkspace } from "@storyteller/ui-moodboard"; +import { + MoodboardWorkspace, + dispatchGalleryMoodboardDrop, +} from "@storyteller/ui-moodboard"; +import { + GalleryItem, + onImageDrop, + removeImageDropListener, +} from "@storyteller/ui-gallery-modal"; import { webappMoodboardAdapter, setMoodboardNavigate, @@ -16,6 +24,19 @@ export default function MoodboardPage() { setMoodboardNavigate((path) => navigate(path)); }, [navigate]); + // Drag a library image onto the grid/canvas to add it to the board. + useEffect(() => { + const handler = onImageDrop( + (item: GalleryItem, position: { x: number; y: number }) => { + dispatchGalleryMoodboardDrop(item, position); + }, + ); + return () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (handler) removeImageDropListener(handler as any); + }; + }, []); + return (
- {item.title || item.url} -
-{item.url}
++ {item.title || hostnameOf(item.url)} +
+{item.url}
+