Some checks failed
Test examples / Test Examples (20) (push) Has been cancelled
Test examples / Test Examples (22) (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Trigger Release / start (push) Has been cancelled
Stale issue handler / stale (push) Has been cancelled
Update Font Data / create-pull-request (push) Has been cancelled
build-and-deploy / deploy-target (push) Has been cancelled
build-and-deploy / build (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / build-wasm (nodejs) (push) Has been cancelled
build-and-deploy / build-wasm (web) (push) Has been cancelled
build-and-deploy / Deploy preview tarball (push) Has been cancelled
build-and-deploy / Potentially publish release (push) Has been cancelled
build-and-deploy / publish-turbopack-npm-packages (push) Has been cancelled
build-and-deploy / Deploy examples (push) Has been cancelled
build-and-deploy / thank you, build (push) Has been cancelled
build-and-deploy / Upload Turbopack Bytesize metrics to Datadog (push) Has been cancelled
Rspack Next.js development integration tests / Rspack integration tests (push) Has been cancelled
Rspack Next.js production integration tests / Rspack integration tests (push) Has been cancelled
Turbopack Next.js development integration tests / Next.js integration tests (push) Has been cancelled
Turbopack Next.js production integration tests / Next.js integration tests (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack development test manifest (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack production test manifest (push) Has been cancelled
Upload bundler test manifests to areweturboyet.com / Upload test results (push) Has been cancelled
Update React / create-pull-request (push) Has been cancelled
test-e2e-project-reset-cron / reset-test-project (push) Has been cancelled
Notify about the top 15 issues/PRs/feature requests (most reacted) in the last 90 days / run (push) Has been cancelled
90 lines
2.7 KiB
TypeScript
90 lines
2.7 KiB
TypeScript
"use client";
|
|
/**
|
|
* This config is used to set up Sanity Studio that's mounted on the `app/(sanity)/studio/[[...tool]]/page.tsx` route
|
|
*/
|
|
import { visionTool } from "@sanity/vision";
|
|
import { PluginOptions, defineConfig } from "sanity";
|
|
import { unsplashImageAsset } from "sanity-plugin-asset-source-unsplash";
|
|
import {
|
|
presentationTool,
|
|
defineDocuments,
|
|
defineLocations,
|
|
type DocumentLocation,
|
|
} from "sanity/presentation";
|
|
import { structureTool } from "sanity/structure";
|
|
|
|
import { apiVersion, dataset, projectId, studioUrl } from "@/sanity/lib/api";
|
|
import { pageStructure, singletonPlugin } from "@/sanity/plugins/settings";
|
|
import { assistWithPresets } from "@/sanity/plugins/assist";
|
|
import author from "@/sanity/schemas/documents/author";
|
|
import post from "@/sanity/schemas/documents/post";
|
|
import settings from "@/sanity/schemas/singletons/settings";
|
|
import { resolveHref } from "@/sanity/lib/utils";
|
|
|
|
const homeLocation = {
|
|
title: "Home",
|
|
href: "/",
|
|
} satisfies DocumentLocation;
|
|
|
|
export default defineConfig({
|
|
basePath: studioUrl,
|
|
projectId,
|
|
dataset,
|
|
schema: {
|
|
types: [
|
|
// Singletons
|
|
settings,
|
|
// Documents
|
|
post,
|
|
author,
|
|
],
|
|
},
|
|
plugins: [
|
|
presentationTool({
|
|
resolve: {
|
|
mainDocuments: defineDocuments([
|
|
{
|
|
route: "/posts/:slug",
|
|
filter: `_type == "post" && slug.current == $slug`,
|
|
},
|
|
]),
|
|
locations: {
|
|
settings: defineLocations({
|
|
locations: [homeLocation],
|
|
message: "This document is used on all pages",
|
|
tone: "caution",
|
|
}),
|
|
post: defineLocations({
|
|
select: {
|
|
title: "title",
|
|
slug: "slug.current",
|
|
},
|
|
resolve: (doc) => ({
|
|
locations: [
|
|
{
|
|
title: doc?.title || "Untitled",
|
|
href: resolveHref("post", doc?.slug)!,
|
|
},
|
|
homeLocation,
|
|
],
|
|
}),
|
|
}),
|
|
},
|
|
},
|
|
previewUrl: { previewMode: { enable: "/api/draft-mode/enable" } },
|
|
}),
|
|
structureTool({ structure: pageStructure([settings]) }),
|
|
// Configures the global "new document" button, and document actions, to suit the Settings document singleton
|
|
singletonPlugin([settings.name]),
|
|
// Add an image asset source for Unsplash
|
|
unsplashImageAsset(),
|
|
// Sets up AI Assist with preset prompts
|
|
// https://www.sanity.io/docs/ai-assist
|
|
assistWithPresets(),
|
|
// Vision lets you query your content with GROQ in the studio
|
|
// https://www.sanity.io/docs/the-vision-plugin
|
|
process.env.NODE_ENV === "development" &&
|
|
visionTool({ defaultApiVersion: apiVersion }),
|
|
].filter(Boolean) as PluginOptions[],
|
|
});
|