feat: complete UI rebuild, responsive fixes, dark mode UI, and Team block overhaul
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
import { getPayload } from 'payload'
|
||||
import configPromise from '../src/payload.config'
|
||||
import type { Page } from '../src/payload-types'
|
||||
|
||||
type PageHeaderBlock = Extract<NonNullable<Page['layout']>[0], { blockType: 'pageHeader' }>
|
||||
type ContactInfoBlock = Extract<NonNullable<Page['layout']>[0], { blockType: 'contactInfo' }>
|
||||
|
||||
const plHeader: PageHeaderBlock = {
|
||||
blockType: 'pageHeader',
|
||||
title: 'Kontakt',
|
||||
subtitle: 'Masz pytania dotyczące rozliczenia podatkowego w Niemczech? Skontaktuj się ze mną — chętnie pomogę.',
|
||||
}
|
||||
|
||||
const deHeader: PageHeaderBlock = {
|
||||
blockType: 'pageHeader',
|
||||
title: 'Kontakt',
|
||||
subtitle: 'Haben Sie Fragen zu Ihrer Steuererklärung in Deutschland? Kontaktieren Sie mich — ich helfe Ihnen gerne.',
|
||||
}
|
||||
|
||||
const plContact: ContactInfoBlock = {
|
||||
blockType: 'contactInfo',
|
||||
address: 'DO POTWIERDZENIA PRZEZ KLIENTA',
|
||||
phone: '+49 123 456 789',
|
||||
email: '[email protected]',
|
||||
hours: 'Pon-Pt: 9:00 - 17:00\nPo wcześniejszym umówieniu',
|
||||
}
|
||||
|
||||
const deContact: ContactInfoBlock = {
|
||||
blockType: 'contactInfo',
|
||||
address: 'DO POTWIERDZENIA PRZEZ KLIENTA',
|
||||
phone: '+49 123 456 789',
|
||||
email: '[email protected]',
|
||||
hours: 'Mo-Fr: 9:00 - 17:00\nNach vorheriger Terminvereinbarung',
|
||||
}
|
||||
|
||||
async function run() {
|
||||
console.log('Rozpoczynam odzyskiwanie strony Kontakt (ID 5)...')
|
||||
const payload = await getPayload({ config: configPromise })
|
||||
|
||||
for (const locale of ['pl', 'de'] as const) {
|
||||
try {
|
||||
const page = await payload.findByID({
|
||||
collection: 'pages',
|
||||
id: 5,
|
||||
locale: locale
|
||||
})
|
||||
|
||||
const hasPageHeader = page.layout?.some(block => block.blockType === 'pageHeader')
|
||||
const hasContactInfo = page.layout?.some(block => block.blockType === 'contactInfo')
|
||||
|
||||
if (hasPageHeader && hasContactInfo) {
|
||||
console.log(`[${locale}] Strona Kontakt posiada już bloki pageHeader i contactInfo. Pomijam.`)
|
||||
continue;
|
||||
}
|
||||
|
||||
console.log(`[${locale}] Przywracam utracone bloki...`)
|
||||
|
||||
// Jeśli strona miała jakieś bloki, zachowaj je (z wyjątkiem ewentualnych starych/uszkodzonych wersji tych dwóch)
|
||||
let newLayout = (page.layout ? page.layout.filter(b => b.blockType !== 'pageHeader' && b.blockType !== 'contactInfo') : []) as NonNullable<Page['layout']>;
|
||||
|
||||
// Dodaj nagłówek i info kontaktowe na górę
|
||||
newLayout.unshift(
|
||||
(locale === 'de' ? deHeader : plHeader) as unknown as NonNullable<Page['layout']>[0],
|
||||
(locale === 'de' ? deContact : plContact) as unknown as NonNullable<Page['layout']>[0]
|
||||
);
|
||||
|
||||
await payload.update({
|
||||
collection: 'pages',
|
||||
id: 5,
|
||||
locale: locale,
|
||||
data: {
|
||||
layout: newLayout
|
||||
}
|
||||
})
|
||||
|
||||
console.log(`[${locale}] Zaktualizowano pomyślnie.`)
|
||||
} catch (error) {
|
||||
console.error(`[${locale}] Błąd podczas aktualizacji:`, error)
|
||||
}
|
||||
}
|
||||
|
||||
console.log('Zakończono.')
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
run()
|
||||
Reference in New Issue
Block a user