summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authoradamelmore <[email protected]>2026-01-24 14:50:22 -0600
committerAdam <[email protected]>2026-01-24 15:01:05 -0600
commitdc1ff0e63e78aa998074678d7fbdfeee5ab8adab (patch)
tree7f2ecfcecc0abd4d73f44be233027748f7504347
parent7ba25c6afb3bc1db1ed38f66121b9c95e988e1f0 (diff)
downloadopencode-dc1ff0e63e78aa998074678d7fbdfeee5ab8adab.tar.gz
opencode-dc1ff0e63e78aa998074678d7fbdfeee5ab8adab.zip
fix(app): model select not closing on escape
-rw-r--r--packages/app/src/components/dialog-select-model.tsx15
1 files changed, 15 insertions, 0 deletions
diff --git a/packages/app/src/components/dialog-select-model.tsx b/packages/app/src/components/dialog-select-model.tsx
index 4d2646e8f..2ee1d9db1 100644
--- a/packages/app/src/components/dialog-select-model.tsx
+++ b/packages/app/src/components/dialog-select-model.tsx
@@ -167,6 +167,7 @@ export function ModelSelectorPopover<T extends ValidComponent = "div">(props: {
if (next) setStore("dismiss", null)
setStore("open", next)
}}
+ modal={false}
placement="top-start"
gutter={8}
>
@@ -181,6 +182,20 @@ export function ModelSelectorPopover<T extends ValidComponent = "div">(props: {
<Kobalte.Content
ref={(el) => setStore("content", el)}
class="w-72 h-80 flex flex-col rounded-md border border-border-base bg-surface-raised-stronger-non-alpha shadow-md z-50 outline-none overflow-hidden"
+ onEscapeKeyDown={(event) => {
+ setStore("dismiss", "escape")
+ setStore("open", false)
+ event.preventDefault()
+ event.stopPropagation()
+ }}
+ onPointerDownOutside={() => {
+ setStore("dismiss", "outside")
+ setStore("open", false)
+ }}
+ onFocusOutside={() => {
+ setStore("dismiss", "outside")
+ setStore("open", false)
+ }}
onCloseAutoFocus={(event) => {
if (store.dismiss === "outside") event.preventDefault()
setStore("dismiss", null)