1
- import { DropupMenuStyles , DropupStyles } from '../../../../../types/dropupStyles' ;
2
1
import { StatefulEvents } from '../../../../../utils/element/statefulEvents' ;
2
+ import { DropupMenuStyles } from '../../../../../types/dropupStyles' ;
3
3
import { CUSTOM_ICON_STRING } from '../../../../../icons/customIcon' ;
4
4
import { StyleUtils } from '../../../../../utils/element/styleUtils' ;
5
5
import { HTMLUtils } from '../../../messages/html/htmlUtils' ;
6
6
import { ButtonAccessibility } from '../buttonAccessility' ;
7
7
import { ButtonStyles } from '../../../../../types/button' ;
8
8
import { DropupItem } from '../../dropup/dropupItem' ;
9
+ import { DeepChat } from '../../../../../deepChat' ;
9
10
import { InputButton } from '../inputButton' ;
10
11
import { ButtonUtils } from '../buttonUtils' ;
11
12
import { ButtonCSS } from '../buttonCSS' ;
@@ -40,7 +41,7 @@ export class CustomButton extends InputButton<Styles> {
40
41
private readonly _menuStyles ?: DropupMenuStyles ;
41
42
override isCustom = true ;
42
43
43
- constructor ( customButton : CustomButtonT , index : number , menuStyles ?: DropupMenuStyles ) {
44
+ constructor ( customButton : CustomButtonT , index : number , focusInput ?: ( ) => void , menuStyles ?: DropupMenuStyles ) {
44
45
const dropupText = customButton ?. styles ?. button ?. default ?. text ?. content || `Custom ${ index } ` ;
45
46
const svg = CUSTOM_ICON_STRING ;
46
47
super ( CustomButton . createButtonElement ( ) , svg , customButton ?. position , customButton ?. styles ?. button , dropupText ) ;
@@ -49,7 +50,7 @@ export class CustomButton extends InputButton<Styles> {
49
50
this . _onClick = customButton . onClick ;
50
51
this . _dropupStyles = customButton . styles ?. dropup ;
51
52
this . setSetState ( customButton ) ;
52
- this . addClickListener ( ) ;
53
+ this . addClickListener ( focusInput ) ;
53
54
this . changeState ( customButton . initialState , true ) ;
54
55
}
55
56
@@ -77,9 +78,10 @@ export class CustomButton extends InputButton<Styles> {
77
78
} ;
78
79
}
79
80
80
- private addClickListener ( ) {
81
+ private addClickListener ( focusInput ?: ( ) => void ) {
81
82
this . elementRef . addEventListener ( 'click' , ( ) => {
82
83
const resultState = this . _onClick ?.( this . _state ) ;
84
+ focusInput ?.( ) ;
83
85
if ( resultState === 'default' || resultState === 'active' || resultState === 'disabled' ) {
84
86
this . changeState ( resultState ) ;
85
87
}
@@ -203,9 +205,10 @@ export class CustomButton extends InputButton<Styles> {
203
205
}
204
206
}
205
207
206
- public static add ( customButtons : CustomButtonT [ ] , buttons : Buttons , dropupStyles ?: DropupStyles ) {
207
- customButtons . forEach ( ( customButton , index ) => {
208
- const button = { button : new CustomButton ( customButton , index + 1 , dropupStyles ?. menu ) } ;
208
+ public static add ( deepChat : DeepChat , buttons : Buttons ) {
209
+ const { customButtons, focusInput, dropupStyles} = deepChat ;
210
+ customButtons ?. forEach ( ( customButton , index ) => {
211
+ const button = { button : new CustomButton ( customButton , index + 1 , focusInput , dropupStyles ?. menu ) } ;
209
212
buttons [ `${ CustomButton . INDICATOR_PREFIX } ${ index + 1 } ` ] = button ;
210
213
} ) ;
211
214
}
0 commit comments