Designer metadata: remove Load from Nostr/import dropdown, add Save button with feedback, show project title in disc preview label

This commit is contained in:
thePR0M3TH3AN committed 2026-05-15 11:38:11 -04:00
1 parent 6fdc6c9d28
commit d316333e75
1 file changed
+27 -9
+27 -9
View File
@@ -423,6 +423,9 @@
color: var(--muted);
font-weight: 700;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body.dark .designerDiscWrap { background: #121821; border-color: #2c3443; }
@@ -1821,13 +1824,7 @@
<label for="designerCategoryField">Category *</label>
<select id="designerCategoryField" class="categorySelect"></select>
<div class="buttonRow">
<button type="button" id="designerNostrLoadBtn">Load from Nostr</button>
<select id="designerImportTarget" aria-label="Load into design slot">
<option value="a">into Design A</option>
<option value="b">into Design B</option>
<option value="c">into Design C</option>
<option value="d">into Design D</option>
</select>
<button type="button" class="primary" id="designerMetadataSaveBtn">Save</button>
</div>
<p class="hint">Title and category are required to save or publish.</p>
</details>
@@ -4700,8 +4697,10 @@
const placeholder = $('designerPlaceholder');
const label = $('designerDiscLabel');
if (label) {
const title = (state.meta.title || '').trim();
const custom = design?.name && design.name !== `Design ${key.toUpperCase()}` ? ` — ${design.name}` : '';
label.textContent = `Design ${key.toUpperCase()}${custom}`;
const titlePrefix = title ? `${title} / ` : '';
label.textContent = `${titlePrefix}Design ${key.toUpperCase()}${custom}`;
}
if (design?.src) {
img.src = design.src;
@@ -5132,7 +5131,26 @@
$('searchDiscNostrBtn').addEventListener('click', () => {
openTemplateDiscDesignNostrSearch();
});
$('designerNostrLoadBtn').addEventListener('click', openDiscDesignNostrSearch);
$('designerMetadataSaveBtn').addEventListener('click', () => {
const title = ($('designerTitleField')?.value || '').trim();
const category = ($('designerCategoryField')?.value || '').trim();
if (!title) { alert('Enter a title before saving.'); return; }
if (!category) { alert('Select a category before saving.'); return; }
state.meta.title = title;
state.meta.imdbId = ($('designerImdbField')?.value || '').trim();
state.meta.category = category;
// Sync the Templates tab fields too
if ($('titleField')) $('titleField').value = state.meta.title;
if ($('imdbField')) $('imdbField').value = state.meta.imdbId;
if ($('categoryField')) $('categoryField').value = state.meta.category;
render();
const btn = $('designerMetadataSaveBtn');
const orig = btn.textContent;
btn.textContent = 'Saved';
btn.style.background = 'var(--ok)';
btn.style.color = '#fff';
setTimeout(() => { btn.textContent = orig; btn.style.background = ''; btn.style.color = ''; }, 1500);
});
$('browseCommunityBtn').addEventListener('click', () => {