aboutsummaryrefslogtreecommitdiffstats
path: root/sanity/schemas
diff options
context:
space:
mode:
Diffstat (limited to 'sanity/schemas')
-rw-r--r--sanity/schemas/_locales.ts5
-rw-r--r--sanity/schemas/contact.ts35
-rw-r--r--sanity/schemas/index.ts4
-rw-r--r--sanity/schemas/localized-string.ts20
4 files changed, 64 insertions, 0 deletions
diff --git a/sanity/schemas/_locales.ts b/sanity/schemas/_locales.ts
new file mode 100644
index 0000000..5f19303
--- /dev/null
+++ b/sanity/schemas/_locales.ts
@@ -0,0 +1,5 @@
+export const supportedLanguages = [
+ { id: 'en', title: 'English' },
+ { id: 'nb', title: 'Norwegian', isDefault: true },
+]
+export const baseLanguage = supportedLanguages.find(l => l.isDefault) as { id: string, title: string }; \ No newline at end of file
diff --git a/sanity/schemas/contact.ts b/sanity/schemas/contact.ts
new file mode 100644
index 0000000..33bda69
--- /dev/null
+++ b/sanity/schemas/contact.ts
@@ -0,0 +1,35 @@
+import { baseLanguage } from "./_locales";
+
+export default {
+ name: 'contact',
+ type: 'document',
+ title: 'Contact section',
+ preview: {
+ select: {
+ title: `title.${baseLanguage.id}`
+ }
+ },
+ fields: [
+ {
+ title: "Address lines",
+ name: 'addressLines',
+ type: 'array',
+ of: [{ type: 'localizedString' }]
+ },
+ {
+ title: "Email",
+ name: "email",
+ type: "string",
+ },
+ {
+ title: "Phone",
+ name: "phone",
+ type: "string"
+ },
+ {
+ title: "Phone hours",
+ name: "phoneHours",
+ type: "localizedString"
+ }
+ ]
+} \ No newline at end of file
diff --git a/sanity/schemas/index.ts b/sanity/schemas/index.ts
new file mode 100644
index 0000000..8b37e85
--- /dev/null
+++ b/sanity/schemas/index.ts
@@ -0,0 +1,4 @@
+import contact from "./contact";
+import localizedString from "./localized-string";
+
+export const schemaTypes = [contact, localizedString] \ No newline at end of file
diff --git a/sanity/schemas/localized-string.ts b/sanity/schemas/localized-string.ts
new file mode 100644
index 0000000..6ff7424
--- /dev/null
+++ b/sanity/schemas/localized-string.ts
@@ -0,0 +1,20 @@
+import { supportedLanguages } from "./_locales";
+
+export default {
+ title: 'Localized string',
+ name: 'localizedString',
+ type: 'object',
+ fieldsets: [
+ {
+ title: 'Translations',
+ name: 'translations',
+ options: { collapsible: true }
+ }
+ ],
+ fields: supportedLanguages.map(lang => ({
+ title: lang.title,
+ name: lang.id,
+ type: 'string',
+ fieldset: lang.isDefault ? null : 'translations'
+ }))
+}