Commit d8d36dd
fix(chat): improve compact input continuity and history scrollbar interaction (#1660)
* fix: keep compact chat input open after send
Keep compact text input in input mode after submitting a message so users can continue typing without reopening the composer.
Add a regression test covering the controlled compact chat state path used by the desktop host.
* fix(chat): make compact history scrollbar interactive
实现方案 B:历史区域透明主体继续穿透,仅在滚动条可见时导出右侧窄条命中区。
新增桌面 hover 驱动的滚动条显示状态,补齐右侧滚动条拖拽/滚轮交互,并避免 hover active 时被隐藏计时器误收起。
补充组件测试和静态契约,确保隐藏状态不导出命中区、under-choice 禁用态不阻挡穿透、pointer capture 释放更稳。
* fix(chat): refocus compact input after submit
修复 compact 文本输入连续发送时的真实焦点问题。
发送按钮提交后,如果仍处于 compact input 且焦点还在输入区域内,下一帧将焦点恢复到 textarea 并把光标放到末尾,避免用户发送一句后还要再点输入框。
更新连续输入回归测试,模拟发送按钮获得焦点后验证提交完成会回到输入框。
* fix(chat): disable text history bubble delivery
- 文本历史气泡拖到模型上改为回弹动画,不再发送消息
- 补充连续输入 refocus 后光标停在末尾的测试断言
- 移除历史滚动条隐藏重置的重复 effect
* fix(chat): hide inert history scrollbar hit area
- 历史不可滚动时不渲染透明滚动条命中层,避免吞掉气泡右侧点击
- 增加短历史 hover 场景回归测试
- 保留可滚动历史的滚动条拖拽交互
* fix(chat): respect disabled history scrollbar geometry
- 桌面 geometry 遇到 pointer-events none 的历史滚动条 hit 层时直接跳过
- 避免选项层覆盖历史时右侧 gutter 被重新发布为可交互区域
- 更新 React chat 静态合同测试
---------
Co-authored-by: Hongzhi Wen <cartabio.coder1@gmail.com>1 parent 32322f4 commit d8d36dd
7 files changed
Lines changed: 448 additions & 33 deletions
File tree
- frontend/react-neko-chat/src
- static
- tests/unit
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1279 | 1279 | | |
1280 | 1280 | | |
1281 | 1281 | | |
1282 | | - | |
| 1282 | + | |
1283 | 1283 | | |
1284 | 1284 | | |
1285 | 1285 | | |
| |||
1333 | 1333 | | |
1334 | 1334 | | |
1335 | 1335 | | |
| 1336 | + | |
| 1337 | + | |
1336 | 1338 | | |
1337 | | - | |
| 1339 | + | |
1338 | 1340 | | |
1339 | | - | |
1340 | | - | |
1341 | | - | |
1342 | | - | |
1343 | | - | |
1344 | | - | |
1345 | | - | |
1346 | | - | |
1347 | 1341 | | |
| 1342 | + | |
1348 | 1343 | | |
1349 | 1344 | | |
1350 | 1345 | | |
1351 | 1346 | | |
1352 | 1347 | | |
1353 | | - | |
| 1348 | + | |
1354 | 1349 | | |
1355 | 1350 | | |
1356 | 1351 | | |
| |||
1402 | 1397 | | |
1403 | 1398 | | |
1404 | 1399 | | |
| 1400 | + | |
1405 | 1401 | | |
1406 | | - | |
| 1402 | + | |
1407 | 1403 | | |
1408 | | - | |
1409 | | - | |
1410 | | - | |
1411 | | - | |
1412 | 1404 | | |
| 1405 | + | |
1413 | 1406 | | |
1414 | 1407 | | |
1415 | 1408 | | |
1416 | 1409 | | |
1417 | 1410 | | |
1418 | | - | |
| 1411 | + | |
1419 | 1412 | | |
1420 | 1413 | | |
1421 | 1414 | | |
| |||
1504 | 1497 | | |
1505 | 1498 | | |
1506 | 1499 | | |
| 1500 | + | |
1507 | 1501 | | |
1508 | | - | |
| 1502 | + | |
1509 | 1503 | | |
1510 | | - | |
1511 | | - | |
1512 | | - | |
1513 | | - | |
1514 | 1504 | | |
| 1505 | + | |
1515 | 1506 | | |
1516 | 1507 | | |
1517 | 1508 | | |
| |||
5769 | 5760 | | |
5770 | 5761 | | |
5771 | 5762 | | |
| 5763 | + | |
| 5764 | + | |
| 5765 | + | |
| 5766 | + | |
| 5767 | + | |
| 5768 | + | |
| 5769 | + | |
| 5770 | + | |
| 5771 | + | |
| 5772 | + | |
| 5773 | + | |
| 5774 | + | |
| 5775 | + | |
| 5776 | + | |
| 5777 | + | |
| 5778 | + | |
| 5779 | + | |
| 5780 | + | |
| 5781 | + | |
| 5782 | + | |
| 5783 | + | |
| 5784 | + | |
| 5785 | + | |
| 5786 | + | |
| 5787 | + | |
| 5788 | + | |
| 5789 | + | |
| 5790 | + | |
| 5791 | + | |
| 5792 | + | |
| 5793 | + | |
| 5794 | + | |
| 5795 | + | |
| 5796 | + | |
| 5797 | + | |
5772 | 5798 | | |
5773 | 5799 | | |
5774 | 5800 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4415 | 4415 | | |
4416 | 4416 | | |
4417 | 4417 | | |
| 4418 | + | |
| 4419 | + | |
| 4420 | + | |
| 4421 | + | |
| 4422 | + | |
| 4423 | + | |
| 4424 | + | |
| 4425 | + | |
| 4426 | + | |
| 4427 | + | |
| 4428 | + | |
| 4429 | + | |
| 4430 | + | |
| 4431 | + | |
4418 | 4432 | | |
4419 | 4433 | | |
4420 | 4434 | | |
4421 | 4435 | | |
4422 | 4436 | | |
4423 | 4437 | | |
4424 | 4438 | | |
| 4439 | + | |
4425 | 4440 | | |
4426 | 4441 | | |
4427 | 4442 | | |
4428 | 4443 | | |
4429 | | - | |
| 4444 | + | |
| 4445 | + | |
| 4446 | + | |
4430 | 4447 | | |
4431 | | - | |
| 4448 | + | |
| 4449 | + | |
| 4450 | + | |
| 4451 | + | |
| 4452 | + | |
| 4453 | + | |
4432 | 4454 | | |
4433 | 4455 | | |
4434 | 4456 | | |
| |||
4481 | 4503 | | |
4482 | 4504 | | |
4483 | 4505 | | |
| 4506 | + | |
| 4507 | + | |
| 4508 | + | |
4484 | 4509 | | |
4485 | 4510 | | |
4486 | 4511 | | |
| |||
Lines changed: 178 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
101 | 278 | | |
102 | 279 | | |
103 | 280 | | |
| |||
0 commit comments