refactor: kod sablony cenovky vznika z nazvu
Kod pre hromadny import = nazov sablony bez diakritiky, velkymi pismenami, medzery a interpunkcia -> _ (napr. Super cena so zlavou -> SUPER_CENA_SO_ZLAVOU). Samostatne pole Kod v editore je nahradene zobrazenim kodu pri nazve s upozornenim, ak rovnaky kod ma ina sablona. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4510e4f999
commit
905170f66e
4 files changed
+20
-30
No files matched your search
@@ -15,7 +15,6 @@ export interface BadgeRow {
|
||||
| BadgeLayer[]
|
||||
| {
|
||||
layers?: BadgeLayer[];
|
||||
code?: string | null;
|
||||
width?: number;
|
||||
align?: BadgeTemplate['align'];
|
||||
paddingTop?: number;
|
||||
@@ -30,7 +29,6 @@ export function badgeFromRow(d: BadgeRow): BadgeTemplate {
|
||||
return {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
code: cfg?.code || undefined,
|
||||
svgRaw: d.svg_raw || '',
|
||||
layersConfig: cfg ? cfg.layers || [] : (d.layers_config as BadgeLayer[]) || [],
|
||||
width: cfg?.width || 110,
|
||||
@@ -40,7 +38,8 @@ export function badgeFromRow(d: BadgeRow): BadgeTemplate {
|
||||
};
|
||||
}
|
||||
|
||||
// Kód šablóny: veľké písmená bez diakritiky, medzery a pomlčky → _ (napr. "Super cena" → SUPER_CENA)
|
||||
// Kód šablóny pre hromadný import = názov šablóny upravený na kód:
|
||||
// bez diakritiky, veľké písmená, medzery a interpunkcia → _ (napr. „Super cena – 1+1“ → SUPER_CENA_1_1)
|
||||
export function normalizeBadgeCode(value: string | null | undefined): string {
|
||||
return String(value || '')
|
||||
.normalize('NFD')
|
||||
@@ -51,14 +50,13 @@ export function normalizeBadgeCode(value: string | null | undefined): string {
|
||||
.replace(/^_+|_+$/g, '');
|
||||
}
|
||||
|
||||
// Šablóna podľa hodnoty zo súboru: najprv kód, potom názov šablóny
|
||||
export const badgeCode = (b: Pick<BadgeTemplate, 'name'>) => normalizeBadgeCode(b.name);
|
||||
|
||||
// Šablóna podľa hodnoty zo súboru (kód alebo názov – oboje sa porovná po úprave na kód)
|
||||
export function findBadgeByCode(badges: BadgeTemplate[], value: string | null | undefined): BadgeTemplate | undefined {
|
||||
const wanted = normalizeBadgeCode(value);
|
||||
if (!wanted) return undefined;
|
||||
return (
|
||||
badges.find((b) => b.code && normalizeBadgeCode(b.code) === wanted) ||
|
||||
badges.find((b) => normalizeBadgeCode(b.name) === wanted)
|
||||
);
|
||||
return badges.find((b) => badgeCode(b) === wanted);
|
||||
}
|
||||
|
||||
export interface BadgeProductData {
|
||||
|
||||
Reference in new issue
Block a user