fix(ui): internal scope filter + dark-theme cards в Связи

This commit is contained in:
Александр Зимин
2026-05-12 00:31:51 +00:00
parent de476ea597
commit 93c2708fb0
3 changed files with 17 additions and 5 deletions
+14 -2
View File
@@ -22,7 +22,14 @@ import {
export const dictionariesQuery = queryOptions({
queryKey: ['dictionaries'] as const,
queryFn: async (): Promise<DictionaryDefinition[]> => {
const { data } = await apiClient.get<DictionaryDefinition[]>('/dictionaries')
// Backend по default возвращает только PUBLIC scope (~user feedback:
// «куда опять internal словари делись»). Передаём весь triplet —
// server-side всё равно отфильтрует по реальным scope permissions
// юзера, и invisible scopes просто не вернутся. Это match'ит то что
// useRecords / catalog row делает per-record (см. строку ~65).
const { data } = await apiClient.get<DictionaryDefinition[]>('/dictionaries', {
params: { as_scope: 'PUBLIC,INTERNAL,RESTRICTED' },
})
return data
},
})
@@ -31,7 +38,12 @@ export const dictionaryDetailQuery = (name: string) =>
queryOptions({
queryKey: ['dictionary', name] as const,
queryFn: async (): Promise<DictionaryDetail> => {
const { data } = await apiClient.get<DictionaryDetail>(`/dictionaries/${name}`)
// Same as listing — pass all scopes; server-side filter применит
// user permissions. Без этого INTERNAL dict вернёт 404 даже для
// авторизованного юзера с INTERNAL access.
const { data } = await apiClient.get<DictionaryDetail>(`/dictionaries/${name}`, {
params: { as_scope: 'PUBLIC,INTERNAL,RESTRICTED' },
})
return data
},
})