fix(ui): remove TopBar search (final) + add clear X to catalog input
User clarification after MR !91: - "Search из TopBar убран — все верно" — TopBar search должен быть удалён. - "TopBar search вернулся. убери его" — MR !91 ошибочно его вернул. - "два крестика баг в топбаре был а ты и в таблице убрал его" — двойной X was в TopBar (native + custom); в catalog был только custom X на старом input. После refactor catalog input получился без X совсем — fix: добавил кастомный clear button когда q непустой. Changes: - TopBar: removed form + SearchInput + handlers (handleSearchInput / Submit / Clear / inputRef / useState). Removed useEffect ⌘K shortcut (без search input nothing to focus). Right cluster: Docs + VersionBadge + NotificationsBell. ml-auto на right cluster чтобы push'ить вправо без search в центре. - Catalog input: добавлен absolute-positioned X (✕) справа input'а когда `search.q` непустой. `pr-7` на input чтобы текст не наезжал. Clear → `setSearch({ q: undefined })`. Single X confirmed visually.
This commit is contained in:
@@ -232,9 +232,9 @@ function DictionariesPage() {
|
||||
* Узкая: px-3 py-1.5 (~6px vertical) — per user feedback ("бар поужать"). */}
|
||||
<div className="flex flex-wrap items-center gap-2 bg-surface-2 border-b border-line px-3 py-1.5">
|
||||
{/* Catalog search — filter dicts by name/displayName/description.
|
||||
* type="text" (не "search") чтобы избежать native X — мы рендерим
|
||||
* свой clear button если нужно. */}
|
||||
<div className="flex-1 min-w-[200px] max-w-xs">
|
||||
* type="text" чтобы избежать native browser X — рендерим свой
|
||||
* custom clear button справа когда есть value. Single X. */}
|
||||
<div className="flex-1 min-w-[200px] max-w-xs relative">
|
||||
<input
|
||||
type="text"
|
||||
value={search.q ?? ''}
|
||||
@@ -247,8 +247,18 @@ function DictionariesPage() {
|
||||
aria-label={t('dict.list.search.placeholder', {
|
||||
defaultValue: 'Поиск по справочникам…',
|
||||
})}
|
||||
className="h-8 w-full px-2.5 rounded-md border border-line bg-surface text-cell text-ink placeholder:text-mute focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent"
|
||||
className={`h-8 w-full px-2.5 ${search.q ? 'pr-7' : ''} rounded-md border border-line bg-surface text-cell text-ink placeholder:text-mute focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`}
|
||||
/>
|
||||
{search.q && (
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setSearch({ q: undefined })}
|
||||
aria-label={t('common.clear', { defaultValue: 'Очистить' })}
|
||||
className="absolute right-1.5 top-1/2 -translate-y-1/2 text-mute hover:text-ink rounded-sm p-0.5 hover:bg-surface-2"
|
||||
>
|
||||
✕
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Scope filter: PUBLIC / INTERNAL / RESTRICTED — pill chips с border */}
|
||||
|
||||
Reference in New Issue
Block a user