docs: add workflow migration plan and checkpoint current state

This commit is contained in:
2026-04-07 08:38:16 +02:00
parent 2a00abe91f
commit bc9ab5f864
5 changed files with 322 additions and 15 deletions
+20 -15
View File
@@ -1706,7 +1706,11 @@ function AssetLibraryPanel() {
})
const createMut = useMutation({
mutationFn: () => createAssetLibrary({ name: newName, description: newDesc || undefined, blend_file: newFile! }),
mutationFn: () => createAssetLibrary({
name: newName.trim(),
description: newDesc.trim() || undefined,
blend_file: newFile!,
}),
onSuccess: () => {
toast.success('Asset library created')
qc.invalidateQueries({ queryKey: ['asset-libraries'] })
@@ -1760,32 +1764,33 @@ function AssetLibraryPanel() {
<div className="p-4 border-b border-border-light bg-surface-alt space-y-3">
<div className="flex gap-3">
<input
className="input flex-1"
className="input-base flex-1"
placeholder="Library name"
value={newName}
onChange={(e) => setNewName(e.target.value)}
/>
<input
className="input flex-1"
className="input-base flex-1"
placeholder="Description (optional)"
value={newDesc}
onChange={(e) => setNewDesc(e.target.value)}
/>
</div>
<div className="flex items-center gap-3">
<label className="btn-secondary cursor-pointer">
<Upload size={14} />
{newFile ? newFile.name : 'Choose .blend file'}
<input
type="file"
accept=".blend"
className="hidden"
onChange={(e) => setNewFile(e.target.files?.[0] ?? null)}
/>
</label>
<div className="flex items-center gap-3 flex-wrap">
<input
type="file"
accept=".blend,application/octet-stream"
className="input-base min-w-[18rem] flex-1 file:mr-3 file:rounded-md file:border-0 file:bg-accent file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-accent-text hover:file:bg-accent-hover"
onChange={(e) => setNewFile(e.target.files?.[0] ?? null)}
/>
{newFile && (
<span className="text-xs text-content-muted font-mono">
{newFile.name}
</span>
)}
<button
className="btn-primary"
disabled={!newName || !newFile || createMut.isPending}
disabled={!newName.trim() || !newFile || createMut.isPending}
onClick={() => createMut.mutate()}
>
{createMut.isPending ? 'Creating...' : 'Create'}