feat: lista platnosti akcie nad produktmi, platnost na kartach predvolene skryta
- novy blok Lista platnosti akcie (vzhlad ako oznamovacia lista, bez badge a CTA): text + globalna platnost, da sa skryt a posuvat, nie zmazat; do existujucich kampani sa vlozi automaticky nad prvu produktovu sekciu - platnost na kartach produktov sa da zobrazit prepinacom (predvolene skryta), produkty s vlastnou platnostou ju zobrazia vzdy Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5f6a39debe
commit
98fdad535d
5 files changed
+213
-44
No files matched your search
@@ -1,9 +1,29 @@
|
||||
import { NewsletterCampaign, ProductItem } from '@/types/newsletter';
|
||||
import { NewsletterCampaign, NewsletterModule, ProductItem } from '@/types/newsletter';
|
||||
|
||||
// Verejné úložisko statických obrázkov (logá, ikony, štítky predajní...) v Supabase projekte z .env.
|
||||
// Súbory sú v supabase/assets/ a nahrajú sa príkazom: npm run db:upload-assets
|
||||
export const SUPABASE_ASSETS_BASE = `${(process.env.NEXT_PUBLIC_SUPABASE_URL || '').replace(/\/$/, '')}/storage/v1/object/public/newsletter-assets/`;
|
||||
|
||||
// Lišta platnosti akcie nad produktmi – dá sa skryť a posúvať, nie zmazať
|
||||
export const VALIDITY_BAR_MODULE: NewsletterModule = {
|
||||
id: 'mod-validity-bar',
|
||||
type: 'validity_bar',
|
||||
title: 'Lišta platnosti akcie',
|
||||
data: {
|
||||
text: 'Akcia platí',
|
||||
enabled: true
|
||||
}
|
||||
};
|
||||
|
||||
// Staršie kampane bez lišty platnosti: vloží ju nad prvú produktovú sekciu
|
||||
export function ensureValidityBar(modules: NewsletterModule[]): NewsletterModule[] {
|
||||
if (modules.some((m) => m.type === 'validity_bar')) return modules;
|
||||
const idx = modules.findIndex((m) => m.type === 'products_grid' || m.type === 'loyalty_club');
|
||||
const bar = { ...VALIDITY_BAR_MODULE, data: { ...VALIDITY_BAR_MODULE.data } };
|
||||
if (idx === -1) return modules;
|
||||
return [...modules.slice(0, idx), bar, ...modules.slice(idx)];
|
||||
}
|
||||
|
||||
export const DEFAULT_CAMPAIGN: NewsletterCampaign = {
|
||||
id: '',
|
||||
title: 'COOP Jednota Newsletter',
|
||||
@@ -67,6 +87,7 @@ export const DEFAULT_CAMPAIGN: NewsletterCampaign = {
|
||||
buttonBgColor: '#003399'
|
||||
}
|
||||
},
|
||||
VALIDITY_BAR_MODULE,
|
||||
{
|
||||
id: 'mod-products-fantasticky',
|
||||
type: 'products_grid',
|
||||
|
||||
Reference in new issue
Block a user