diff options
| author | Slone <[email protected]> | 2026-01-17 19:48:38 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-17 05:48:38 -0600 |
| commit | 07dc8d8ce48300e42c4cd5026fac609be1b2aaca (patch) | |
| tree | d358f2116ddb23128c25ef94058dc4eacb6ed98e | |
| parent | d37724649182ef26fd158cd4d36c9e6f97a6ea5c (diff) | |
| download | opencode-07dc8d8ce48300e42c4cd5026fac609be1b2aaca.tar.gz opencode-07dc8d8ce48300e42c4cd5026fac609be1b2aaca.zip | |
fix: escape CSS selector keys to handle special characters (#9030)
| -rw-r--r-- | packages/ui/src/components/list.tsx | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/packages/ui/src/components/list.tsx b/packages/ui/src/components/list.tsx index 5be7f95ae..631b3e33a 100644 --- a/packages/ui/src/components/list.tsx +++ b/packages/ui/src/components/list.tsx @@ -69,7 +69,7 @@ export function List<T>(props: ListProps<T> & { ref?: (ref: ListRef) => void }) if (!props.current) return const key = props.key(props.current) requestAnimationFrame(() => { - const element = scrollRef()?.querySelector(`[data-key="${key}"]`) + const element = scrollRef()?.querySelector(`[data-key="${CSS.escape(key)}"]`) element?.scrollIntoView({ block: "center" }) }) }) @@ -81,7 +81,7 @@ export function List<T>(props: ListProps<T> & { ref?: (ref: ListRef) => void }) scrollRef()?.scrollTo(0, 0) return } - const element = scrollRef()?.querySelector(`[data-key="${active()}"]`) + const element = scrollRef()?.querySelector(`[data-key="${CSS.escape(active()!)}"]`) element?.scrollIntoView({ block: "center" }) }) |
