diff --git a/src/api/isEnabled.tsx b/src/api/isEnabled.tsx index 4a045e4..0a92262 100644 --- a/src/api/isEnabled.tsx +++ b/src/api/isEnabled.tsx @@ -3,7 +3,7 @@ import {createContext, PropsWithChildren, useContext, useEffect, useState} from import {Card, Text} from '@sanity/ui' import {useApiClient} from './embeddingsApiHooks' -export type FeatureStatus = 'enabled' | 'disabled' | 'loading' +export type FeatureStatus = 'enabled' | 'disabled' | 'loading' | 'error' export const FeatureEnabledContext = createContext('loading') export function useIsFeatureEnabled() { @@ -21,7 +21,7 @@ export function useIsFeatureEnabled() { }) .catch((err) => { console.error(err) - setStatus('disabled') + setStatus('error') }) }, [client]) @@ -54,3 +54,11 @@ export function FeatureDisabledNotice(props: {urlSuffix?: string}) { ) } + +export function FeatureError() { + return ( + + An error occurred. See console for details. + + ) +} diff --git a/src/embeddingsIndexDashboard/EmbeddingsIndexTool.tsx b/src/embeddingsIndexDashboard/EmbeddingsIndexTool.tsx index cd686ae..e012299 100644 --- a/src/embeddingsIndexDashboard/EmbeddingsIndexTool.tsx +++ b/src/embeddingsIndexDashboard/EmbeddingsIndexTool.tsx @@ -6,27 +6,36 @@ import {EditIndexDialog} from './IndexEditor' import {IndexList} from './IndexList' import {IndexInfo} from './IndexInfo' import {useApiClient} from '../api/embeddingsApiHooks' -import {FeatureDisabledNotice, useIsFeatureEnabled} from '../api/isEnabled' +import {FeatureDisabledNotice, FeatureError, useIsFeatureEnabled} from '../api/isEnabled' export function EmbeddingsIndexTool() { const featureState = useIsFeatureEnabled() return ( - + - {featureState == 'disabled' ? ( + {featureState === 'error' ? ( + + + + ) : null} + + {featureState === 'disabled' ? ( ) : null} - - {featureState == 'loading' ? ( - - - - ) : null} - {featureState == 'enabled' ? : null} - + {featureState === 'loading' ? ( + + + + ) : null} + + {featureState === 'enabled' ? ( + + + + ) : null} ) diff --git a/src/referenceInput/SemanticSearchReferenceInput.tsx b/src/referenceInput/SemanticSearchReferenceInput.tsx index 98a3d15..cd94153 100644 --- a/src/referenceInput/SemanticSearchReferenceInput.tsx +++ b/src/referenceInput/SemanticSearchReferenceInput.tsx @@ -12,7 +12,7 @@ import {useCallback, useEffect, useMemo, useRef, useState} from 'react' import {useDocumentPane} from 'sanity/desk' import {QueryResult} from '../api/embeddingsApi' import {publicId} from '../utils/id' -import {FeatureDisabledNotice, useIsFeatureEnabledContext} from '../api/isEnabled' +import {FeatureDisabledNotice, FeatureError, useIsFeatureEnabledContext} from '../api/isEnabled' import {EmbeddingsIndexConfig} from '../schemas/typeDefExtensions' import {SemanticSearchAutocomplete} from './SemanticSearchAutocomplete' @@ -71,6 +71,12 @@ export function SemanticSearchReferenceInput( ) : null} + {semantic && featureState === 'error' ? ( + + + + ) : null} + {semantic && featureState == 'enabled' ? (