feat(dict): таблица справочника — hide tail columns по умолчанию (без H-scroll)
This commit is contained in:
@@ -372,9 +372,28 @@ function DictionaryDetail() {
|
||||
setPage(0)
|
||||
}, [search, scopeFilter, aoi])
|
||||
|
||||
// First-visit defaults: с info-dense schemas (10+ scalar полей) полная
|
||||
// таблица не помещается в viewport → H-scroll. Hide хвост по умолчанию
|
||||
// — показываем businessKey, name, scope, validFrom + первые 2 extra
|
||||
// (обычно самые важные ключи). Юзер открывает menu Колонки и сам
|
||||
// добавляет нужные — выбор persisted в localStorage и при следующем
|
||||
// визите fallback уже не применяется.
|
||||
const defaultHiddenExtras = useMemo<string[]>(() => {
|
||||
const props = detailQuery.data?.schemaJson?.properties ?? {}
|
||||
const eligible: string[] = []
|
||||
for (const [key, prop] of Object.entries(props)) {
|
||||
if (key === 'name' || key === 'code' || key === 'businessKey') continue
|
||||
if (Boolean(prop['x-localized'])) continue
|
||||
const t = prop.type
|
||||
if (t === 'array' || t === 'object') continue
|
||||
eligible.push(key)
|
||||
}
|
||||
return eligible.slice(2) // первые 2 видны, остальные default-hidden
|
||||
}, [detailQuery.data?.schemaJson])
|
||||
|
||||
// Table state — sort (cycle none→asc→desc) + hidden columns persisted в
|
||||
// localStorage per dict через useDictTableState.
|
||||
const dictTable = useDictTableState(name)
|
||||
const dictTable = useDictTableState(name, defaultHiddenExtras)
|
||||
|
||||
// Getter для applySort — извлекает значение по col key из record.
|
||||
// Изолирован чтобы sort работал унифицировано для всех типов колонок.
|
||||
|
||||
Reference in New Issue
Block a user