evader for preset

This commit is contained in:
wass08
2026-03-04 15:17:01 +01:00
parent 23ed54cb6a
commit d79d54c4d8
3 changed files with 16 additions and 1 deletions
@@ -103,7 +103,10 @@ export const PresetThumbnailGenerator = () => {
body: blob,
headers: { 'Content-Type': 'image/png' },
})
if (!res.ok) {
if (res.ok) {
const json = await res.json()
emitter.emit('preset:thumbnail-updated', { presetId, thumbnailUrl: json.thumbnail_url })
} else {
console.error('❌ PresetThumbnail: upload failed', await res.text())
}
}, 'image/png')
@@ -2,6 +2,7 @@
import { useEffect, useState, useCallback } from 'react'
import { BookMarked, Check, Globe, GlobeLock, Pencil, Plus, Save, Trash2, Users, X } from 'lucide-react'
import { emitter } from '@pascal-app/core'
import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/primitives/popover'
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/primitives/tooltip'
import { useAuth } from '@/features/community/lib/auth/hooks'
@@ -76,6 +77,16 @@ export function PresetsPopover({ type, onApply, onSave, onOverwrite, children }:
if (!isAuthenticated && tab === 'mine') setTab('community')
}, [isAuthenticated, tab])
useEffect(() => {
const handler = ({ presetId, thumbnailUrl }: { presetId: string; thumbnailUrl: string }) => {
setPresets((prev) =>
prev.map((p) => (p.id === presetId ? { ...p, thumbnail_url: thumbnailUrl } : p)),
)
}
emitter.on('preset:thumbnail-updated', handler)
return () => emitter.off('preset:thumbnail-updated', handler)
}, [])
const handleSaveNew = async () => {
if (!saveName.trim()) return
setSaving(true)