feat: polish bouquet edit flow (chat UI, pencil overlay, prompt tuning)
* feat: add dynamic artwork copy to upload page * feat: add pencil overlay for partial bouquet edits * feat: move edit step hints to description card * feat: add chat-style edit flow and tighten edit image prompts
This commit is contained in:
@@ -4,7 +4,11 @@
|
||||
import { hydrateDevUpload } from '$lib/dev/hydrateUpload.js';
|
||||
import { getFlowObject, isDevSeeded } from '$lib/flowerFlow/session.js';
|
||||
|
||||
let { primaryFile = $bindable(null), caption = 'build their moodboard!', filledCount = $bindable(0), allFilled = $bindable(false) } = $props();
|
||||
let {
|
||||
primaryFile = $bindable(null),
|
||||
uploadedTiles = $bindable(),
|
||||
caption = 'build their moodboard!'
|
||||
} = $props();
|
||||
|
||||
let colorFile = $state(null);
|
||||
let seasonFile = $state(null);
|
||||
@@ -17,9 +21,21 @@
|
||||
});
|
||||
|
||||
$effect(() => {
|
||||
const count = [colorFile, seasonFile, characterFile, locationFile].filter(Boolean).length;
|
||||
filledCount = count;
|
||||
allFilled = count === 4;
|
||||
const next = {
|
||||
color: !!colorFile,
|
||||
season: !!seasonFile,
|
||||
character: !!characterFile,
|
||||
location: !!locationFile
|
||||
};
|
||||
|
||||
if (
|
||||
uploadedTiles?.color !== next.color ||
|
||||
uploadedTiles?.season !== next.season ||
|
||||
uploadedTiles?.character !== next.character ||
|
||||
uploadedTiles?.location !== next.location
|
||||
) {
|
||||
uploadedTiles = next;
|
||||
}
|
||||
});
|
||||
|
||||
onMount(async () => {
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
import { hydrateDevUpload } from '$lib/dev/hydrateUpload.js';
|
||||
import { getFlowObject, isDevSeeded } from '$lib/flowerFlow/session.js';
|
||||
|
||||
let { primaryFile = $bindable(null), caption = 'upload their feed!', filledCount = $bindable(0), allFilled = $bindable(false) } = $props();
|
||||
let { primaryFile = $bindable(null), hasImage = $bindable(), caption = 'upload their feed!' } =
|
||||
$props();
|
||||
|
||||
let firstFile = $state(null);
|
||||
|
||||
@@ -14,8 +15,8 @@
|
||||
});
|
||||
|
||||
$effect(() => {
|
||||
filledCount = firstFile ? 1 : 0;
|
||||
allFilled = Boolean(firstFile);
|
||||
const next = !!firstFile;
|
||||
if (hasImage !== next) hasImage = next;
|
||||
});
|
||||
|
||||
onMount(async () => {
|
||||
|
||||
Reference in New Issue
Block a user