Вибір доступу більше не закриває картку хоста
Регресія від переносу списку в портал. Портал рве DOM-дерево, але не дерево React: подія з нього спливає до компонента-батька, тобто до модального вікна. Воно закривається за натисканням «повз панель» — і клік по пункту, який фізично лежить у body, вважався кліком поза формою. Зупиняємо спливання на самому списку. Клік по підкладці закриває форму, як і раніше. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
ed82819419
commit
03ea70e5de
2 changed files with 24 additions and 0 deletions
19
HISTORY.md
19
HISTORY.md
|
|
@ -2912,3 +2912,22 @@ NAT цілком може слухати SSH на 2222.
|
||||||
й не обрізається; у body, не всередині вікна
|
й не обрізається; у body, не всередині вікна
|
||||||
за екран не вилазить
|
за екран не вилазить
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Портал закривав форму
|
||||||
|
|
||||||
|
Вибір доступу закривав картку хоста разом із набраним. Регресія від
|
||||||
|
попередньої правки, і причина не очевидна.
|
||||||
|
|
||||||
|
Портал рве DOM-дерево, але **не дерево React**: подія з нього спливає до
|
||||||
|
компонента-батька, тобто до модального вікна. А воно закривається за
|
||||||
|
натисканням «повз панель» — і клік по пункту списку, який фізично лежить
|
||||||
|
у `body`, вважався кліком поза формою.
|
||||||
|
|
||||||
|
Лікується зупинкою спливання на самому списку. Перевірено, що клік по
|
||||||
|
підкладці закриває форму, як і раніше.
|
||||||
|
|
||||||
|
```
|
||||||
|
вибір пункту форма лишається, чип додано, лічильник «Доступи 1»
|
||||||
|
другий вибір список не закрився, «Доступи 2»
|
||||||
|
клік по підкладці форма закривається
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -151,6 +151,11 @@ export function Picker({
|
||||||
rect &&
|
rect &&
|
||||||
createPortal(
|
createPortal(
|
||||||
<ul
|
<ul
|
||||||
|
// Портал рве DOM-дерево, але не дерево React: подія з нього
|
||||||
|
// спливає до компонента-батька, тобто до модального вікна.
|
||||||
|
// А воно закривається за натисканням «повз панель» — і
|
||||||
|
// вибір пункту списку закривав форму разом із набраним.
|
||||||
|
onMouseDown={(e) => e.stopPropagation()}
|
||||||
className="fixed z-[60] max-h-56 overflow-y-auto rounded border border-slate-700
|
className="fixed z-[60] max-h-56 overflow-y-auto rounded border border-slate-700
|
||||||
bg-slate-900 shadow-xl"
|
bg-slate-900 shadow-xl"
|
||||||
style={{
|
style={{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue