@@ -23,24 +23,43 @@ export function showShareConversationModal(modal, topicId) {
23
23
. catch ( popupAjaxError ) ;
24
24
}
25
25
26
- export function composeAiBotMessage ( targetBot , composer ) {
26
+ export async function composeAiBotMessage (
27
+ targetBot ,
28
+ composer ,
29
+ options = {
30
+ skipFocus : false ,
31
+ topicBody : "" ,
32
+ personaUsername : null ,
33
+ }
34
+ ) {
27
35
const currentUser = composer . currentUser ;
28
36
const draftKey = "new_private_message_ai_" + new Date ( ) . getTime ( ) ;
29
37
30
- let botUsername = currentUser . ai_enabled_chat_bots . find (
31
- ( bot ) => bot . model_name === targetBot
32
- ) . username ;
38
+ let botUsername ;
39
+ if ( targetBot ) {
40
+ botUsername = currentUser . ai_enabled_chat_bots . find (
41
+ ( bot ) => bot . model_name === targetBot
42
+ ) ?. username ;
43
+ } else if ( options . personaUsername ) {
44
+ botUsername = options . personaUsername ;
45
+ } else {
46
+ botUsername = currentUser . ai_enabled_chat_bots [ 0 ] . username ;
47
+ }
33
48
34
- composer . focusComposer ( {
35
- fallbackToNewTopic : true ,
36
- openOpts : {
37
- action : Composer . PRIVATE_MESSAGE ,
38
- recipients : botUsername ,
39
- topicTitle : i18n ( "discourse_ai.ai_bot.default_pm_prefix" ) ,
40
- archetypeId : "private_message" ,
41
- draftKey,
42
- hasGroups : false ,
43
- warningsDisabled : true ,
44
- } ,
45
- } ) ;
49
+ const data = {
50
+ action : Composer . PRIVATE_MESSAGE ,
51
+ recipients : botUsername ,
52
+ topicTitle : i18n ( "discourse_ai.ai_bot.default_pm_prefix" ) ,
53
+ archetypeId : "private_message" ,
54
+ draftKey,
55
+ hasGroups : false ,
56
+ warningsDisabled : true ,
57
+ } ;
58
+
59
+ if ( options . skipFocus ) {
60
+ data . topicBody = options . topicBody ;
61
+ await composer . open ( data ) ;
62
+ } else {
63
+ composer . focusComposer ( { fallbackToNewTopic : true , openOpts : data } ) ;
64
+ }
46
65
}
0 commit comments