From e45ccb5ff8b82e96f207db06fd968b6f2be805a1 Mon Sep 17 00:00:00 2001 From: Henrik Larsson Date: Mon, 14 Aug 2023 12:24:07 +0200 Subject: [PATCH] Make sure studio is running for build --- .../{blurbStructure.ts => blurb-structure.ts} | 2 +- ...goryStructure.ts => category-structure.ts} | 4 +- .../{homeStructure.ts => home-structure.ts} | 4 +- lib/sanity/desk/index.ts | 18 ++-- ...onStructure.ts => navigation-structure.ts} | 2 +- .../{pageStructure.ts => page-structure.ts} | 6 +- ...oductStructure.ts => product-structure.ts} | 4 +- ...ctionStructure.ts => section-structure.ts} | 2 +- ...tingStructure.ts => settings-structure.ts} | 2 +- .../{uspStructure.ts => usp-structure.ts} | 2 +- lib/sanity/schemas/documents/product.tsx | 91 +++++++++---------- lib/sanity/schemas/index.ts | 8 -- lib/sanity/schemas/objects/productOption.ts | 25 ----- lib/sanity/schemas/objects/productOptions.ts | 32 ------- ...defineStructure.ts => define-structure.ts} | 0 .../{getPreviewUrl.ts => get-preview-url.ts} | 1 + package.json | 6 +- pnpm-lock.yaml | 10 ++ 18 files changed, 80 insertions(+), 139 deletions(-) rename lib/sanity/desk/{blurbStructure.ts => blurb-structure.ts} (83%) rename lib/sanity/desk/{categoryStructure.ts => category-structure.ts} (88%) rename lib/sanity/desk/{homeStructure.ts => home-structure.ts} (88%) rename lib/sanity/desk/{navigationStructure.ts => navigation-structure.ts} (93%) rename lib/sanity/desk/{pageStructure.ts => page-structure.ts} (84%) rename lib/sanity/desk/{productStructure.ts => product-structure.ts} (95%) rename lib/sanity/desk/{sectionStructure.ts => section-structure.ts} (83%) rename lib/sanity/desk/{settingStructure.ts => settings-structure.ts} (83%) rename lib/sanity/desk/{uspStructure.ts => usp-structure.ts} (82%) delete mode 100644 lib/sanity/schemas/objects/productOption.ts delete mode 100644 lib/sanity/schemas/objects/productOptions.ts rename lib/sanity/utils/{defineStructure.ts => define-structure.ts} (100%) rename lib/sanity/utils/{getPreviewUrl.ts => get-preview-url.ts} (97%) diff --git a/lib/sanity/desk/blurbStructure.ts b/lib/sanity/desk/blurb-structure.ts similarity index 83% rename from lib/sanity/desk/blurbStructure.ts rename to lib/sanity/desk/blurb-structure.ts index 3d9dd8d39..aaa3c9ef2 100644 --- a/lib/sanity/desk/blurbStructure.ts +++ b/lib/sanity/desk/blurb-structure.ts @@ -1,5 +1,5 @@ import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import defineStructure from '../utils/define-structure' export default defineStructure((S) => S.listItem() diff --git a/lib/sanity/desk/categoryStructure.ts b/lib/sanity/desk/category-structure.ts similarity index 88% rename from lib/sanity/desk/categoryStructure.ts rename to lib/sanity/desk/category-structure.ts index 35892698a..04f553503 100644 --- a/lib/sanity/desk/categoryStructure.ts +++ b/lib/sanity/desk/category-structure.ts @@ -1,9 +1,9 @@ import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import defineStructure from '../utils/define-structure' import Iframe from 'sanity-plugin-iframe-pane' import {SanityDocument} from 'sanity' import {EyeOpenIcon, MasterDetailIcon} from '@sanity/icons' -import getPreviewUrl from '../utils/getPreviewUrl' +import getPreviewUrl from '../utils/get-preview-url' export default defineStructure((S) => S.listItem() diff --git a/lib/sanity/desk/homeStructure.ts b/lib/sanity/desk/home-structure.ts similarity index 88% rename from lib/sanity/desk/homeStructure.ts rename to lib/sanity/desk/home-structure.ts index 3b7aacf4b..8d2382f7e 100644 --- a/lib/sanity/desk/homeStructure.ts +++ b/lib/sanity/desk/home-structure.ts @@ -1,9 +1,9 @@ import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import defineStructure from '../utils/define-structure' import Iframe from 'sanity-plugin-iframe-pane' import {SanityDocument} from 'sanity' import {EyeOpenIcon, MasterDetailIcon} from '@sanity/icons' -import getPreviewUrl from '../utils/getPreviewUrl' +import getPreviewUrl from '../utils/get-preview-url' export default defineStructure((S) => S.listItem() diff --git a/lib/sanity/desk/index.ts b/lib/sanity/desk/index.ts index f6a82cecc..3bcb06d55 100644 --- a/lib/sanity/desk/index.ts +++ b/lib/sanity/desk/index.ts @@ -2,15 +2,15 @@ * Desk structure overrides */ import {ListItemBuilder, StructureResolver} from 'sanity/desk' -import categories from './categoryStructure' -import home from './homeStructure' -import pages from './pageStructure' -import products from './productStructure' -import settings from './settingStructure' -import blurbs from './blurbStructure' -import sections from './sectionStructure' -import usps from './uspStructure' -import navigation from './navigationStructure' +import categories from './category-structure' +import home from './home-structure' +import pages from './page-structure' +import products from './product-structure' +import settings from './settings-structure' +import blurbs from './blurb-structure' +import sections from './section-structure' +import usps from './usp-structure' +import navigation from './navigation-structure' /** * Desk structure overrides diff --git a/lib/sanity/desk/navigationStructure.ts b/lib/sanity/desk/navigation-structure.ts similarity index 93% rename from lib/sanity/desk/navigationStructure.ts rename to lib/sanity/desk/navigation-structure.ts index 155c23260..c6c44908b 100644 --- a/lib/sanity/desk/navigationStructure.ts +++ b/lib/sanity/desk/navigation-structure.ts @@ -1,5 +1,5 @@ import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import defineStructure from '../utils/define-structure' import {MenuIcon} from '@sanity/icons' export default defineStructure((S) => diff --git a/lib/sanity/desk/pageStructure.ts b/lib/sanity/desk/page-structure.ts similarity index 84% rename from lib/sanity/desk/pageStructure.ts rename to lib/sanity/desk/page-structure.ts index a2ae46e4b..deffe5f71 100644 --- a/lib/sanity/desk/pageStructure.ts +++ b/lib/sanity/desk/page-structure.ts @@ -1,10 +1,10 @@ - import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import {ListItemBuilder} from 'sanity/desk' +import defineStructure from '../utils/define-structure' import {DocumentsIcon} from '@sanity/icons' import Iframe from 'sanity-plugin-iframe-pane' import {SanityDocument} from 'sanity' import {EyeOpenIcon, MasterDetailIcon} from '@sanity/icons' -import getPreviewUrl from '../utils/getPreviewUrl' +import getPreviewUrl from '../utils/get-preview-url' export default defineStructure((S) => S.listItem() diff --git a/lib/sanity/desk/productStructure.ts b/lib/sanity/desk/product-structure.ts similarity index 95% rename from lib/sanity/desk/productStructure.ts rename to lib/sanity/desk/product-structure.ts index 6f985dc4f..8e0202a19 100644 --- a/lib/sanity/desk/productStructure.ts +++ b/lib/sanity/desk/product-structure.ts @@ -1,9 +1,9 @@ import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import defineStructure from '../utils/define-structure' import Iframe from 'sanity-plugin-iframe-pane' import {SanityDocument} from 'sanity' import {EyeOpenIcon, MasterDetailIcon} from '@sanity/icons' -import getPreviewUrl from '../utils/getPreviewUrl' +import getPreviewUrl from '../utils/get-preview-url' export default defineStructure((S) => S.listItem() diff --git a/lib/sanity/desk/sectionStructure.ts b/lib/sanity/desk/section-structure.ts similarity index 83% rename from lib/sanity/desk/sectionStructure.ts rename to lib/sanity/desk/section-structure.ts index 7a03a3010..6c7607860 100644 --- a/lib/sanity/desk/sectionStructure.ts +++ b/lib/sanity/desk/section-structure.ts @@ -1,5 +1,5 @@ import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import defineStructure from '../utils/define-structure' export default defineStructure((S) => S.listItem() diff --git a/lib/sanity/desk/settingStructure.ts b/lib/sanity/desk/settings-structure.ts similarity index 83% rename from lib/sanity/desk/settingStructure.ts rename to lib/sanity/desk/settings-structure.ts index 881a2b769..53a965f42 100644 --- a/lib/sanity/desk/settingStructure.ts +++ b/lib/sanity/desk/settings-structure.ts @@ -1,5 +1,5 @@ import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import defineStructure from '../utils/define-structure' export default defineStructure((S) => S.listItem() diff --git a/lib/sanity/desk/uspStructure.ts b/lib/sanity/desk/usp-structure.ts similarity index 82% rename from lib/sanity/desk/uspStructure.ts rename to lib/sanity/desk/usp-structure.ts index e4e0af8eb..9bec951b5 100644 --- a/lib/sanity/desk/uspStructure.ts +++ b/lib/sanity/desk/usp-structure.ts @@ -1,5 +1,5 @@ import {ListItemBuilder} from 'sanity/desk' -import defineStructure from '../utils/defineStructure' +import defineStructure from '../utils/define-structure' export default defineStructure((S) => S.listItem() diff --git a/lib/sanity/schemas/documents/product.tsx b/lib/sanity/schemas/documents/product.tsx index 0e773cf41..8f3b94d33 100644 --- a/lib/sanity/schemas/documents/product.tsx +++ b/lib/sanity/schemas/documents/product.tsx @@ -1,19 +1,19 @@ -import {PackageIcon} from '@sanity/icons' -import {defineField, defineType} from 'sanity' -import {slugWithLocalizedType} from './slugWithLocalizedType' -import {languages} from '../../languages' -import {validateImage} from '../../utils/validation' +import { PackageIcon } from '@sanity/icons'; +import { defineField, defineType } from 'sanity'; +import { slugWithLocalizedType } from './slugWithLocalizedType'; +import { languages } from '../../languages'; +import { validateImage } from '../../utils/validation'; const GROUPS = [ { name: 'editorial', - title: 'Editorial', + title: 'Editorial' }, { name: 'seo', - title: 'SEO', - }, -] + title: 'SEO' + } +]; export default defineType({ name: 'product', @@ -27,7 +27,7 @@ export default defineType({ name: 'language', type: 'string', readOnly: true, - description: 'Language of this document.', + description: 'Language of this document.' // hidden: true, }), // ID @@ -35,7 +35,7 @@ export default defineType({ name: 'id', title: 'ID', type: 'number', - description: 'Unique product ID.', + description: 'Unique product ID.' }), // Title defineField({ @@ -43,7 +43,7 @@ export default defineType({ title: 'Title', type: 'string', description: 'Product title/name.', - validation: (Rule) => Rule.required(), + validation: (Rule) => Rule.required() }), // Slug slugWithLocalizedType('product', 'title'), @@ -56,16 +56,16 @@ export default defineType({ { title: 'Image', type: 'mainImage', - validation: (Rule) => validateImage(Rule, true), - }, + validation: (Rule) => validateImage(Rule, true) + } ], - validation: (Rule) => Rule.required().min(1).max(5), + validation: (Rule) => Rule.required().min(1).max(5) }), defineField({ name: 'description', title: 'Description', type: 'text', - description: 'Product description.', + description: 'Product description.' }), defineField({ name: 'price', @@ -77,7 +77,7 @@ export default defineType({ name: 'value', title: 'Value', type: 'number', - description: 'Product price.', + description: 'Product price.' }), defineField({ name: 'currencyCode', @@ -86,82 +86,75 @@ export default defineType({ description: 'Product currency code.', options: { list: [ - {title: 'SEK', value: 'SEK'}, - {title: 'GBP', value: 'GBP'}, - {title: 'EUR', value: 'EUR'}, + { title: 'SEK', value: 'SEK' }, + { title: 'GBP', value: 'GBP' }, + { title: 'EUR', value: 'EUR' } ], - layout: 'radio', + layout: 'radio' }, - initialValue: 'SEK', + initialValue: 'SEK' }), defineField({ name: 'retailPrice', title: 'Retail price', type: 'number', - description: 'Product retail price.', - }), - ], - }), - defineField({ - name: 'options', - title: 'Product options', - type: 'array', - description: 'What product options are available?', - of: [{type: 'productOptions'}], + description: 'Product retail price.' + }) + ] }), defineField({ name: 'categories', title: 'Categories', type: 'array', description: 'What category/categories does this product belong to?', - of: [{type: 'reference', to: {type: 'category'}}], + of: [{ type: 'reference', to: { type: 'category' } }] }), defineField({ name: 'seo', title: 'SEO', type: 'seo', - group: 'seo', - }), + group: 'seo' + }) ], orderings: [ { name: 'titleAsc', title: 'Title (A-Z)', - by: [{field: 'title', direction: 'asc'}], + by: [{ field: 'title', direction: 'asc' }] }, { name: 'titleDesc', title: 'Title (Z-A)', - by: [{field: 'title', direction: 'desc'}], + by: [{ field: 'title', direction: 'desc' }] }, { name: 'priceDesc', title: 'Price (Highest first)', - by: [{field: 'price', direction: 'desc'}], + by: [{ field: 'price', direction: 'desc' }] }, { name: 'priceAsc', title: 'Title (Lowest first)', - by: [{field: 'price', direction: 'asc'}], - }, + by: [{ field: 'price', direction: 'asc' }] + } ], preview: { select: { images: 'images', title: 'title', - language: 'language', + language: 'language' }, prepare(selection) { - const {images, title, language} = selection - const currentLang = languages.find((lang) => lang.id === language) + const { images, title, language } = selection; + const currentLang = languages.find((lang) => lang.id === language); - const firstImage = images[0] + const firstImage = images[0]; return { title, subtitle: `${currentLang ? currentLang.title : ''}`, - media: firstImage ? firstImage : PackageIcon, - } - }, - }, -}) + media: firstImage ? firstImage : PackageIcon + }; + } + } +}); diff --git a/lib/sanity/schemas/index.ts b/lib/sanity/schemas/index.ts index b5492acb2..ba83b7160 100644 --- a/lib/sanity/schemas/index.ts +++ b/lib/sanity/schemas/index.ts @@ -50,13 +50,9 @@ import banner from './objects/banner' import linkExternal from './objects/linkExternal' import linkInternal from './objects/linkInternal' import hero from './objects/hero' -import placeholderString from './objects/placeholderString' -import proxyString from './objects/proxyString' import seo from './objects/seo' import mainImage from './objects/mainImage' import slider from './objects/slider' -import productOption from './objects/productOption' -import productOptions from './objects/productOptions' import blurbSection from './objects/blurbSection' import filteredProductList from './objects/filteredProductList' import uspSection from './objects/uspSection' @@ -67,13 +63,9 @@ const objects = [ linkExternal, linkInternal, hero, - placeholderString, - proxyString, seo, mainImage, slider, - productOption, - productOptions, filteredProductList, banner, blurbSection, diff --git a/lib/sanity/schemas/objects/productOption.ts b/lib/sanity/schemas/objects/productOption.ts deleted file mode 100644 index 47eae289a..000000000 --- a/lib/sanity/schemas/objects/productOption.ts +++ /dev/null @@ -1,25 +0,0 @@ -import {defineField} from 'sanity' - -export default defineField({ - name: 'productOption', - title: 'Product option', - type: 'object', - fields: [ - defineField({ - name: 'label', - title: 'Label', - type: 'string', - validation: Rule => Rule.required(), - description: 'Product option label.' - }), - defineField({ - name: 'hexColors', - title: 'Color hex code', - type: 'color', - description: 'Hex color code for product option.', - options: { - disableAlpha: true - } - }) - ], -}) diff --git a/lib/sanity/schemas/objects/productOptions.ts b/lib/sanity/schemas/objects/productOptions.ts deleted file mode 100644 index 88a5066d0..000000000 --- a/lib/sanity/schemas/objects/productOptions.ts +++ /dev/null @@ -1,32 +0,0 @@ -import {defineField} from 'sanity' - -export default defineField({ - name: 'productOptions', - title: 'Product options', - type: 'object', - fields: [ - defineField({ - name: 'id', - title: 'ID (string)', - type: 'string', - validation: Rule => Rule.required(), - description: 'Unique product option ID.' - }), - defineField({ - name: 'displayName', - title: 'Display name', - type: 'string', - description: 'Name displayed for this collection of product options.', - validation: Rule => Rule.required(), - }), - defineField({ - name: 'values', - title: 'Values', - type: 'array', - description: 'What kind of values are available?', - of: [{type: 'productOption'}], - options: {}, - validation: Rule => Rule.required(), - }), - ], -}) diff --git a/lib/sanity/utils/defineStructure.ts b/lib/sanity/utils/define-structure.ts similarity index 100% rename from lib/sanity/utils/defineStructure.ts rename to lib/sanity/utils/define-structure.ts diff --git a/lib/sanity/utils/getPreviewUrl.ts b/lib/sanity/utils/get-preview-url.ts similarity index 97% rename from lib/sanity/utils/getPreviewUrl.ts rename to lib/sanity/utils/get-preview-url.ts index 564a0c324..6665c70b0 100644 --- a/lib/sanity/utils/getPreviewUrl.ts +++ b/lib/sanity/utils/get-preview-url.ts @@ -1,3 +1,4 @@ +// @ts-nocheck import {isDev, SanityDocument} from 'sanity' import { localStorefrontPreviewUrl, publicStorefrontPreviewUrl } from '../constants' diff --git a/package.json b/package.json index 9f7cb845a..199334d9b 100644 --- a/package.json +++ b/package.json @@ -26,13 +26,14 @@ "@radix-ui/react-dropdown-menu": "^2.0.4", "@radix-ui/react-navigation-menu": "^1.1.2", "@sanity/client": "^6.4.4", + "@sanity/document-internationalization": "^2.0.1", + "@sanity/icons": "^2.4.1", "@sanity/image-url": "^1.0.2", "@sanity/preview-kit": "^2.4.9", "@sanity/types": "^3.11.1", "@sanity/ui": "^1.3.3", - "@sanity/webhook": "^2.0.0", - "@sanity/document-internationalization": "^2.0.1", "@sanity/vision": "^3.0.0", + "@sanity/webhook": "^2.0.0", "@types/styled-components": "^5.1.26", "@vercel/og": "^0.1.0", "algoliasearch": "^4.19.1", @@ -66,6 +67,7 @@ "@types/node": "18.13.0", "@types/react": "18.2.19", "@types/react-dom": "18.2.7", + "@types/slug": "^5.0.3", "@vercel/git-hooks": "^1.0.0", "autoprefixer": "^10.4.14", "cross-env": "^7.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f508a4c94..cbe111789 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ dependencies: '@sanity/document-internationalization': specifier: ^2.0.1 version: 2.0.1(@babel/core@7.22.10)(@sanity/ui@1.7.4)(react-dom@18.2.0)(react-fast-compare@3.2.2)(react-is@18.2.0)(react@18.2.0)(rxjs@7.8.1)(sanity@3.15.0)(styled-components@5.3.11) + '@sanity/icons': + specifier: ^2.4.1 + version: 2.4.1(react@18.2.0) '@sanity/image-url': specifier: ^1.0.2 version: 1.0.2 @@ -142,6 +145,9 @@ devDependencies: '@types/react-dom': specifier: 18.2.7 version: 18.2.7 + '@types/slug': + specifier: ^5.0.3 + version: 5.0.3 '@vercel/git-hooks': specifier: ^1.0.0 version: 1.0.0 @@ -2737,6 +2743,10 @@ packages: resolution: {integrity: sha512-XtGSj7GYPfJwaklDtMEONj+kmpyCP8OLYoPqp/ROM8BL1VaF2IgYbxiEKfLvOyHN7c2d1KAFYzy6EIu8CSFt1A==} dev: false + /@types/slug@5.0.3: + resolution: {integrity: sha512-yPX0bb1SvrpaGlHuSiz6EicgRI4VBE+LO7IANlZagQwtaoKjLLcZc8y6s13vKp41mYvMCSzjtObxvU7/0JRPaA==} + dev: true + /@types/speakingurl@13.0.3: resolution: {integrity: sha512-nBHZAaNTEw1YG3ROL7HtTp7HjW8HD7DuFYbWoonUKTZHj7eyOt4vPzyMcc3+xgWNv7xi2rziaiBXHIq6wBeyrw==} dev: false