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
@@ -2,7 +2,8 @@ import { useState } from 'react';
2
2
  import AIWidgetIcon from '../../../svgs/Icons/AIWidgets/AIWidget';
3
3
  import ErrorMessageIcon from './ErrorMessageIcon';
4
4
  import { AIMessageWidget, MessageWidgetProps } from './AIMessageWidget';
5
- import { AISource, IChatMessage } from '../../../../../../Data/source/AISource';
5
+ import { IChatMessage } from '../../../../../../Data/source/AISource';
6
+ import { AITranslateWithProxyUseCase } from '../../../../../../Domain/use_cases/ai/AITranslateWithProxyUseCase';
6
7
 
7
8
  // interface MessageWidgetProps {
8
9
  // // https://api.openai.com/v1/chat/completions'
@@ -52,25 +53,25 @@ export default function UseDefaultAITranslateWidgetWithProxy({
52
53
  ): Promise<string> => {
53
54
  if (textToSend && textToSend.length > 0) {
54
55
  // eslint-disable-next-line no-return-await
55
- let prompt = `Please, translate the next text in english and give me just only translated text. Text to translate is: "${textToSend}"`;
56
56
  const { language } = additionalSettings || {};
57
+ //
58
+ const openAIModel = 'gpt-3.5-turbo';
57
59
 
58
- if (language) {
59
- prompt = `Please, translate the next text in ${
60
- language as string
61
- } and give me just only translated text. Text to translate is: "${textToSend}"`;
62
- }
63
-
64
- // eslint-disable-next-line no-return-await
65
- return await AISource.getDataWithProxyServer(
66
- prompt,
60
+ // AIRephraseWithProxyUseCase
61
+ const useCaseAITranslate = new AITranslateWithProxyUseCase(
62
+ textToSend,
67
63
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
64
+ language,
68
65
  context,
69
66
  servername,
70
67
  api,
71
68
  port,
72
69
  apiKeyOrSessionToken,
73
- ).then((data) => {
70
+ openAIModel,
71
+ );
72
+
73
+ // eslint-disable-next-line no-return-await
74
+ return await useCaseAITranslate.execute().then((data) => {
74
75
  setTextFromWidgetToContent(data);
75
76
 
76
77
  return data;
@@ -17,7 +17,7 @@ const AudioAttachmentComponent: React.FC<AudioAttachmentComponentProps> = ({
17
17
  <source src={audioFile.url} type="audio/mpeg" />
18
18
  <source src={audioFile.url} type="audio/ogg" />
19
19
  </audio>
20
- <a href={audioFile.url} download>
20
+ <a href={audioFile.url} target="_blank" download rel="noreferrer">
21
21
  Download
22
22
  </a>
23
23
  </div>
@@ -0,0 +1,76 @@
1
+ .default-attachment-component-container,
2
+ .default-attachment-component-container * {
3
+ box-sizing: border-box;
4
+ }
5
+ .default-attachment-component-container {
6
+ // background: var(--incoming-background, #e4e6e8);
7
+ border-radius: 22px 22px 22px 0px;
8
+ padding: 8px 16px 8px 1px;
9
+ display: flex;
10
+ flex-direction: row;
11
+ gap: 8px;
12
+ align-items: center;
13
+ justify-content: flex-start;
14
+ flex-shrink: 0;
15
+ position: relative;
16
+
17
+ &--file-wrapper {
18
+ display: flex;
19
+ flex-direction: row;
20
+ gap: 8px;
21
+ align-items: center;
22
+ justify-content: flex-start;
23
+ align-self: stretch;
24
+ flex-shrink: 0;
25
+ position: relative;
26
+
27
+ &--placeholder {
28
+ flex-shrink: 0;
29
+ width: 32px;
30
+ height: 32px;
31
+ position: static;
32
+
33
+ &__bg {
34
+ background: var(--field-border, #90979f);
35
+ border-radius: 8px;
36
+ width: 32px;
37
+ height: 32px;
38
+ position: absolute;
39
+ left: 0px;
40
+ top: 0px;
41
+ }
42
+
43
+ &__icon {
44
+ border-radius: 4px;
45
+ padding: 4px;
46
+ display: flex;
47
+ flex-direction: row;
48
+ gap: 0px;
49
+ align-items: center;
50
+ justify-content: center;
51
+ width: 24px;
52
+ height: 24px;
53
+ position: absolute;
54
+ left: 4px;
55
+ top: 4px;
56
+ }
57
+ }
58
+
59
+ &--file-d {
60
+ color: var(--secondary-elements, #202f3e);
61
+ text-align: left;
62
+ font: 400 14px/20px "Roboto", sans-serif;
63
+ position: relative;
64
+ }
65
+ }
66
+ }
67
+
68
+
69
+
70
+ .media-text-document {
71
+ align-self: stretch;
72
+ flex: 1;
73
+ position: relative;
74
+ overflow: visible;
75
+ }
76
+
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import './DefaultAttachmentComponent.scss';
3
+ import TextDocument from '../../../svgs/Icons/Media/TextDocument';
4
+
5
+ type DefaultAttachmentComponentProps = {
6
+ fileName: string;
7
+ fileUrl: string;
8
+ };
9
+ // eslint-disable-next-line react/function-component-definition
10
+ const DefaultAttachmentComponent: React.FC<DefaultAttachmentComponentProps> = ({
11
+ fileName,
12
+ fileUrl,
13
+ }: DefaultAttachmentComponentProps) => {
14
+ return (
15
+ <div>
16
+ <div className="default-attachment-component-container">
17
+ <div className="default-attachment-component-container--file-wrapper">
18
+ <div className="default-attachment-component-container--file-wrapper--placeholder">
19
+ <div className="default-attachment-component-container--file-wrapper--placeholder__bg" />
20
+ <div className="default-attachment-component-container--file-wrapper--placeholder__icon">
21
+ <a href={fileUrl} target="_blank" download rel="noreferrer">
22
+ <TextDocument
23
+ width="16"
24
+ height="16"
25
+ applyZoom
26
+ color="var(--incoming-background)"
27
+ />
28
+ </a>
29
+ </div>
30
+ </div>
31
+ <div className="default-attachment-component-container--file-wrapper__file-d">
32
+ {fileName}
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ );
38
+ };
39
+
40
+ export default DefaultAttachmentComponent;
@@ -0,0 +1,26 @@
1
+ .error-toast,
2
+ .error-toast * {
3
+ box-sizing: border-box;
4
+ }
5
+ .error-toast {
6
+ background: var(--color-background-overlay);
7
+ border-radius: 4px;
8
+ opacity: 0.6000000238418579;
9
+ padding: 4px 12px 4px 12px;
10
+ // margin-top: 36px;
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 10px;
14
+ align-items: flex-start;
15
+ justify-content: flex-start;
16
+ position: relative;
17
+ }
18
+ .translation-failed-try-again {
19
+ color: var(--color-background);
20
+ text-align: left;
21
+ font: 500 12px/16px "Roboto", sans-serif;
22
+ position: relative;
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: flex-start;
26
+ }
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import './ErrorToast.scss';
3
+
4
+ type ErrorToastProps = {
5
+ messageText: string;
6
+ // displayTimeout: number;
7
+ };
8
+
9
+ // eslint-disable-next-line react/function-component-definition
10
+ export const ErrorToast: React.FC<ErrorToastProps> = ({
11
+ messageText,
12
+ }: // displayTimeout,
13
+ ErrorToastProps) => {
14
+ return (
15
+ // <div>
16
+ // {messageText} - {displayTimeout}
17
+ // </div>
18
+
19
+ <div className="error-toast">
20
+ <div className="translation-failed-try-again">
21
+ {messageText} Try again.
22
+ </div>
23
+ </div>
24
+ );
25
+ };
@@ -12,12 +12,14 @@ const ImageAttachmentComponent: React.FC<ImageAttachmentComponentProps> = ({
12
12
  }: ImageAttachmentComponentProps) => {
13
13
  return (
14
14
  <div>
15
- <img
16
- className="image-body"
17
- key={imageFile.id}
18
- src={imageFile.url}
19
- alt={imageFile.name || 'attached image'}
20
- />
15
+ <a href={imageFile.url} download="file" target="_blank" rel="noreferrer">
16
+ <img
17
+ className="image-body"
18
+ key={imageFile.id}
19
+ src={imageFile.url}
20
+ alt={imageFile.name || 'attached image'}
21
+ />
22
+ </a>
21
23
  </div>
22
24
  );
23
25
  };
@@ -1,7 +1,13 @@
1
1
  import React from 'react';
2
2
  import './AvatarContentIncomingUser.scss';
3
3
 
4
+ export interface AvatarContentIncomingUserProps {
5
+ // eslint-disable-next-line react/no-unused-prop-types
6
+ userId: number;
7
+ }
8
+
4
9
  export default function AvatarContentIncomingUser() {
10
+ // props: AvatarContentIncomingUserProps,
5
11
  return (
6
12
  <div className="avatar-wrap">
7
13
  <div className="avatar">
@@ -255,7 +255,7 @@
255
255
  max-width: 480px;
256
256
  }
257
257
  .message-in-a-single-line {
258
- color: var(--secondary-secondary-900, #0b121b);
258
+ color: var(--main-text);
259
259
  text-align: left;
260
260
  font: var(--body-body-medium, 400 14px/20px "Roboto", sans-serif);
261
261
  position: relative;
@@ -289,7 +289,7 @@
289
289
  font: var(--label-label-small, 500 11px/16px "Roboto", sans-serif);
290
290
  position: relative;
291
291
  }
292
- .icon {
292
+ .icon-translate {
293
293
  border-radius: 4px;
294
294
  display: flex;
295
295
  flex-direction: row;
@@ -349,16 +349,15 @@
349
349
  }
350
350
 
351
351
  .ai-translate-action {
352
- color: var(--secondary-secondary-300, #636d78);
352
+ color: var(--tertiary-elements);
353
353
  text-align: right;
354
- font: var(--label-label-small, 500 11px/16px "Roboto", sans-serif);
354
+ font: 500 11px/16px "Roboto", sans-serif;
355
355
  position: relative;
356
- cursor: pointer;
357
356
  }
358
357
 
359
358
 
360
359
  // --- AIAssist
361
- .assist-answer {
360
+ .ai-assist-answer {
362
361
  display: flex;
363
362
  flex-direction: row;
364
363
  gap: 10px;
@@ -367,7 +366,6 @@
367
366
  align-self: stretch;
368
367
  flex-shrink: 0;
369
368
  position: relative;
370
- cursor: pointer;
371
369
  }
372
370
  .icon {
373
371
  border-radius: 4px;