50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
interface Content {
|
|
path: string
|
|
active: boolean
|
|
type: "page"
|
|
pageTitle: string
|
|
rows: Row[]
|
|
id: string
|
|
meta: {
|
|
title: string
|
|
description: string
|
|
keywords: string
|
|
}
|
|
}
|
|
|
|
enum ContentWidth {
|
|
Full = 0,
|
|
Normal = 1,
|
|
Narrow = 2,
|
|
}
|
|
|
|
interface Row {
|
|
title: string
|
|
backgroundImage: string
|
|
contentWidth: ContentWidth
|
|
columns: Column[]
|
|
}
|
|
|
|
type Column =
|
|
| { contentType: "images"; images: string[] }
|
|
| { contentType: "moduleImport"; moduleImport: string }
|
|
| { contentType: "form"; moduleImport: string }
|
|
| { contentType: "text"; text: string }
|
|
| { contentType: "googleMaps" }
|
|
| {
|
|
contentType: "productSlider"
|
|
productSlider: {
|
|
productSource: "manual" | "category" | "bestseller" | "newProducts" | "offers"
|
|
productSKUs: string[]
|
|
category: string
|
|
}
|
|
}
|
|
|
|
interface SizeChart {
|
|
rows: Row[]
|
|
}
|
|
type Module =
|
|
| { type: "form"; form: DBFormObj; id: string }
|
|
| { type: "completeYourLook"; completeYourLook: CompleteYourLook }
|
|
| { type: "sizeChart"; sizeChart: SizeChart }
|