File tree Expand file tree Collapse file tree 1 file changed +27
-6
lines changed
packages/ui/src/components/cascader Expand file tree Collapse file tree 1 file changed +27
-6
lines changed Original file line number Diff line number Diff line change @@ -76,12 +76,33 @@ function List<V extends DId, T extends DCascaderItem<V>>(
7676 const shouldInitFocus = dRoot && isUndefined ( dFocusItem ) ;
7777
7878 const handleKeyDown = useEventCallback < ComboboxKeyDownRef > ( ( key ) => {
79- if ( isFocus || shouldInitFocus ) {
80- const focusNode = ( node : AbstractTreeNode < V , T > | undefined ) => {
81- if ( node ) {
82- onFocusChange ( node ) ;
83- }
84- } ;
79+ const focusNode = ( node : AbstractTreeNode < V , T > | undefined ) => {
80+ if ( node ) {
81+ onFocusChange ( node ) ;
82+ }
83+ } ;
84+ if ( shouldInitFocus ) {
85+ switch ( key ) {
86+ case 'next' :
87+ focusNode ( vsRef . current ?. scrollToStart ( ) ) ;
88+ break ;
89+
90+ case 'prev' :
91+ focusNode ( vsRef . current ?. scrollToEnd ( ) ) ;
92+ break ;
93+
94+ case 'first' :
95+ focusNode ( vsRef . current ?. scrollToStart ( ) ) ;
96+ break ;
97+
98+ case 'last' :
99+ focusNode ( vsRef . current ?. scrollToEnd ( ) ) ;
100+ break ;
101+
102+ default :
103+ break ;
104+ }
105+ } else if ( isFocus ) {
85106 switch ( key ) {
86107 case 'next' :
87108 focusNode ( vsRef . current ?. scrollToStep ( 1 ) ) ;
You can’t perform that action at this time.
0 commit comments