File tree Expand file tree Collapse file tree
packages/app/src/components Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -550,6 +550,25 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
550550 } )
551551 } )
552552
553+ const selectPopoverActive = ( ) => {
554+ if ( store . popover === "at" ) {
555+ const items = atFlat ( )
556+ if ( items . length === 0 ) return
557+ const active = atActive ( )
558+ const item = items . find ( ( entry ) => atKey ( entry ) === active ) ?? items [ 0 ]
559+ handleAtSelect ( item )
560+ return
561+ }
562+
563+ if ( store . popover === "slash" ) {
564+ const items = slashFlat ( )
565+ if ( items . length === 0 ) return
566+ const active = slashActive ( )
567+ const item = items . find ( ( entry ) => entry . id === active ) ?? items [ 0 ]
568+ handleSlashSelect ( item )
569+ }
570+ }
571+
553572 createEffect (
554573 on (
555574 ( ) => prompt . current ( ) ,
@@ -910,14 +929,24 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
910929 return
911930 }
912931
913- if ( store . popover && ( event . key === "ArrowUp" || event . key === "ArrowDown" || event . key === "Enter" ) ) {
914- if ( store . popover === "at" ) {
915- atOnKeyDown ( event )
916- } else {
917- slashOnKeyDown ( event )
932+ if ( store . popover ) {
933+ if ( event . key === "Tab" ) {
934+ selectPopoverActive ( )
935+ event . preventDefault ( )
936+ return
937+ }
938+ if ( event . key === "ArrowUp" || event . key === "ArrowDown" || event . key === "Enter" ) {
939+ if ( store . popover === "at" ) {
940+ atOnKeyDown ( event )
941+ event . preventDefault ( )
942+ return
943+ }
944+ if ( store . popover === "slash" ) {
945+ slashOnKeyDown ( event )
946+ }
947+ event . preventDefault ( )
948+ return
918949 }
919- event . preventDefault ( )
920- return
921950 }
922951
923952 const ctrl = event . ctrlKey && ! event . metaKey && ! event . altKey && ! event . shiftKey
You can’t perform that action at this time.
0 commit comments