diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2023-02-21 23:24:14 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2023-02-21 23:24:14 +0100 |
| commit | 6cb399e7267ae78e3e498bdbf5f51678ffb2cd45 (patch) | |
| tree | b109832a208927821fcfe65bd98ff9e3f391c44c /src/lib/sanity/schemas | |
| parent | 54bbc06bd84437c6b38e2f6c57060f21a8318720 (diff) | |
| download | auroraklinikken.no-6cb399e7267ae78e3e498bdbf5f51678ffb2cd45.tar.xz auroraklinikken.no-6cb399e7267ae78e3e498bdbf5f51678ffb2cd45.zip | |
feat: Many things
Configure sanity in same project as the app
Implement type safe sanity schema
Read localised documents
Strip down design
Diffstat (limited to 'src/lib/sanity/schemas')
| -rw-r--r-- | src/lib/sanity/schemas/default/contact.ts | 36 | ||||
| -rw-r--r-- | src/lib/sanity/schemas/default/description.ts | 22 | ||||
| -rw-r--r-- | src/lib/sanity/schemas/default/faq.ts | 22 | ||||
| -rw-r--r-- | src/lib/sanity/schemas/default/hero.ts | 28 | ||||
| -rw-r--r-- | src/lib/sanity/schemas/default/index.ts | 16 | ||||
| -rw-r--r-- | src/lib/sanity/schemas/default/product.ts | 37 |
6 files changed, 161 insertions, 0 deletions
diff --git a/src/lib/sanity/schemas/default/contact.ts b/src/lib/sanity/schemas/default/contact.ts new file mode 100644 index 0000000..03b1942 --- /dev/null +++ b/src/lib/sanity/schemas/default/contact.ts @@ -0,0 +1,36 @@ +import { s } from "sanity-typed-schema-builder"; + +export default s.document({ + name: "contact", + title: "Contact section", + // @ts-ignore + i18n: true, + fields: [ + { + title: "Address lines", + name: "addressLines", + type: s.array({ + of: [s.string()] + }), + optional: true + }, + { + title: "Email", + name: "email", + type: s.string(), + optional: true, + }, + { + title: "Phone", + name: "phone", + type: s.string(), + optional: true, + }, + { + title: "Phone hours", + name: "phoneHours", + type: s.string(), + optional: true, + } + ], +});
\ No newline at end of file diff --git a/src/lib/sanity/schemas/default/description.ts b/src/lib/sanity/schemas/default/description.ts new file mode 100644 index 0000000..3c5cbfa --- /dev/null +++ b/src/lib/sanity/schemas/default/description.ts @@ -0,0 +1,22 @@ +import { s } from "sanity-typed-schema-builder"; + +export default s.document({ + name: "description", + // @ts-ignore + i18n: true, + title: "Description section", + fields: [ + { + title: "Title", + name: "title", + type: s.string(), + }, + { + title: "Content", + name: "content", + type: s.array({ + of: [s.block()] + }) + }, + ], +}); diff --git a/src/lib/sanity/schemas/default/faq.ts b/src/lib/sanity/schemas/default/faq.ts new file mode 100644 index 0000000..6fb9e71 --- /dev/null +++ b/src/lib/sanity/schemas/default/faq.ts @@ -0,0 +1,22 @@ +import { s } from "sanity-typed-schema-builder"; + +export default s.document({ + name: "faq", + title: "FAQ section", + // @ts-ignore + i18n: true, + fields: [ + { + name: "title", + title: "Question", + type: s.string(), + }, + { + name: "answer", + title: "Answer", + type: s.array({ + of: [s.block()] + }), + } + ] +})
\ No newline at end of file diff --git a/src/lib/sanity/schemas/default/hero.ts b/src/lib/sanity/schemas/default/hero.ts new file mode 100644 index 0000000..df7b8ae --- /dev/null +++ b/src/lib/sanity/schemas/default/hero.ts @@ -0,0 +1,28 @@ +import { s } from "sanity-typed-schema-builder"; + +export default s.document({ + name: "hero", + title: "Hero section", + // @ts-ignore + i18n: true, + fields: [ + { + title: "Title", + name: "title", + type: s.string(), + }, + { + title: "Content", + name: "content", + type: s.array({ + of: [s.block()] + }), + }, + { + title: "Image", + name: "image", + type: s.image(), + optional: true + }, + ], +}); diff --git a/src/lib/sanity/schemas/default/index.ts b/src/lib/sanity/schemas/default/index.ts new file mode 100644 index 0000000..4befb4d --- /dev/null +++ b/src/lib/sanity/schemas/default/index.ts @@ -0,0 +1,16 @@ +import contact from "./contact"; +import description from "./description"; +import faq from "./faq"; +import hero from "./hero"; +import product from "./product"; + +export default { + name: "default-schema", + types: [ + contact.schema(), + product.schema(), + description.schema(), + faq.schema(), + hero.schema() + ] +}
\ No newline at end of file diff --git a/src/lib/sanity/schemas/default/product.ts b/src/lib/sanity/schemas/default/product.ts new file mode 100644 index 0000000..92db714 --- /dev/null +++ b/src/lib/sanity/schemas/default/product.ts @@ -0,0 +1,37 @@ +import { s } from "sanity-typed-schema-builder"; + +export default s.document({ + name: "product", + title: "Products", + // @ts-ignore + i18n: true, + fields: [ + { + name: "title", + title: "Title", + type: s.string(), + }, + { + name: "duration", + title: "Duration", + type: s.string() + }, + { + name: "cost", + title: "Cost", + type: s.string() + }, + { + name: "description", + title: "Description", + type: s.array({ + of: [s.block()] + }) + }, + { + name: "orderLink", + title: "Link to booking", + type: s.url() + }, + ], +});
\ No newline at end of file |
