'use client' import * as React from 'react' import type { EntityVersionWithAuthor } from '@admin/actions/entity-versions' import { toast } from 'sonner' interface UseEntityVersionsOptions { entityId: string getVersionsAction: (entityId: string) => Promise } export function useEntityVersions({ entityId, getVersionsAction }: UseEntityVersionsOptions) { const [versions, setVersions] = React.useState([]) const [isPending, startTransition] = React.useTransition() const load = React.useCallback(() => { startTransition(async () => { try { const nextVersions = await getVersionsAction(entityId) setVersions(nextVersions) } catch (error) { console.error(error) toast.error('Failed to load versions. Try again.') } }) }, [entityId, getVersionsAction]) return { versions, isPending, load } }