import React, { memo, useCallback, useMemo, useState } from 'react' import { LazyIllustration } from '../../components/lazy-illustration/LazyIllustration' import { illustrationNames } from '../../generated/illustrationAssets' const debounce =
( callback: (...args: P[]) => unknown, wait: number, ) => { let timeoutId: number return (...args: P[]) => { if (timeoutId) { window.clearTimeout(timeoutId) } timeoutId = window.setTimeout(() => { callback(...args) }, wait) } } const AnimationItem = memo( ({ children, name, copyText, onClick, }: React.PropsWithChildren<{ name: string copyText: string onClick: () => void }>) => { return (
Click on any animation to copy its import path to the clipboard. All animations are displayed with a maximum width of 600px to ensure optimal viewing.
{query ? `No animations found matching "${query}"` : 'No animations available'}