diff --git a/frontend/src/pages/DrawIt.tsx b/frontend/src/pages/DrawIt.tsx index 40ee3c7..617762b 100644 --- a/frontend/src/pages/DrawIt.tsx +++ b/frontend/src/pages/DrawIt.tsx @@ -30,6 +30,7 @@ export default function DrawIt() { const [pictureList, setPictureList] = useState([]) const [currentIndex, setCurrentIndex] = useState(-1) + const [debouncedIndex, setDebouncedIndex] = useState(-1) const [objects, setObjects] = useState([]) const [selectedObjectId, setSelectedObjectId] = useState(null) const [currentSelections, setCurrentSelections] = useState([]) @@ -52,6 +53,12 @@ export default function DrawIt() { const canvasRef = useRef(null) + // Debounce: Bild erst laden wenn 350ms keine weitere Navigation + useEffect(() => { + const t = setTimeout(() => setDebouncedIndex(currentIndex), 350) + return () => clearTimeout(t) + }, [currentIndex]) + useEffect(() => { if (safeWordInputVisible) safeWordInputRef.current?.focus() }, [safeWordInputVisible]) @@ -83,8 +90,9 @@ export default function DrawIt() { } } + // currentPicture folgt dem debouncedIndex → lädt erst wenn Navigation pausiert const currentPicture: DirectusPicture | null = - currentIndex >= 0 && currentIndex < pictureList.length ? pictureList[currentIndex] : null + debouncedIndex >= 0 && debouncedIndex < pictureList.length ? pictureList[debouncedIndex] : null // Map DirectusObject → CanvasObject for rendering const canvasObjects: CanvasObject[] = objects.map((obj, i) => ({