diff --git a/src/webparts/stroyBot/pages/hub/ProjectPicker.module.scss b/src/webparts/stroyBot/pages/hub/ProjectPicker.module.scss index f38ea2e..88e5e5e 100644 --- a/src/webparts/stroyBot/pages/hub/ProjectPicker.module.scss +++ b/src/webparts/stroyBot/pages/hub/ProjectPicker.module.scss @@ -50,6 +50,25 @@ $dropdown-max-height: 340px; color: $gray-900; } +.clearButton { + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + padding: $sp-1; + margin-right: $sp-2; + border: 0; + border-radius: $r-full; + background: transparent; + color: $gray-400; + cursor: pointer; + + &:hover { + background: $gray-100; + color: $gray-700; + } +} + .selectedBadge { flex-shrink: 0; } diff --git a/src/webparts/stroyBot/pages/hub/ProjectPicker.tsx b/src/webparts/stroyBot/pages/hub/ProjectPicker.tsx index 474a767..7a58695 100644 --- a/src/webparts/stroyBot/pages/hub/ProjectPicker.tsx +++ b/src/webparts/stroyBot/pages/hub/ProjectPicker.tsx @@ -40,6 +40,14 @@ export const ProjectPicker: React.FC = () => { setIsOpen(true); }; + // Очистка не сбрасывает выбранный проект — только текст поиска, чтобы сразу искать другой. + const onClear = (event: React.MouseEvent): void => { + event.preventDefault(); + setQuery(''); + setIsOpen(true); + inputRef.current?.focus(); + }; + // mousedown, а не click: иначе поле теряет фокус раньше, чем срабатывает выбор. const onPick = (event: React.MouseEvent, project: IAccessibleProject): void => { event.preventDefault(); @@ -67,6 +75,17 @@ export const ProjectPicker: React.FC = () => { onFocus={onFocus} onChange={onChange} /> + {query && ( + + )} {currentProject?.status && ( diff --git a/src/webparts/stroyBot/pages/hub/texts.ts b/src/webparts/stroyBot/pages/hub/texts.ts index f3241cc..e61739c 100644 --- a/src/webparts/stroyBot/pages/hub/texts.ts +++ b/src/webparts/stroyBot/pages/hub/texts.ts @@ -4,6 +4,7 @@ export const HUB_TEXTS = { picker: { label: 'Проект:', placeholder: 'Выберите проект', + clear: 'Очистить', loading: 'Загрузка проектов…', noProjects: 'Нет доступных проектов', notFound: 'Проекты не найдены',