feat(admin): editable contact fields in sections and larger logos
Allow address, phone, map, and related site chrome to be edited from contact/settings for all editors, and enlarge brand marks on login, header, and preloader. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Vendored
+14
-2
@@ -53,6 +53,8 @@ export const settingsSectionSchema = z.object({
|
||||
locality: req(80),
|
||||
country: z.string().trim().length(2).default("IR"),
|
||||
}),
|
||||
/** Google Maps / Neshan / etc. share link shown next to the address */
|
||||
mapUrl: text(500),
|
||||
/** human-readable working hours, e.g. «شنبه تا پنجشنبه — ۸:۰۰ تا ۱۷:۰۰» */
|
||||
workingHours: req(120),
|
||||
openingHours: z.object({
|
||||
@@ -61,6 +63,8 @@ export const settingsSectionSchema = z.object({
|
||||
closes: z.string().regex(/^\d{2}:\d{2}$/, "قالب ساعت باید HH:MM باشد"),
|
||||
}),
|
||||
foundingDate: z.string().regex(/^\d{4}$/, "سال میلادی چهاررقمی"),
|
||||
/** sticky header CTA (e.g. «درخواست مشاوره») */
|
||||
headerCta: linkSchema.default({ label: "درخواست مشاوره", href: "/#contact" }),
|
||||
socials: z.array(z.object({ type: z.enum(SOCIAL_TYPES), url: req(300) })).max(12),
|
||||
ogImage: imageRefSchema.extend({
|
||||
width: z.number().int().positive().nullable().default(null),
|
||||
@@ -156,6 +160,10 @@ export const contactSectionSchema = z.object({
|
||||
formTitle: req(160),
|
||||
successTitle: req(80),
|
||||
successText: req(300),
|
||||
/** submit button on the contact form */
|
||||
submitLabel: req(80).default("ارسال درخواست مشاوره"),
|
||||
/** button shown after a successful submit */
|
||||
resetLabel: req(80).default("ثبت درخواست جدید"),
|
||||
});
|
||||
export const footerSectionSchema = z.object({
|
||||
enabled: z.boolean().default(true),
|
||||
@@ -163,6 +171,10 @@ export const footerSectionSchema = z.object({
|
||||
copyright: req(160),
|
||||
certLine: text(160),
|
||||
emergencyNote: text(80),
|
||||
/** column headings under the brand block */
|
||||
linksTitle: req(40).default("دسترسی"),
|
||||
productsTitle: req(40).default("محصولات"),
|
||||
contactTitle: req(40).default("ارتباط"),
|
||||
});
|
||||
export const sectionSchemas = {
|
||||
settings: settingsSectionSchema,
|
||||
@@ -192,7 +204,7 @@ export const SECTION_LABELS = {
|
||||
standards: { title: "استانداردها", desc: "استانداردها و گواهینامهها" },
|
||||
industries: { title: "صنایع", desc: "صنایع تحت پوشش و تصویر هرکدام" },
|
||||
testimonials: { title: "نظرات مشتریان", desc: "نقلقولهای مشتریان" },
|
||||
contact: { title: "تماس با ما", desc: "عنوانها و متنهای فرم تماس" },
|
||||
footer: { title: "فوتر", desc: "متن معرفی، کپیرایت و توضیحات پایین صفحه" },
|
||||
contact: { title: "تماس با ما", desc: "عنوانها، متنهای فرم، و ویرایش نشانی و اطلاعات تماس" },
|
||||
footer: { title: "فوتر", desc: "متن معرفی، عناوین ستونها، کپیرایت و توضیحات پایین صفحه" },
|
||||
};
|
||||
//# sourceMappingURL=sections.js.map
|
||||
Reference in New Issue
Block a user