feat: moznost zmazat aj predvolene cenovky (uloha 10)

Stare predvolene sablony (badge-preset-*) ostali ulozene v localStorage
a nedali sa zmazat. Tlacidlo kosa je teraz pri kazdej sablone; pri
predvolenych sa preskoci mazanie v databaze, kde nie su.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub_HostacnyandClaude Opus 5.5 committed 2026-10-19 10:15:12 +02:00
1 parent 48d071d48e
commit 2c3f09f18f
1 file changed
+17 -15
+17 -15
View File
@@ -403,9 +403,12 @@ export const BadgeEditorModal: React.FC<BadgeEditorModalProps> = ({
const deleteBadgeTemplate = async (badgeId: string) => {
if (confirm('Naozaj chcete zmazať túto šablónu cenovky?')) {
try {
await supabase.from('badges').delete().eq('id', badgeId);
} catch (e) {}
// Predvolené šablóny existujú len v prehliadači (localStorage), v databáze nie sú
if (!badgeId.startsWith('badge-preset-')) {
try {
await supabase.from('badges').delete().eq('id', badgeId);
} catch (e) {}
}
const remaining = badges.filter((b) => b.id !== badgeId);
setBadges(remaining);
setActiveBadge(remaining[0] || null);
@@ -643,18 +646,17 @@ export const BadgeEditorModal: React.FC<BadgeEditorModalProps> = ({
>
<div className="flex items-center justify-between mb-1">
<p className="text-xs font-bold text-gray-800 truncate">{b.name}</p>
{!b.id.startsWith('badge-preset-') && (
<button
onClick={(e) => {
e.stopPropagation();
deleteBadgeTemplate(b.id);
}}
className="text-gray-300 hover:text-red-600 p-1 rounded transition-colors opacity-0 group-hover:opacity-100"
title="Zmazať šablónu"
>
<Trash2 className="w-3.5 h-3.5" />
</button>
)}
{/* Zmazať sa dá každá šablóna, aj staršie predvolené (badge-preset-*) uložené v prehliadači */}
<button
onClick={(e) => {
e.stopPropagation();
deleteBadgeTemplate(b.id);
}}
className="text-gray-300 hover:text-red-600 p-1 rounded transition-colors opacity-0 group-hover:opacity-100"
title="Zmazať šablónu"
>
<Trash2 className="w-3.5 h-3.5" />
</button>
</div>
<div
className="w-full h-12 flex items-center justify-center transform scale-75 origin-center overflow-hidden pointer-events-none"