quickblox-react-ui-kit 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +3 -2
  2. package/dist/CommonTypes/FunctionResult.d.ts +5 -1
  3. package/dist/Data/DefaultConfigurations.d.ts +2 -2
  4. package/dist/Data/repository/DialogsRepository.d.ts +1 -0
  5. package/dist/Data/repository/EventMessagesRepository.d.ts +1 -0
  6. package/dist/Data/repository/MessagesRepository.d.ts +2 -2
  7. package/dist/Domain/entity/NotificationTypes.d.ts +1 -0
  8. package/dist/Domain/repository/IDialogsRepository.d.ts +1 -0
  9. package/dist/Domain/repository/IMessagesRepository.d.ts +2 -2
  10. package/dist/Domain/use_cases/CreateDialogUseCase.d.ts +2 -1
  11. package/dist/Domain/use_cases/LeaveDialogUseCase.d.ts +2 -1
  12. package/dist/Domain/use_cases/RemoveUsersFromTheDialogUseCase.d.ts +2 -1
  13. package/dist/Domain/use_cases/SubscribeToDialogEventsUseCase.d.ts +1 -0
  14. package/dist/Domain/use_cases/UpdateDialogUseCase.d.ts +2 -1
  15. package/dist/Domain/use_cases/ai/AIAnswerAssistUseCase.d.ts +13 -0
  16. package/dist/Domain/use_cases/ai/AIAnswerAssistWithProxyUseCase.d.ts +13 -0
  17. package/dist/Domain/use_cases/ai/AITranslateUseCase.d.ts +14 -0
  18. package/dist/Domain/use_cases/ai/AITranslateWithProxyUseCase.d.ts +14 -0
  19. package/dist/Presentation/Views/Base/BaseViewModel.d.ts +3 -0
  20. package/dist/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/AIMessageWidget.d.ts +4 -1
  21. package/dist/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/AIWidgetActions/AIWidgetActions.d.ts +3 -2
  22. package/dist/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/Tone.d.ts +5 -13
  23. package/dist/Presentation/components/UI/Dialogs/MessagesView/DefaultAttachmentComponent/DefaultAttachmentComponent.d.ts +8 -0
  24. package/dist/Presentation/components/UI/Dialogs/MessagesView/ErrorToast/ErrorToast.d.ts +7 -0
  25. package/dist/Presentation/components/UI/Dialogs/MessagesView/InComingMessage/AvatarContentIncomingUser/AvatarContentIncomingUser.d.ts +3 -0
  26. package/dist/Presentation/components/UI/Dialogs/MessagesView/InComingMessage/InComingMessage.d.ts +12 -3
  27. package/dist/Presentation/components/UI/Dialogs/MessagesView/MessagesView.d.ts +10 -0
  28. package/dist/Presentation/components/UI/Dialogs/MessagesView/MessagesViewModel.d.ts +2 -2
  29. package/dist/Presentation/components/UI/Dialogs/MessagesView/SystemDateBanner/SystemDateBanner.d.ts +7 -0
  30. package/dist/Presentation/components/UI/Dialogs/MessagesView/SystemMessageBanner/SystemMessageBanner.d.ts +7 -0
  31. package/dist/Presentation/components/UI/Dialogs/PreviewDialog/PreviewAudioFile/PreviewAudioFile.d.ts +7 -0
  32. package/dist/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDefaultFile/PreviewDefaultFile.d.ts +7 -0
  33. package/dist/Presentation/components/UI/Dialogs/PreviewDialog/PreviewImageFile/PreviewImageFile.d.ts +8 -0
  34. package/dist/Presentation/components/UI/Dialogs/PreviewDialog/PreviewVideoFile/PreviewVideoFile.d.ts +7 -0
  35. package/dist/Presentation/components/UI/svgs/Icons/AIWidgets/BotIcon/BotIcon.d.ts +4 -0
  36. package/dist/QBconfig.d.ts +14 -3
  37. package/dist/index-ui.d.ts +5 -1
  38. package/dist/index-ui.js +410 -61
  39. package/dist/utils/utils.d.ts +9 -0
  40. package/global.d.ts +12 -4
  41. package/package.json +5 -1
  42. package/src/App.tsx +1 -1
  43. package/src/CommonTypes/FunctionResult.ts +6 -1
  44. package/src/Data/DefaultConfigurations.ts +155 -19
  45. package/src/Data/repository/DialogsRepository.ts +4 -0
  46. package/src/Data/repository/EventMessagesRepository.ts +34 -0
  47. package/src/Data/repository/MessagesRepository.ts +16 -10
  48. package/src/Data/source/exception/MapperDTOException.ts +3 -0
  49. package/src/Data/source/remote/RemoteDataSource.ts +134 -112
  50. package/src/Domain/entity/NotificationTypes.ts +2 -0
  51. package/src/Domain/repository/IDialogsRepository.ts +2 -0
  52. package/src/Domain/repository/IMessagesRepository.ts +2 -2
  53. package/src/Domain/use_cases/CreateDialogUseCase.ts +8 -1
  54. package/src/Domain/use_cases/GetAllDialogsUseCaseWithMock.ts +1 -0
  55. package/src/Domain/use_cases/LeaveDialogUseCase.ts +8 -1
  56. package/src/Domain/use_cases/RemoveUsersFromTheDialogUseCase.ts +40 -17
  57. package/src/Domain/use_cases/SendTextMessageUseCase.ts +3 -2
  58. package/src/Domain/use_cases/SubscribeToDialogEventsUseCase.ts +21 -0
  59. package/src/Domain/use_cases/UpdateDialogUseCase.ts +8 -1
  60. package/src/Domain/use_cases/ai/AIAnswerAssistUseCase.ts +69 -0
  61. package/src/Domain/use_cases/ai/AIAnswerAssistWithProxyUseCase.ts +71 -0
  62. package/src/Domain/use_cases/ai/AIRephraseUseCase.ts +38 -36
  63. package/src/Domain/use_cases/ai/AIRephraseWithProxyUseCase.ts +25 -21
  64. package/src/Domain/use_cases/ai/AITranslateUseCase.ts +76 -0
  65. package/src/Domain/use_cases/ai/AITranslateWithProxyUseCase.ts +79 -0
  66. package/src/Domain/use_cases/base/Subscribable/SubscriptionPerformer.ts +7 -10
  67. package/src/Presentation/Views/Base/BaseViewModel.ts +3 -0
  68. package/src/Presentation/Views/Dialogs/Dialogs.scss +3 -0
  69. package/src/Presentation/Views/Dialogs/Dialogs.tsx +1 -1
  70. package/src/Presentation/Views/Dialogs/useDialogsViewModel.ts +109 -48
  71. package/src/Presentation/assets/styles/_variables.scss +19 -0
  72. package/src/Presentation/components/UI/Buttons/MainButton/MainButton.scss +9 -0
  73. package/src/Presentation/components/UI/Dialogs/EditDialog/EditDialog.scss +3 -0
  74. package/src/Presentation/components/UI/Dialogs/InviteMembers/InviteMembers.scss +3 -0
  75. package/src/Presentation/components/UI/Dialogs/MembersList/MembersList.scss +3 -0
  76. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/AIMessageWidget.ts +7 -2
  77. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/AIWidgetActions/AIWidgetActions.tsx +10 -4
  78. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/Tone.ts +29 -15
  79. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/UseDefaultAIAssistAnswerWidget.tsx +10 -6
  80. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/UseDefaultAIAssistAnswerWidgetWithProxy.tsx +10 -6
  81. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/UseDefaultAIRephraseMessageWidget.tsx +17 -0
  82. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/UseDefaultAIRephraseMessageWidgetWithProxy.tsx +16 -0
  83. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/UseDefaultAITranslateWidget.tsx +13 -12
  84. package/src/Presentation/components/UI/Dialogs/MessagesView/AIWidgets/UseDefaultAITranslateWidgetWithProxy.tsx +13 -12
  85. package/src/Presentation/components/UI/Dialogs/MessagesView/AudioAttachmentComponent/AudioAttachmentComponent.tsx +1 -1
  86. package/src/Presentation/components/UI/Dialogs/MessagesView/DefaultAttachmentComponent/DefaultAttachmentComponent.scss +76 -0
  87. package/src/Presentation/components/UI/Dialogs/MessagesView/DefaultAttachmentComponent/DefaultAttachmentComponent.tsx +40 -0
  88. package/src/Presentation/components/UI/Dialogs/MessagesView/ErrorToast/ErrorToast.scss +26 -0
  89. package/src/Presentation/components/UI/Dialogs/MessagesView/ErrorToast/ErrorToast.tsx +25 -0
  90. package/src/Presentation/components/UI/Dialogs/MessagesView/ImageAttachmentComponent/ImageAttachmentComponent.tsx +8 -6
  91. package/src/Presentation/components/UI/Dialogs/MessagesView/InComingMessage/AvatarContentIncomingUser/AvatarContentIncomingUser.tsx +6 -0
  92. package/src/Presentation/components/UI/Dialogs/MessagesView/InComingMessage/InComingMessage.scss +5 -7
  93. package/src/Presentation/components/UI/Dialogs/MessagesView/InComingMessage/InComingMessage.tsx +138 -405
  94. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesView.scss +14 -26
  95. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesView.tsx +658 -429
  96. package/src/Presentation/components/UI/Dialogs/MessagesView/MessagesViewModel.ts +2 -2
  97. package/src/Presentation/components/UI/Dialogs/MessagesView/OutGoingMessage/OutGoingMessage.tsx +1 -1
  98. package/src/Presentation/components/UI/Dialogs/MessagesView/SystemDateBanner/SystemDateBanner.scss +23 -0
  99. package/src/Presentation/components/UI/Dialogs/MessagesView/SystemDateBanner/SystemDateBanner.tsx +17 -0
  100. package/src/Presentation/components/UI/Dialogs/MessagesView/SystemMessageBanner/SystemMessageBanner.scss +21 -0
  101. package/src/Presentation/components/UI/Dialogs/MessagesView/SystemMessageBanner/SystemMessageBanner.tsx +17 -0
  102. package/src/Presentation/components/UI/Dialogs/MessagesView/useMessagesViewModel.ts +124 -83
  103. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewAudioFile/PreviewAudioFile.scss +62 -0
  104. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewAudioFile/PreviewAudioFile.tsx +25 -0
  105. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDefaultFile/PreviewDefaultFile.scss +61 -0
  106. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDefaultFile/PreviewDefaultFile.tsx +32 -0
  107. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialog.scss +29 -3
  108. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewDialog.tsx +55 -4
  109. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewImageFile/PreviewImageFile.scss +40 -0
  110. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewImageFile/PreviewImageFile.tsx +26 -0
  111. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewVideoFile/PreviewVideoFile.scss +62 -0
  112. package/src/Presentation/components/UI/Dialogs/PreviewDialog/PreviewVideoFile/PreviewVideoFile.tsx +25 -0
  113. package/src/Presentation/components/UI/svgs/Icons/AIWidgets/BotIcon/BotIcon.svg +5 -0
  114. package/src/Presentation/components/UI/svgs/Icons/AIWidgets/BotIcon/BotIcon.tsx +50 -0
  115. package/src/Presentation/components/layouts/Desktop/QuickBloxUIKitDesktopLayout.tsx +3 -15
  116. package/src/Presentation/components/providers/QuickBloxUIKitProvider/useQbInitializedDataContext.ts +15 -14
  117. package/src/QBconfig.ts +156 -10
  118. package/src/index-ui.ts +8 -1
  119. package/src/index.scss +0 -1
  120. package/src/package_artan_react_ui.json +13 -9
  121. package/src/package_original.json +5 -1
  122. package/src/utils/utils.ts +63 -0
  123. package/src/Presentation/assets/styles/_reset-styles.scss +0 -435
@@ -0,0 +1,71 @@
1
+ // eslint-disable-next-line import/extensions
2
+ import { QBAIAnswerAssistant } from 'qb-ai-answer-assistant';
3
+ import { IChatMessage } from '../../../Data/source/AISource';
4
+ import { IUseCase } from '../base/IUseCase';
5
+
6
+ export class AIAnswerAssistWithProxyUseCase implements IUseCase<void, string> {
7
+ private textToSend: string;
8
+
9
+ private dialogMessages: IChatMessage[];
10
+
11
+ private servername: string;
12
+
13
+ private api: string;
14
+
15
+ private port: string;
16
+
17
+ private sessionToken: string;
18
+
19
+ private openAIModel: string;
20
+
21
+ constructor(
22
+ textToSend: string,
23
+ dialogMessages: IChatMessage[],
24
+ servername: string,
25
+ api: string,
26
+ port: string,
27
+ sessionToken: string,
28
+ openAIModel = 'gpt-3.5-turbo',
29
+ ) {
30
+ console.log('CONSTRUCTOR AIRephraseUseCase');
31
+ this.api = api;
32
+ this.openAIModel = openAIModel;
33
+ this.port = port;
34
+ this.sessionToken = sessionToken;
35
+ this.textToSend = textToSend;
36
+ this.servername = servername;
37
+ this.dialogMessages = dialogMessages;
38
+ }
39
+
40
+ async execute(): Promise<string> {
41
+ console.log('execute AIRephraseUseCase');
42
+
43
+ const settings =
44
+ QBAIAnswerAssistant.createDefaultAIAnswerAssistantSettings();
45
+
46
+ settings.token = this.sessionToken;
47
+ // settings.organization = 'Quickblox';
48
+ settings.model = this.openAIModel;
49
+ settings.serverPath = `${this.servername}:${this.port}/${this.api}`;
50
+
51
+ return QBAIAnswerAssistant.createAnswer(
52
+ this.textToSend,
53
+ this.dialogMessages,
54
+ settings,
55
+ );
56
+
57
+ // const prompt = AIUtils.createAnswerAssistPrompt(this.textToSend);
58
+ //
59
+ // //
60
+ // return AISource.getDataWithProxyServer(
61
+ // prompt,
62
+ // // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
63
+ // this.dialogMessages,
64
+ // this.servername,
65
+ // this.api,
66
+ // this.port,
67
+ // this.sessionToken,
68
+ // this.openAIModel,
69
+ // );
70
+ }
71
+ }
@@ -1,10 +1,8 @@
1
1
  // eslint-disable-next-line import/extensions
2
- import { AISource, IChatMessage } from '../../../Data/source/AISource';
2
+ import { QBAIRephrase } from 'qb-ai-rephrase';
3
+ import { IChatMessage } from '../../../Data/source/AISource';
3
4
  import { IUseCase } from '../base/IUseCase';
4
- import {
5
- Tone,
6
- toneToString,
7
- } from '../../../Presentation/components/UI/Dialogs/MessagesView/AIWidgets/Tone';
5
+ import { Tone } from '../../../Presentation/components/UI/Dialogs/MessagesView/AIWidgets/Tone';
8
6
 
9
7
  export class AIRephraseUseCase implements IUseCase<void, string> {
10
8
  private textToSend: string;
@@ -47,41 +45,45 @@ export class AIRephraseUseCase implements IUseCase<void, string> {
47
45
  async execute(): Promise<string> {
48
46
  console.log('execute AIRephraseUseCase');
49
47
 
50
- let prompt = `Analyze the entire context of our conversation – all the messages – and create a brief summary of our discussion. Based on this analysis, rephrase the following text in a style and tone that is typical for most of the dialogue messages. Provide only the rephrased text in as the message text to rephrase and nothing more.Give me only rephrase text in brackets and nothing more. Here is the message text to rephrase:"${this.textToSend}"`;
48
+ const settings = QBAIRephrase.createDefaultAIRephraseSettings();
51
49
 
52
- if (this.tone) {
53
- prompt = `Analyze the entire context of our conversation – all the messages – and create a brief summary of our discussion. Based on this analysis, rephrase the following text in a ${toneToString(
54
- this.tone,
55
- )} style. Provide only the rephrased text in the same language as the message text to rephrase and nothing more.Give me only rephrase text in brackets and nothing more. Here is the message text to rephrase:"${
56
- this.textToSend
57
- }"`;
58
- }
59
- //
50
+ settings.apiKey = this.sessionToken;
51
+ // settings.organization = 'Quickblox';
52
+ settings.model = this.openAIModel;
53
+ settings.tone = this.tone;
60
54
 
61
- // return await AISource.getData(
62
- // prompt,
63
- // // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
64
- // context,
65
- // servername,
66
- // api,
67
- // port,
68
- // apiKeyOrSessionToken,
69
- // ).then((data) => {
70
- // setTextFromWidgetToContent(data);
71
- //
72
- // return data;
73
- // });
55
+ return QBAIRephrase.rephrase(
56
+ this.textToSend,
57
+ this.dialogMessages,
58
+ settings,
59
+ );
74
60
 
75
- //
76
- return AISource.getData(
77
- prompt,
78
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
61
+ /*
62
+ const settings: AITranslateSettings =
63
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
64
+ QBAITranslate.createDefaultAITranslateSettings();
65
+
66
+ settings.apiKey = this.sessionToken;
67
+ settings.language = this.language;
68
+
69
+ return QBAITranslate.translate(
70
+ this.textToSend,
79
71
  this.dialogMessages,
80
- this.servername,
81
- this.api,
82
- this.port,
83
- this.sessionToken,
84
- this.openAIModel,
72
+ settings,
85
73
  );
74
+ */
75
+
76
+ // const prompt = AIUtils.createRephrasePrompt(this.textToSend, this.tone);
77
+ //
78
+ // return AISource.getData(
79
+ // prompt,
80
+ // // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
81
+ // this.dialogMessages,
82
+ // this.servername,
83
+ // this.api,
84
+ // this.port,
85
+ // this.sessionToken,
86
+ // this.openAIModel,
87
+ // );
86
88
  }
87
89
  }
@@ -1,10 +1,8 @@
1
1
  // eslint-disable-next-line import/extensions
2
- import { AISource, IChatMessage } from '../../../Data/source/AISource';
2
+ import { QBAIRephrase } from 'qb-ai-rephrase';
3
+ import { IChatMessage } from '../../../Data/source/AISource';
3
4
  import { IUseCase } from '../base/IUseCase';
4
- import {
5
- Tone,
6
- toneToString,
7
- } from '../../../Presentation/components/UI/Dialogs/MessagesView/AIWidgets/Tone';
5
+ import { Tone } from '../../../Presentation/components/UI/Dialogs/MessagesView/AIWidgets/Tone';
8
6
 
9
7
  export class AIRephraseWithProxyUseCase implements IUseCase<void, string> {
10
8
  private textToSend: string;
@@ -47,25 +45,31 @@ export class AIRephraseWithProxyUseCase implements IUseCase<void, string> {
47
45
  async execute(): Promise<string> {
48
46
  console.log('execute AIRephraseUseCase');
49
47
 
50
- let prompt = `Analyze the entire context of our conversation – all the messages – and create a brief summary of our discussion. Based on this analysis, rephrase the following text in a style and tone that is typical for most of the dialogue messages. Provide only the rephrased text in as the message text to rephrase and nothing more.Give me only rephrase text in brackets and nothing more. Here is the message text to rephrase:"${this.textToSend}"`;
48
+ const settings = QBAIRephrase.createDefaultAIRephraseSettings();
51
49
 
52
- if (this.tone) {
53
- prompt = `Analyze the entire context of our conversation – all the messages – and create a brief summary of our discussion. Based on this analysis, rephrase the following text in a ${toneToString(
54
- this.tone,
55
- )} style. Provide only the rephrased text in the same language as the message text to rephrase and nothing more.Give me only rephrase text in brackets and nothing more. Here is the message text to rephrase:"${
56
- this.textToSend
57
- }"`;
58
- }
50
+ settings.token = this.sessionToken;
51
+ // settings.organization = 'Quickblox';
52
+ settings.model = this.openAIModel;
53
+ settings.tone = this.tone;
54
+ settings.serverPath = `${this.servername}:${this.port}/${this.api}`;
59
55
 
60
- return AISource.getDataWithProxyServer(
61
- prompt,
62
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
56
+ return QBAIRephrase.rephrase(
57
+ this.textToSend,
63
58
  this.dialogMessages,
64
- this.servername,
65
- this.api,
66
- this.port,
67
- this.sessionToken,
68
- this.openAIModel,
59
+ settings,
69
60
  );
61
+
62
+ // const prompt = AIUtils.createRephrasePrompt(this.textToSend, this.tone);
63
+ //
64
+ // return AISource.getDataWithProxyServer(
65
+ // prompt,
66
+ // // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
67
+ // this.dialogMessages,
68
+ // this.servername,
69
+ // this.api,
70
+ // this.port,
71
+ // this.sessionToken,
72
+ // this.openAIModel,
73
+ // );
70
74
  }
71
75
  }
@@ -0,0 +1,76 @@
1
+ import { AITranslateSettings, QBAITranslate } from 'qb-ai-translate';
2
+ import { IChatMessage } from '../../../Data/source/AISource';
3
+ import { IUseCase } from '../base/IUseCase';
4
+
5
+ export class AITranslateUseCase implements IUseCase<void, string> {
6
+ private textToSend: string;
7
+
8
+ private language: string;
9
+
10
+ private dialogMessages: IChatMessage[];
11
+
12
+ private servername: string;
13
+
14
+ private api: string;
15
+
16
+ private port: string;
17
+
18
+ private sessionToken: string;
19
+
20
+ private openAIModel: string;
21
+
22
+ constructor(
23
+ textToSend: string,
24
+ language: string,
25
+ dialogMessages: IChatMessage[],
26
+ servername: string,
27
+ api: string,
28
+ port: string,
29
+ sessionToken: string,
30
+ openAIModel = 'gpt-3.5-turbo',
31
+ ) {
32
+ console.log('CONSTRUCTOR AIRephraseUseCase');
33
+ this.api = api;
34
+ this.openAIModel = openAIModel;
35
+ this.port = port;
36
+ this.sessionToken = sessionToken;
37
+ this.textToSend = textToSend;
38
+ this.language = language;
39
+ this.servername = servername;
40
+ this.dialogMessages = dialogMessages;
41
+ }
42
+
43
+ async execute(): Promise<string> {
44
+ console.log('execute AIRephraseUseCase');
45
+ const settings: AITranslateSettings =
46
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
47
+ QBAITranslate.createDefaultAITranslateSettings();
48
+
49
+ settings.apiKey = this.sessionToken;
50
+ // settings.organization = 'Quickblox';
51
+ settings.model = this.openAIModel;
52
+ settings.language = this.language;
53
+
54
+ return QBAITranslate.translate(
55
+ this.textToSend,
56
+ this.dialogMessages,
57
+ settings,
58
+ );
59
+
60
+ // const prompt = AIUtils.createTranslatePrompt(
61
+ // this.textToSend,
62
+ // this.language,
63
+ // );
64
+ //
65
+ // return AISource.getData(
66
+ // prompt,
67
+ // // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
68
+ // this.dialogMessages,
69
+ // this.servername,
70
+ // this.api,
71
+ // this.port,
72
+ // this.sessionToken,
73
+ // this.openAIModel,
74
+ // );
75
+ }
76
+ }
@@ -0,0 +1,79 @@
1
+ // eslint-disable-next-line import/extensions
2
+ import { AITranslateSettings, QBAITranslate } from 'qb-ai-translate';
3
+ import { IChatMessage } from '../../../Data/source/AISource';
4
+ import { IUseCase } from '../base/IUseCase';
5
+
6
+ export class AITranslateWithProxyUseCase implements IUseCase<void, string> {
7
+ private textToSend: string;
8
+
9
+ private language: string;
10
+
11
+ private dialogMessages: IChatMessage[];
12
+
13
+ private servername: string;
14
+
15
+ private api: string;
16
+
17
+ private port: string;
18
+
19
+ private sessionToken: string;
20
+
21
+ private openAIModel: string;
22
+
23
+ constructor(
24
+ textToSend: string,
25
+ language: string,
26
+ dialogMessages: IChatMessage[],
27
+ servername: string,
28
+ api: string,
29
+ port: string,
30
+ sessionToken: string,
31
+ openAIModel = 'gpt-3.5-turbo',
32
+ ) {
33
+ console.log('CONSTRUCTOR AIRephraseUseCase');
34
+ this.api = api;
35
+ this.openAIModel = openAIModel;
36
+ this.port = port;
37
+ this.sessionToken = sessionToken;
38
+ this.textToSend = textToSend;
39
+ this.language = language;
40
+ this.servername = servername;
41
+ this.dialogMessages = dialogMessages;
42
+ }
43
+
44
+ async execute(): Promise<string> {
45
+ console.log('execute AIRephraseUseCase');
46
+
47
+ const settings: AITranslateSettings =
48
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
49
+ QBAITranslate.createDefaultAITranslateSettings();
50
+
51
+ settings.token = this.sessionToken;
52
+ // settings.organization = 'Quickblox';
53
+ settings.model = this.openAIModel;
54
+ settings.language = this.language;
55
+ settings.serverPath = `${this.servername}:${this.port}/${this.api}`;
56
+
57
+ return QBAITranslate.translate(
58
+ this.textToSend,
59
+ this.dialogMessages,
60
+ settings,
61
+ );
62
+
63
+ // const prompt = AIUtils.createTranslatePrompt(
64
+ // this.textToSend,
65
+ // this.language,
66
+ // );
67
+ //
68
+ // return AISource.getDataWithProxyServer(
69
+ // prompt,
70
+ // // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
71
+ // this.dialogMessages,
72
+ // this.servername,
73
+ // this.api,
74
+ // this.port,
75
+ // this.sessionToken,
76
+ // this.openAIModel,
77
+ // );
78
+ }
79
+ }
@@ -35,20 +35,17 @@ export class SubscriptionPerformer<TArg> implements ISubscribable<TArg> {
35
35
 
36
36
  protected EVENT_TYPE: string = EventMessageType.LocalMessage;
37
37
 
38
+ // eslint-disable-next-line class-methods-use-this
38
39
  public release(): void {
39
- Object.entries(this.onEventByTypeSubscribers).map((x) => {
40
- const eventName = x[0];
41
-
42
- this.onEventByTypeSubscribers[eventName][this.EVENT_NAME] = () => {
43
- console.log('ERROR release event in SubscriptionPerformer');
44
- };
45
-
46
- return this.onEventByTypeSubscribers[eventName][this.EVENT_NAME];
47
- });
40
+ console.log('SubscriptionPerformer release actions.');
48
41
  // Object.entries(this.onEventByTypeSubscribers).map((x) => {
49
42
  // const eventName = x[0];
50
43
  //
51
- // return this.onEventByTypeSubscribers[eventName].slice();
44
+ // this.onEventByTypeSubscribers[eventName][this.EVENT_NAME] = () => {
45
+ // console.log('ERROR release event in SubscriptionPerformer');
46
+ // };
47
+ //
48
+ // return this.onEventByTypeSubscribers[eventName][this.EVENT_NAME];
52
49
  // });
53
50
  }
54
51
 
@@ -3,6 +3,7 @@ import { GroupDialogEntity } from '../../../Domain/entity/GroupDialogEntity';
3
3
  import { DialogEntity } from '../../../Domain/entity/DialogEntity';
4
4
  import { FileEntity } from '../../../Domain/entity/FileEntity';
5
5
  import { IChatMessage } from '../../../Data/source/AISource';
6
+ import { Tone } from '../../components/UI/Dialogs/MessagesView/AIWidgets/Tone';
6
7
 
7
8
  export default class BaseViewModel<TResult> {
8
9
  get entity(): TResult {
@@ -52,6 +53,7 @@ export type EditDialogParams = {
52
53
  };
53
54
 
54
55
  export type FunctionTypeFileToToVoid = (file: File) => void;
56
+ export type FunctionTypeFileToToBoolean = (file: File) => Promise<boolean>;
55
57
  export type FunctionTypePaginationToVoid = (pagination: Pagination) => void;
56
58
  export type FunctionTypeVoidToVoid = () => void;
57
59
  export type FunctionTypeStringToVoid = (value: string) => void;
@@ -86,3 +88,4 @@ export type FunctionTypeStringWithContextToString = (
86
88
  context: IChatMessage[],
87
89
  additionalSettings?: { [key: string]: any },
88
90
  ) => Promise<string>;
91
+ export type FunctionTypeVoidToTones = () => Tone[];
@@ -72,5 +72,8 @@
72
72
  display: flex;
73
73
  align-items: center;
74
74
  letter-spacing: 0.15px;
75
+
76
+ border: none;
77
+ outline: none;
75
78
  }
76
79
  }
@@ -213,7 +213,7 @@ const DialogsComponent: React.FC<DialogsProps> = ({
213
213
  ) {
214
214
  const imagePhoto = (currentDialog.entity as GroupDialogEntity).photo;
215
215
 
216
- console.log('Dialogs: avatar: ', imagePhoto || 'NO FOTO');
216
+ // console.log('Dialogs: avatar: ', imagePhoto || 'NO FOTO');
217
217
  AvatarComponent = imagePhoto ? (
218
218
  <img
219
219
  style={{ width: '55px', height: '55px', borderRadius: '50%' }}