fix(dict): default-hide для existing users (v=2 storage) + sticky header/pagination

This commit is contained in:
Александр Зимин
2026-06-02 12:22:19 +00:00
parent f7fcb316bd
commit fece673017
2 changed files with 64 additions and 28 deletions
@@ -1209,9 +1209,12 @@ function DictionaryDetail() {
/>
)}
{/* No <Panel> wrap — outer editor panel handles border. Direct
* table → continuous visual flow toolbar→table в one card. */}
* table → continuous visual flow toolbar→table в one card.
* TableHead sticky top: при page V-scroll header не уезжает,
* sort/aria всегда видны. z-10 чтобы над cells. bg-surface
* чтобы строки под header не просвечивали при scroll. */}
<Table>
<TableHead>
<TableHead className="sticky top-0 z-10 bg-surface">
<TableRow>
{canMutate && (
<TableHeaderCell>
@@ -1422,14 +1425,20 @@ function DictionaryDetail() {
</TableBody>
</Table>
{totalPages > 1 && (
<RecordsPagination
page={page}
totalPages={totalPages}
totalCount={filteredCount}
pageSize={PAGE_SIZE}
onPrev={() => setPage((p) => Math.max(0, p - 1))}
onNext={() => setPage((p) => Math.min(totalPages - 1, p + 1))}
/>
// Sticky bottom: pagination всегда в viewport при V-scroll
// длинной таблицы — не надо листать вниз чтобы перейти на
// page 2. bg-surface + border-top чтобы визуально отделить
// от scrolling tbody.
<div className="sticky bottom-0 z-10 bg-surface border-t border-line">
<RecordsPagination
page={page}
totalPages={totalPages}
totalCount={filteredCount}
pageSize={PAGE_SIZE}
onPrev={() => setPage((p) => Math.max(0, p - 1))}
onNext={() => setPage((p) => Math.min(totalPages - 1, p + 1))}
/>
</div>
)}
</>
)}