diff --git a/src/views/CharacterDetailView.vue b/src/views/CharacterDetailView.vue index 903a1de..c068757 100644 --- a/src/views/CharacterDetailView.vue +++ b/src/views/CharacterDetailView.vue @@ -411,6 +411,45 @@ const undoImprovePrompt = () => { } } +// --- Reuse Logic --- + +const reusePrompt = (gen) => { + if (gen.prompt) { + prompt.value = gen.prompt + } +} + +const reuseAsset = (gen) => { + if (gen.input_assets && Array.isArray(gen.input_assets)) { + selectedAssets.value = gen.input_assets.map(id => ({ + id, + url: `/assets/${id}` + })) + } else { + console.warn("Input assets not found in history object:", gen) + } +} + +const useResultAsReference = (gen) => { + if (gen.assets_list && gen.assets_list.length > 0) { + // Appends the generated assets to the selection + // In this view, we might need to fetch full asset objects if we want to show thumbnails immediately, + // but constructing objects with IDs and URLs is usually enough for the selection preview. + const newAssets = gen.assets_list.map(id => ({ + id, + url: `/assets/${id}` + })) + + // Filter out duplicates + const existingIds = new Set(selectedAssets.value.map(a => a.id)) + newAssets.forEach(asset => { + if (!existingIds.has(asset.id)) { + selectedAssets.value.push(asset) + } + }) + } +} + const triggerFileUpload = () => { if (fileInput.value) fileInput.value.click() } @@ -862,7 +901,9 @@ const handleLogout = () => { {{ gen.status }} - +