feat: Farbschemata nachträglich bearbeiten
Neuer Button 'Schema bearbeiten' neben 'Schema löschen'. Öffnet das bestehende Modal mit vorausgefüllten Daten (Name, Farben, Vorschaubild). Umbenennen wird korrekt behandelt (altes Schema wird ersetzt). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
import { hslToHex } from './converter.js';
|
||||
|
||||
const STORAGE_KEY = 'pigmento';
|
||||
|
||||
let editSchemaHandler = null;
|
||||
export function setEditSchemaHandler(fn) { editSchemaHandler = fn; }
|
||||
const HISTORY_MAX = 20;
|
||||
|
||||
function load() {
|
||||
@@ -74,8 +77,11 @@ export function addColorToSchema(hsl) {
|
||||
}
|
||||
}
|
||||
|
||||
export function saveSchema(name, farben, bild) {
|
||||
export function saveSchema(name, farben, bild, originalName) {
|
||||
const data = load();
|
||||
if (originalName && originalName !== name) {
|
||||
data.schemata = data.schemata.filter(s => s.name !== originalName);
|
||||
}
|
||||
const existing = data.schemata.find(s => s.name === name);
|
||||
if (existing) {
|
||||
existing.farben = farben;
|
||||
@@ -243,14 +249,25 @@ export function renderSammlung() {
|
||||
nameEl.textContent = schema.name;
|
||||
nameRow.appendChild(nameEl);
|
||||
|
||||
const editBtn = document.createElement('button');
|
||||
editBtn.className = 'action-btn';
|
||||
editBtn.textContent = 'Schema bearbeiten';
|
||||
editBtn.style.fontSize = '0.75rem';
|
||||
editBtn.addEventListener('click', () => editSchemaHandler?.(schema));
|
||||
|
||||
const delBtn = document.createElement('button');
|
||||
delBtn.className = 'action-btn';
|
||||
delBtn.textContent = 'Schema löschen';
|
||||
delBtn.style.fontSize = '0.75rem';
|
||||
delBtn.addEventListener('click', () => deleteSchema(schema.name));
|
||||
|
||||
const btnGroup = document.createElement('div');
|
||||
btnGroup.style.cssText = 'display:flex;gap:0.4rem';
|
||||
btnGroup.appendChild(editBtn);
|
||||
btnGroup.appendChild(delBtn);
|
||||
|
||||
header.appendChild(nameRow);
|
||||
header.appendChild(delBtn);
|
||||
header.appendChild(btnGroup);
|
||||
|
||||
const swatchesDiv = document.createElement('div');
|
||||
swatchesDiv.style.cssText = 'display:flex;gap:0.5rem;flex-wrap:wrap';
|
||||
|
||||
Reference in New Issue
Block a user