diff --git a/dev/studio-e2e-testing/sanity.config.ts b/dev/studio-e2e-testing/sanity.config.ts index 74837a73c17..507334524f9 100644 --- a/dev/studio-e2e-testing/sanity.config.ts +++ b/dev/studio-e2e-testing/sanity.config.ts @@ -84,11 +84,9 @@ const sharedSettings = definePlugin({ muxInput({mp4_support: 'standard'}), presenceTool(), ], - features: { - beta: { - treeArrayEditing: { - enabled: true, - }, + beta: { + treeArrayEditing: { + enabled: true, }, }, }) diff --git a/dev/test-studio/sanity.config.ts b/dev/test-studio/sanity.config.ts index 17f75e832ea..8d3030524ad 100644 --- a/dev/test-studio/sanity.config.ts +++ b/dev/test-studio/sanity.config.ts @@ -73,11 +73,9 @@ const sharedSettings = definePlugin({ bundles: testStudioLocaleBundles, }, - features: { - beta: { - treeArrayEditing: { - enabled: true, - }, + beta: { + treeArrayEditing: { + enabled: true, }, }, diff --git a/packages/sanity/playwright-ct/tests/formBuilder/tree-editing/TreeEditingStory.tsx b/packages/sanity/playwright-ct/tests/formBuilder/tree-editing/TreeEditingStory.tsx index 15c7fe4b957..c1262ccdfb1 100644 --- a/packages/sanity/playwright-ct/tests/formBuilder/tree-editing/TreeEditingStory.tsx +++ b/packages/sanity/playwright-ct/tests/formBuilder/tree-editing/TreeEditingStory.tsx @@ -150,11 +150,9 @@ function getSchemaTypes(opts: GetSchemaTypesOpts) { ] } -const FEATURES: WorkspaceOptions['features'] = { - beta: { - treeArrayEditing: { - enabled: true, - }, +const FEATURES: WorkspaceOptions['beta'] = { + treeArrayEditing: { + enabled: true, }, } @@ -170,7 +168,7 @@ export function TreeEditingStory(props: TreeEditingStoryProps): JSX.Element { const types = getSchemaTypes({legacyEditing}) return ( - + { - const {children, schemaTypes, features} = props + const {children, schemaTypes, betaFeatures} = props const [mockWorkspace, setMockWorkspace] = useState(null) useEffect(() => { @@ -42,7 +42,7 @@ export const TestWrapper = (props: TestWrapperProps): JSX.Element | null => { types: schemaTypes, }, - features, + beta: betaFeatures, }) const workspace = await getMockWorkspace({client, config}) @@ -51,7 +51,7 @@ export const TestWrapper = (props: TestWrapperProps): JSX.Element | null => { } getWorkspace() - }, [schemaTypes, features]) + }, [schemaTypes, betaFeatures]) if (!mockWorkspace) { return null diff --git a/packages/sanity/src/core/config/configPropertyReducers.ts b/packages/sanity/src/core/config/configPropertyReducers.ts index b51035642b3..680e3b96435 100644 --- a/packages/sanity/src/core/config/configPropertyReducers.ts +++ b/packages/sanity/src/core/config/configPropertyReducers.ts @@ -318,13 +318,13 @@ export const arrayEditingReducer = (opts: { const flattenedConfig = flattenConfig(config, []) const result = flattenedConfig.reduce((acc, {config: innerConfig}) => { - const resolver = innerConfig.features?.beta?.treeArrayEditing?.enabled + const resolver = innerConfig.beta?.treeArrayEditing?.enabled if (!resolver && typeof resolver !== 'boolean') return acc if (typeof resolver === 'boolean') return resolver throw new Error( - `Expected \`features.beta.treeArrayEditing.enabled\` to be a boolean, but received ${getPrintableType( + `Expected \`beta.treeArrayEditing.enabled\` to be a boolean, but received ${getPrintableType( resolver, )}`, ) diff --git a/packages/sanity/src/core/config/prepareConfig.ts b/packages/sanity/src/core/config/prepareConfig.ts index 6321ee0fada..370842300ae 100644 --- a/packages/sanity/src/core/config/prepareConfig.ts +++ b/packages/sanity/src/core/config/prepareConfig.ts @@ -627,11 +627,9 @@ function resolveSource({ staticInitialValueTemplateItems, options: config, }, - features: { - beta: { - treeArrayEditing: { - enabled: arrayEditingReducer({config, initialValue: false}), - }, + beta: { + treeArrayEditing: { + enabled: arrayEditingReducer({config, initialValue: false}), }, }, } diff --git a/packages/sanity/src/core/config/types.ts b/packages/sanity/src/core/config/types.ts index 905db855e3d..924fa63ba21 100644 --- a/packages/sanity/src/core/config/types.ts +++ b/packages/sanity/src/core/config/types.ts @@ -388,10 +388,10 @@ export interface PluginOptions { */ enableLegacySearch?: boolean } - /** Configuration for studio features. + /** Configuration for studio beta features. * @internal */ - features?: Features + beta?: BetaFeatures } /** @internal */ @@ -780,7 +780,7 @@ export interface Source { /** Configuration for studio features. * @internal */ - features?: Features + beta?: BetaFeatures } /** @internal */ @@ -897,20 +897,15 @@ export type DefaultPluginsWorkspaceOptions = { /** * Configuration for studio features. * */ -interface Features { +interface BetaFeatures { /** - * Configuration for beta features. - */ - beta?: { + * @beta + * @hidden + * */ + treeArrayEditing?: { /** - * @beta - * @hidden - * */ - treeArrayEditing?: { - /** - * Enables the tree array editing feature. - */ - enabled: boolean - } + * Enables the tree array editing feature. + */ + enabled: boolean } } diff --git a/packages/sanity/src/core/form/studio/tree-editing/__tests__/useTreeEditingEnabled.test.tsx b/packages/sanity/src/core/form/studio/tree-editing/__tests__/useTreeEditingEnabled.test.tsx index 17d4206ba57..99abf1aa4ce 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/__tests__/useTreeEditingEnabled.test.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/__tests__/useTreeEditingEnabled.test.tsx @@ -27,11 +27,9 @@ const nestedWrapper = ({children}: PropsWithChildren) => ( describe('useTreeEditingEnabled', () => { test('should return enabled: false when config is not enabled', () => { const features = { - features: { - beta: { - treeArrayEditing: { - enabled: false, - }, + beta: { + treeArrayEditing: { + enabled: false, }, }, } @@ -44,11 +42,9 @@ describe('useTreeEditingEnabled', () => { test('should return enabled: true when config is enabled', () => { const features = { - features: { - beta: { - treeArrayEditing: { - enabled: true, - }, + beta: { + treeArrayEditing: { + enabled: true, }, }, } diff --git a/packages/sanity/src/core/form/studio/tree-editing/context/enabled/TreeEditingEnabledProvider.tsx b/packages/sanity/src/core/form/studio/tree-editing/context/enabled/TreeEditingEnabledProvider.tsx index 3914c64ab4e..d0df1fec9c0 100644 --- a/packages/sanity/src/core/form/studio/tree-editing/context/enabled/TreeEditingEnabledProvider.tsx +++ b/packages/sanity/src/core/form/studio/tree-editing/context/enabled/TreeEditingEnabledProvider.tsx @@ -12,7 +12,7 @@ interface TreeEditingEnabledProviderProps { export function TreeEditingEnabledProvider(props: TreeEditingEnabledProviderProps): JSX.Element { const {children, legacyEditing: legacyEditingProp} = props - const {features} = useSource() + const {beta} = useSource() const parentContextValue = useTreeEditingEnabled() const value = useMemo((): TreeEditingEnabledContextValue => { @@ -26,14 +26,10 @@ export function TreeEditingEnabledProvider(props: TreeEditingEnabledProviderProp legacyEditingProp return { - enabled: features?.beta?.treeArrayEditing?.enabled === true, + enabled: beta?.treeArrayEditing?.enabled === true, legacyEditing: Boolean(legacyEditing), } - }, [ - features?.beta?.treeArrayEditing?.enabled, - legacyEditingProp, - parentContextValue.legacyEditing, - ]) + }, [beta?.treeArrayEditing?.enabled, legacyEditingProp, parentContextValue.legacyEditing]) return ( diff --git a/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBarActions.tsx b/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBarActions.tsx index c9b70ee2bf0..0e04b34968d 100644 --- a/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBarActions.tsx +++ b/packages/sanity/src/structure/panes/document/statusBar/DocumentStatusBarActions.tsx @@ -27,7 +27,7 @@ function DocumentStatusBarActionsInner(props: DocumentStatusBarActionsInnerProps const {__internal_tasks, schemaType, openPath} = useDocumentPane() const [firstActionState, ...menuActionStates] = states const [buttonElement, setButtonElement] = useState(null) - const isTreeArrayEditingEnabled = useSource().features?.beta?.treeArrayEditing?.enabled + const isTreeArrayEditingEnabled = useSource().beta?.treeArrayEditing?.enabled // Disable the main document action if the array dialog is open const isTreeArrayEditingEnabledOpen = useMemo(() => {