docs: add workflow migration plan and checkpoint current state
This commit is contained in:
@@ -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'}
|
||||
|
||||
Reference in New Issue
Block a user