'use client'; import { useState, useEffect, useCallback } from 'react'; import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors, DragEndEvent, } from '@dnd-kit/core'; import { arrayMove, SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy, horizontalListSortingStrategy, } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; import AlbumPicker from './AlbumPicker'; import AssetPicker from './AssetPicker'; import AssetOrderEditor from './AssetOrderEditor'; import { EssayBlockEditor } from './EssayBlockEditor'; import { ALBUM_SORT_MODES, DEFAULT_ALBUM_SORT, isAlbumSortMode, type AlbumSortMode, } from '@/lib/albumSort'; import type { AlbumEntryObject } from '@/lib/config/schema'; import { IconCamera, IconCopy, IconFolder, IconGripVertical, IconHome, IconImage, IconLock, IconPencil, IconPlus, IconSearch, IconTrash, IconX, } from './Icons'; /** * Labels for the per-album sort select. Order matches ALBUM_SORT_MODES. * * Plain text, no emoji: an