From 6ac8350ab3b97445c2b60fd21a6ae666b97ad805 Mon Sep 17 00:00:00 2001 From: Matt Hillsdon Date: Wed, 18 Oct 2023 14:08:06 +0100 Subject: [PATCH] Switch approach: use an alternative dataset --- src/common/imageUrlBuilder.ts | 5 +++-- src/common/sanity.ts | 12 ++++++++---- src/documentation/reference/content.ts | 7 +------ src/flags.ts | 16 +++++++--------- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/common/imageUrlBuilder.ts b/src/common/imageUrlBuilder.ts index 153477633..21ca7331d 100644 --- a/src/common/imageUrlBuilder.ts +++ b/src/common/imageUrlBuilder.ts @@ -5,13 +5,14 @@ */ import unconfiguredImageUrlBuilder from "@sanity/image-url"; +import { dataset, project } from "./sanity"; export const defaultQuality = 80; export const imageUrlBuilder = unconfiguredImageUrlBuilder() // Hardcoded for now as there's no practical alternative. - .projectId("ajwvhvgo") - .dataset("apps") + .projectId(project) + .dataset(dataset) .auto("format") .dpr(window.devicePixelRatio ?? 1) .quality(defaultQuality); diff --git a/src/common/sanity.ts b/src/common/sanity.ts index bec1f9fd8..99f7b3330 100644 --- a/src/common/sanity.ts +++ b/src/common/sanity.ts @@ -2,6 +2,8 @@ * Common sanity types. */ +import { flags } from "../flags"; + export interface PortableTextBlock { _type: "block"; _key: string; @@ -85,9 +87,11 @@ export const sanityLanguageId = (locale: string): string => { return `${parts[0]}-${parts[1].toUpperCase()}`; }; +export const project = "ajwvhvgo"; +export const dataset = flags.cmsPreview ? "apps-preview" : "apps"; + const queryUrl = (query: string): string => { - return ( - "https://ajwvhvgo.apicdn.sanity.io/v1/data/query/apps?query=" + - encodeURIComponent(query) - ); + return `https://${project}.apicdn.sanity.io/v1/data/query/${dataset}?query=${encodeURIComponent( + query + )}`; }; diff --git a/src/documentation/reference/content.ts b/src/documentation/reference/content.ts index d8bd8c52e..42da645fb 100644 --- a/src/documentation/reference/content.ts +++ b/src/documentation/reference/content.ts @@ -4,7 +4,6 @@ * SPDX-License-Identifier: MIT */ import { fetchContent } from "../../common/sanity"; -import { flags } from "../../flags"; import { Toolkit, ToolkitTopic, ToolkitTopicEntry } from "./model"; export const fetchReferenceToolkit = async ( @@ -33,12 +32,8 @@ export const getTopicAndEntry = ( // We just slurp the whole toolkit at once. // This is necessary for the client-side search index. const toolkitQuery = (languageId: string): string => { - // The flag applies to the top-level document so for now there's no support for viewing drafts further down. - const noDraftsConstraint = flags.drafts - ? "" - : `&& (_id in path("drafts.**"))`; return ` - *[_type == "toolkit" && language == "${languageId}" && (slug.current == "explore" || slug.current == "reference") ${noDraftsConstraint}]{ + *[_type == "toolkit" && language == "${languageId}" && (slug.current == "explore" || slug.current == "reference") && !(_id in path("drafts.**"))]{ _id, id, name, description, language, contents[]->{ name, slug, compatibility, subtitle, image, diff --git a/src/flags.ts b/src/flags.ts index 0e0bc17a4..9f5d4215e 100644 --- a/src/flags.ts +++ b/src/flags.ts @@ -21,15 +21,13 @@ export type Flag = */ | "betaNotice" /** - * Enables verbose debug logging to the console of drag events. + * Uses CMS content from an alternative preview dataset. */ - | "dndDebug" + | "cmsPreview" /** - * Shows CMS drafts in preference to live content. - * - * Currently only supported for the reference content. + * Enables verbose debug logging to the console of drag events. */ - | "drafts" + | "dndDebug" /** * Disables language selection from the settings menu. * @@ -52,11 +50,11 @@ interface FlagMetadata { const allFlags: FlagMetadata[] = [ // Alphabetical order. - { name: "dndDebug", defaultOnStages: [] }, - { name: "drafts", defaultOnStages: ["local", "REVIEW"] }, { name: "betaNotice", defaultOnStages: ["local", "REVIEW", "STAGING"] }, - { name: "noWelcome", defaultOnStages: ["local", "REVIEW"] }, + { name: "cmsPreview", defaultOnStages: [] }, + { name: "dndDebug", defaultOnStages: [] }, { name: "noLang", defaultOnStages: [] }, + { name: "noWelcome", defaultOnStages: ["local", "REVIEW"] }, ]; type Flags = Record;