diff options
Diffstat (limited to 'sanity/schemas')
| -rw-r--r-- | sanity/schemas/_locales.ts | 5 | ||||
| -rw-r--r-- | sanity/schemas/contact.ts | 35 | ||||
| -rw-r--r-- | sanity/schemas/index.ts | 4 | ||||
| -rw-r--r-- | sanity/schemas/localized-string.ts | 20 |
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' + })) +} |
