← back to Wild Wallcoverings
Skip button also regenerates the SKU (fires /api/regen + live status; un-skip does not re-fire)
0de8a586250d6ca01a56c7153723b1782a502e43 · 2026-07-22 20:44:47 -0700 · Steve Abrams
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Files touched
Diff
commit 0de8a586250d6ca01a56c7153723b1782a502e43
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jul 22 20:44:47 2026 -0700
Skip button also regenerates the SKU (fires /api/regen + live status; un-skip does not re-fire)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---
public/index.html | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/public/index.html b/public/index.html
index a9899e1..cb9eb9c 100644
--- a/public/index.html
+++ b/public/index.html
@@ -154,10 +154,13 @@ function render() {
</div>`).join('') +
`</div></div>
<div class="rowactions">
- <button class="skip" onclick="choose('${d.id}','none')">Skip — none of these</button>
+ <button class="skip" title="records the skip AND regenerates 3 fresh versions (~$0.12)"
+ onclick="skipRegen('${d.id}')">Skip — none of these</button>
<button class="skip" style="border-color:#5a7;color:#8fc9a8" title="~$0.12 — 3 fresh versions, all rules applied"
onclick="regen('${d.id}', this)">🔄 Regenerate — give me 3 new versions</button>
- ${chosenFile === 'none' ? '<span class="status">skipped</span>' : ''}
+ ${regenning.has(d.id)
+ ? '<span class="status">⏳ skipped — 3 fresh versions generating (~$0.12, ~2 min)…</span>'
+ : chosenFile === 'none' ? '<span class="status">skipped</span>' : ''}
</div>`;
board.appendChild(el);
}
@@ -172,6 +175,20 @@ function zoom(src) {
// selections stay LOCAL (pending) until GO is pressed
let pending = JSON.parse(localStorage.getItem('whimsical.pending') || '{}');
+// Skip — none of these ALSO regenerates the SKU (Steve 2026-07-22).
+// Tracked here (not on the button) because choose() re-renders the board.
+const regenning = new Set();
+async function skipRegen(id) {
+ const wasSkipped = pending[id] === 'none';
+ choose(id, 'none');
+ if (wasSkipped || pending[id] !== 'none') return; // un-skip → no regen
+ regenning.add(id);
+ render();
+ try { await fetch('/api/regen', { method: 'POST', body: JSON.stringify({ id }) }); }
+ catch { regenning.delete(id); render(); return; }
+ setTimeout(() => { regenning.delete(id); load(); }, 150000); // fresh set lands
+}
+
function choose(id, variant) {
if (pending[id] === variant) delete pending[id]; // click again to unselect
else pending[id] = variant;
← 3b219e7 seamless pass2 script: aggressive denoise for stubborn files
·
back to Wild Wallcoverings
·
auto-save: 2026-07-22T20:46:37 (5 files) — data/choices.json d84e1fb →