MCPcopy Index your code
hub / github.com/simstudioai/sim / useSelectorOptionDetail

Function useSelectorOptionDetail

apps/sim/hooks/selectors/use-selector-query.ts:149–188  ·  view source on GitHub ↗
(
  key: SelectorKey,
  args: SelectorHookArgs & { detailId?: string }
)

Source from the content-addressed store, hash-verified

147}
148
149export function useSelectorOptionDetail(
150 key: SelectorKey,
151 args: SelectorHookArgs & { detailId?: string }
152) {
153 const { data: envVariables = {} } = usePersonalEnvironment()
154 const definition = getSelectorDefinition(key)
155
156 const resolvedDetailId = useMemo(() => {
157 if (!args.detailId) return undefined
158 if (isReference(args.detailId)) return undefined
159 if (isEnvVarReference(args.detailId)) {
160 const varName = extractEnvVarName(args.detailId)
161 return envVariables[varName]?.value || undefined
162 }
163 return args.detailId
164 }, [args.detailId, envVariables])
165
166 const queryArgs: SelectorQueryArgs = {
167 key,
168 context: args.context,
169 detailId: resolvedDetailId,
170 }
171 const hasRealDetailId = Boolean(resolvedDetailId)
172 const baseEnabled =
173 hasRealDetailId && definition.fetchById !== undefined
174 ? definition.enabled
175 ? definition.enabled(queryArgs)
176 : true
177 : false
178 const enabled = args.enabled ?? baseEnabled
179
180 const query = useQuery<SelectorOption | null>({
181 queryKey: [...definition.getQueryKey(queryArgs), 'detail', resolvedDetailId ?? 'none'],
182 queryFn: ({ signal }) => definition.fetchById!({ ...queryArgs, signal }),
183 enabled,
184 staleTime: definition.staleTime ?? 300_000,
185 })
186
187 return query
188}
189
190export function useSelectorOptionMap(options: SelectorOption[], extra?: SelectorOption | null) {
191 return useMemo(() => {

Callers 2

SelectorComboboxFunction · 0.90
useSelectorDisplayNameFunction · 0.90

Calls 5

usePersonalEnvironmentFunction · 0.90
getSelectorDefinitionFunction · 0.90
isReferenceFunction · 0.90
isEnvVarReferenceFunction · 0.90
extractEnvVarNameFunction · 0.90

Tested by

no test coverage detected