quickblox-react-ui-kit 0.4.6-beta.4 → 0.4.7

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 (177) hide show
  1. package/dist/CommonTypes/CommonTypes.d.ts +12 -0
  2. package/dist/Data/source/remote/RemoteDataSource.d.ts +5 -0
  3. package/dist/Presentation/Views/Dialog/ForwardMessageFlow/DialogsWithSearch/DialogListItem/DialogListItem.d.ts +1 -1
  4. package/dist/Presentation/Views/Flow/CreateDialog/CreateDialog.d.ts +1 -0
  5. package/dist/Presentation/ui-components/DialogItemPreview/DialogItemPreview.d.ts +3 -3
  6. package/dist/Presentation/ui-components/Header/Header.d.ts +1 -1
  7. package/dist/index-ui.d.ts +47 -3
  8. package/dist/index-ui.js +25470 -17586
  9. package/dist/index-ui.js.map +1 -1
  10. package/global.d.ts +3 -202
  11. package/package.json +1 -1
  12. package/src/App.scss +5 -0
  13. package/src/App.tsx +58 -33
  14. package/src/CommonTypes/CommonTypes.ts +13 -0
  15. package/src/Data/DefaultConfigurations.ts +4 -0
  16. package/src/Data/source/remote/RemoteDataSource.ts +210 -148
  17. package/src/Domain/use_cases/CreateDialogUseCase.ts +0 -1
  18. package/src/Domain/use_cases/ForwardMessagesUseCase.ts +0 -1
  19. package/src/Domain/use_cases/GetAllDialogsUseCase.ts +0 -1
  20. package/src/Domain/use_cases/GetAllDialogsUseCaseWithMock.ts +0 -2
  21. package/src/Domain/use_cases/GetAllMessagesForDialog.ts +0 -1
  22. package/src/Domain/use_cases/GetAllUsersUseCase.ts +0 -1
  23. package/src/Domain/use_cases/GetDialogByIdUseCase.ts +0 -2
  24. package/src/Domain/use_cases/GetUsersByIdsUseCase.ts +0 -1
  25. package/src/Domain/use_cases/LeaveDialogUseCase.ts +0 -1
  26. package/src/Domain/use_cases/RemoveUsersFromTheDialogUseCase.ts +0 -1
  27. package/src/Domain/use_cases/ReplyMessagesUseCase.ts +0 -2
  28. package/src/Domain/use_cases/SendTextMessageUseCase.ts +0 -3
  29. package/src/Domain/use_cases/SubscribeToDialogEventsUseCase.ts +0 -26
  30. package/src/Domain/use_cases/SubscribeToDialogsUpdatesUseCase.ts +0 -1
  31. package/src/Domain/use_cases/SyncDialogsUseCase.ts +1 -2
  32. package/src/Domain/use_cases/UpdateCurrentDialogInDataSourceUseCase.ts +0 -2
  33. package/src/Domain/use_cases/UpdateDialogUseCase.ts +0 -2
  34. package/src/Domain/use_cases/UploadFileUseCase.ts +0 -2
  35. package/src/Domain/use_cases/UserTypingMessageUseCase.ts +0 -2
  36. package/src/Domain/use_cases/ai/AIAnswerAssistUseCase.ts +0 -2
  37. package/src/Domain/use_cases/ai/AIAnswerAssistWithProxyUseCase.ts +0 -3
  38. package/src/Domain/use_cases/ai/AIAnswerAssistWithSDKUseCase.ts +0 -2
  39. package/src/Domain/use_cases/ai/AIRephraseUseCase.ts +0 -3
  40. package/src/Domain/use_cases/ai/AIRephraseWithProxyUseCase.ts +0 -3
  41. package/src/Domain/use_cases/ai/AITranslateUseCase.ts +0 -2
  42. package/src/Domain/use_cases/ai/AITranslateWithProxyUseCase.ts +0 -3
  43. package/src/Domain/use_cases/ai/AITranslateWithSDKUseCase.ts +0 -3
  44. package/src/Domain/use_cases/base/Subscribable/SubscriptionPerformer.ts +0 -1
  45. package/src/Presentation/Views/Dialog/AIWidgets/AIRephraseWidget/AIRephraseWidget.tsx +1 -1
  46. package/src/Presentation/Views/Dialog/AIWidgets/AIWidgetActions/AIWidgetActions.scss +12 -6
  47. package/src/Presentation/Views/Dialog/AIWidgets/AIWidgetActions/AIWidgetActions.tsx +4 -2
  48. package/src/Presentation/Views/Dialog/Dialog.scss +7 -1
  49. package/src/Presentation/Views/Dialog/ForwardMessageFlow/DialogsWithSearch/DialogListItem/DialogListItem.scss +17 -29
  50. package/src/Presentation/Views/Dialog/ForwardMessageFlow/DialogsWithSearch/DialogListItem/DialogListItem.tsx +8 -13
  51. package/src/Presentation/Views/Dialog/ForwardMessageFlow/ForwardMessageFlow.scss +9 -9
  52. package/src/Presentation/Views/Dialog/ForwardMessageFlow/InputForForwarding/InputForForwarding.scss +11 -0
  53. package/src/Presentation/Views/Dialog/MessageContextMenu/MessageContextMenu.tsx +3 -2
  54. package/src/Presentation/Views/Dialog/useDialogViewModel.ts +10 -21
  55. package/src/Presentation/Views/DialogInfo/DialogInfo.scss +19 -25
  56. package/src/Presentation/Views/DialogInfo/DialogInfo.tsx +2 -2
  57. package/src/Presentation/Views/DialogInfo/DialogMemberButton/DialogMembersButton.scss +0 -17
  58. package/src/Presentation/Views/DialogInfo/MembersList/MembersList.scss +9 -1
  59. package/src/Presentation/Views/DialogInfo/UsersList/SingleUser/SingleUser.scss +0 -1
  60. package/src/Presentation/Views/DialogInfo/UsersList/useUsersListViewModel.ts +2 -4
  61. package/src/Presentation/Views/DialogList/useDialogListViewModel.ts +0 -1
  62. package/src/Presentation/Views/EditDialog/EditDialog.scss +1 -38
  63. package/src/Presentation/Views/Flow/CreateDialog/CreateDialog.scss +17 -42
  64. package/src/Presentation/Views/Flow/CreateDialog/CreateDialog.tsx +45 -39
  65. package/src/Presentation/Views/Flow/CreateDialogFlow/CreateNewDialogFlow.tsx +6 -2
  66. package/src/Presentation/Views/InviteMembers/InviteMembers.scss +4 -33
  67. package/src/Presentation/Views/InviteMembers/InviteMembers.tsx +23 -4
  68. package/src/Presentation/Views/PreviewDialog/PreviewDialog.scss +8 -0
  69. package/src/Presentation/Views/PreviewDialog/PreviewDialog.tsx +8 -5
  70. package/src/Presentation/components/UI/Buttons/MainButton/MainButton.css +5 -10
  71. package/src/Presentation/components/UI/Placeholders/ErrorComponent/ErrorComponent.scss +0 -5
  72. package/src/Presentation/components/containers/ColumnContainer/ColumnContainer.scss +1 -10
  73. package/src/Presentation/layouts/TestStage/LoginView/Login.scss +6 -3
  74. package/src/Presentation/providers/QuickBloxUIKitProvider/QuickBloxUIKitProvider.tsx +1 -33
  75. package/src/Presentation/themes/styles/_theme_colors_scheme.scss +1 -1
  76. package/src/Presentation/themes/styles/_theme_dark.scss +5 -4
  77. package/src/Presentation/themes/styles/_theme_light.scss +3 -2
  78. package/src/Presentation/ui-components/Avatar/Avatar.scss +8 -5
  79. package/src/Presentation/ui-components/Avatar/Avatar.tsx +2 -1
  80. package/src/Presentation/ui-components/Badge/Badge.tsx +1 -0
  81. package/src/Presentation/ui-components/Button/Button.scss +5 -6
  82. package/src/Presentation/ui-components/Button/Button.tsx +7 -2
  83. package/src/Presentation/ui-components/CheckBox/CheckBox.scss +23 -0
  84. package/src/Presentation/ui-components/CheckBox/CheckBox.tsx +19 -7
  85. package/src/Presentation/ui-components/DialogBanner/DialogBanner.tsx +1 -0
  86. package/src/Presentation/ui-components/DialogItemPreview/DialogItemPreview.scss +3 -3
  87. package/src/Presentation/ui-components/DialogItemPreview/DialogItemPreview.tsx +3 -3
  88. package/src/Presentation/ui-components/DialogWindow/DialogWindow.scss +7 -4
  89. package/src/Presentation/ui-components/DialogWindow/DialogWindow.tsx +1 -1
  90. package/src/Presentation/ui-components/Dropdown/Dropdown.tsx +1 -1
  91. package/src/Presentation/ui-components/Dropdown/DropdownOption.tsx +2 -1
  92. package/src/Presentation/ui-components/Header/Header.scss +9 -2
  93. package/src/Presentation/ui-components/Header/Header.tsx +1 -1
  94. package/src/Presentation/ui-components/Loader/Loader.tsx +1 -0
  95. package/src/Presentation/ui-components/Message/Bubble/AudioBubble/AudioBubble.scss +1 -0
  96. package/src/Presentation/ui-components/Message/Bubble/FileBubble/FileBubble.tsx +1 -0
  97. package/src/Presentation/ui-components/Message/Bubble/ImageBubble/ImageBubble.tsx +1 -0
  98. package/src/Presentation/ui-components/Message/Bubble/TextBubble/TextBubble.scss +13 -3
  99. package/src/Presentation/ui-components/Message/Bubble/TextBubble/TextBubble.tsx +1 -0
  100. package/src/Presentation/ui-components/Message/Bubble/VideoBubble/VideoBubble.tsx +1 -0
  101. package/src/Presentation/ui-components/Message/FileUrl/FileUrl.scss +0 -3
  102. package/src/Presentation/ui-components/Message/FileUrl/FileUrl.tsx +1 -0
  103. package/src/Presentation/ui-components/Message/Message.scss +5 -1
  104. package/src/Presentation/ui-components/MessageInput/MessageInput.scss +5 -1
  105. package/src/Presentation/ui-components/MessageInput/MessageInput.tsx +1 -1
  106. package/src/Presentation/ui-components/MessageInput/VoiceRecordingProgress/VoiceRecordingProgress.tsx +1 -1
  107. package/src/Presentation/ui-components/MessageSeparator/MessageSeparator.scss +13 -13
  108. package/src/Presentation/ui-components/Placeholder/Placeholder.scss +5 -0
  109. package/src/Presentation/ui-components/Placeholder/Placeholder.tsx +1 -1
  110. package/src/Presentation/ui-components/PreviewFileMessage/PreviewFileMessage.scss +4 -1
  111. package/src/Presentation/ui-components/PreviewFileMessage/PreviewFileMessage.tsx +1 -0
  112. package/src/Presentation/ui-components/SettingsItem/SettingsItem.scss +5 -1
  113. package/src/Presentation/ui-components/SettingsItem/SettingsItem.tsx +1 -1
  114. package/src/Presentation/ui-components/TextField/TextField.scss +5 -3
  115. package/src/Presentation/ui-components/Toast/Toast.scss +3 -3
  116. package/src/Presentation/ui-components/Toast/ToastProvider.tsx +2 -2
  117. package/src/Presentation/ui-components/UserListItem/UserListItem.scss +11 -3
  118. package/src/Presentation/ui-components/UserListItem/UserListItem.tsx +1 -0
  119. package/src/QBconfig.ts +2 -0
  120. package/src/hooks/useQuickBloxUIKit.ts +101 -18
  121. package/src/index-ui.ts +111 -18
  122. package/src/qb-api-calls/index.ts +52 -3
  123. package/storybook-static/{217.3c66ff1e.iframe.bundle.js → 217.07d5c7a3.iframe.bundle.js} +3 -3
  124. package/storybook-static/{217.3c66ff1e.iframe.bundle.js.map → 217.07d5c7a3.iframe.bundle.js.map} +1 -1
  125. package/storybook-static/735.6ee62079.iframe.bundle.js +2 -0
  126. package/storybook-static/{844.6041e1a5.iframe.bundle.js → 844.e8bfd664.iframe.bundle.js} +3 -3
  127. package/storybook-static/{844.6041e1a5.iframe.bundle.js.map → 844.e8bfd664.iframe.bundle.js.map} +1 -1
  128. package/storybook-static/{961.c94da456.iframe.bundle.js → 961.d47fc2bc.iframe.bundle.js} +2 -2
  129. package/storybook-static/Presentation-ui-components-Avatar-avatar-stories.a5ba7608.iframe.bundle.js +2 -0
  130. package/storybook-static/Presentation-ui-components-Badge-Badge-stories.c8824861.iframe.bundle.js +2 -0
  131. package/storybook-static/Presentation-ui-components-Button-Button-stories.fa2aa72c.iframe.bundle.js +2 -0
  132. package/storybook-static/Presentation-ui-components-DialogItemPreview-DialogItemPreview-stories.b6998344.iframe.bundle.js +2 -0
  133. package/storybook-static/Presentation-ui-components-DialogWindow-DialogWindow-stories.a724643f.iframe.bundle.js +2 -0
  134. package/storybook-static/Presentation-ui-components-Dropdown-Dropdown-stories.a03feb06.iframe.bundle.js +2 -0
  135. package/storybook-static/Presentation-ui-components-Header-Header-stories.978f0af5.iframe.bundle.js +2 -0
  136. package/storybook-static/Presentation-ui-components-Loader-Loader-stories.4e80520d.iframe.bundle.js +2 -0
  137. package/storybook-static/Presentation-ui-components-Message-Message-stories.213a90f6.iframe.bundle.js +2 -0
  138. package/storybook-static/Presentation-ui-components-MessageInput-MessageInput-stories.be8aa2d9.iframe.bundle.js +1 -0
  139. package/storybook-static/Presentation-ui-components-SettingsItem-SettingsItem-stories.e7f5a274.iframe.bundle.js +2 -0
  140. package/storybook-static/Presentation-ui-components-TextField-TextField-stories.969cfe2e.iframe.bundle.js +2 -0
  141. package/storybook-static/Presentation-ui-components-Toast-Toast-stories.4f00432b.iframe.bundle.js +1 -0
  142. package/storybook-static/Presentation-ui-components-UserListItem-UserListItem-stories.1713eab7.iframe.bundle.js +2 -0
  143. package/storybook-static/iframe.html +2 -2
  144. package/storybook-static/project.json +1 -1
  145. package/storybook-static/{runtime~main.5a7ba727.iframe.bundle.js → runtime~main.17766d00.iframe.bundle.js} +1 -1
  146. package/storybook-static/sb-manager/globals-runtime.js +1 -1
  147. package/storybook-static/735.82f96f8a.iframe.bundle.js +0 -2
  148. package/storybook-static/Presentation-ui-components-Avatar-avatar-stories.b363e9a1.iframe.bundle.js +0 -2
  149. package/storybook-static/Presentation-ui-components-Badge-Badge-stories.85dd97b0.iframe.bundle.js +0 -2
  150. package/storybook-static/Presentation-ui-components-Button-Button-stories.1e4ae2b4.iframe.bundle.js +0 -2
  151. package/storybook-static/Presentation-ui-components-DialogItemPreview-DialogItemPreview-stories.4e25a94d.iframe.bundle.js +0 -2
  152. package/storybook-static/Presentation-ui-components-DialogWindow-DialogWindow-stories.e22e8be5.iframe.bundle.js +0 -2
  153. package/storybook-static/Presentation-ui-components-Dropdown-Dropdown-stories.8321872b.iframe.bundle.js +0 -2
  154. package/storybook-static/Presentation-ui-components-Header-Header-stories.1cff200a.iframe.bundle.js +0 -2
  155. package/storybook-static/Presentation-ui-components-Loader-Loader-stories.7391dde4.iframe.bundle.js +0 -2
  156. package/storybook-static/Presentation-ui-components-Message-Message-stories.49f0dbbf.iframe.bundle.js +0 -2
  157. package/storybook-static/Presentation-ui-components-MessageInput-MessageInput-stories.4aa88de3.iframe.bundle.js +0 -1
  158. package/storybook-static/Presentation-ui-components-SettingsItem-SettingsItem-stories.d74853ab.iframe.bundle.js +0 -2
  159. package/storybook-static/Presentation-ui-components-TextField-TextField-stories.19812f7d.iframe.bundle.js +0 -2
  160. package/storybook-static/Presentation-ui-components-Toast-Toast-stories.5e19f10e.iframe.bundle.js +0 -1
  161. package/storybook-static/Presentation-ui-components-UserListItem-UserListItem-stories.d2f60e13.iframe.bundle.js +0 -2
  162. /package/storybook-static/{217.3c66ff1e.iframe.bundle.js.LICENSE.txt → 217.07d5c7a3.iframe.bundle.js.LICENSE.txt} +0 -0
  163. /package/storybook-static/{735.82f96f8a.iframe.bundle.js.LICENSE.txt → 735.6ee62079.iframe.bundle.js.LICENSE.txt} +0 -0
  164. /package/storybook-static/{844.6041e1a5.iframe.bundle.js.LICENSE.txt → 844.e8bfd664.iframe.bundle.js.LICENSE.txt} +0 -0
  165. /package/storybook-static/{961.c94da456.iframe.bundle.js.LICENSE.txt → 961.d47fc2bc.iframe.bundle.js.LICENSE.txt} +0 -0
  166. /package/storybook-static/{Presentation-ui-components-Avatar-avatar-stories.b363e9a1.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-Avatar-avatar-stories.a5ba7608.iframe.bundle.js.LICENSE.txt} +0 -0
  167. /package/storybook-static/{Presentation-ui-components-Badge-Badge-stories.85dd97b0.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-Badge-Badge-stories.c8824861.iframe.bundle.js.LICENSE.txt} +0 -0
  168. /package/storybook-static/{Presentation-ui-components-Button-Button-stories.1e4ae2b4.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-Button-Button-stories.fa2aa72c.iframe.bundle.js.LICENSE.txt} +0 -0
  169. /package/storybook-static/{Presentation-ui-components-DialogItemPreview-DialogItemPreview-stories.4e25a94d.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-DialogItemPreview-DialogItemPreview-stories.b6998344.iframe.bundle.js.LICENSE.txt} +0 -0
  170. /package/storybook-static/{Presentation-ui-components-DialogWindow-DialogWindow-stories.e22e8be5.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-DialogWindow-DialogWindow-stories.a724643f.iframe.bundle.js.LICENSE.txt} +0 -0
  171. /package/storybook-static/{Presentation-ui-components-Dropdown-Dropdown-stories.8321872b.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-Dropdown-Dropdown-stories.a03feb06.iframe.bundle.js.LICENSE.txt} +0 -0
  172. /package/storybook-static/{Presentation-ui-components-Header-Header-stories.1cff200a.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-Header-Header-stories.978f0af5.iframe.bundle.js.LICENSE.txt} +0 -0
  173. /package/storybook-static/{Presentation-ui-components-Loader-Loader-stories.7391dde4.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-Loader-Loader-stories.4e80520d.iframe.bundle.js.LICENSE.txt} +0 -0
  174. /package/storybook-static/{Presentation-ui-components-Message-Message-stories.49f0dbbf.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-Message-Message-stories.213a90f6.iframe.bundle.js.LICENSE.txt} +0 -0
  175. /package/storybook-static/{Presentation-ui-components-SettingsItem-SettingsItem-stories.d74853ab.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-SettingsItem-SettingsItem-stories.e7f5a274.iframe.bundle.js.LICENSE.txt} +0 -0
  176. /package/storybook-static/{Presentation-ui-components-TextField-TextField-stories.19812f7d.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-TextField-TextField-stories.969cfe2e.iframe.bundle.js.LICENSE.txt} +0 -0
  177. /package/storybook-static/{Presentation-ui-components-UserListItem-UserListItem-stories.d2f60e13.iframe.bundle.js.LICENSE.txt → Presentation-ui-components-UserListItem-UserListItem-stories.1713eab7.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -3,6 +3,7 @@ import './CreateDialog.scss';
3
3
  import ColumnContainer from '../../../components/containers/ColumnContainer/ColumnContainer';
4
4
  import Chat from '../../../components/UI/svgs/Icons/Contents/Chat';
5
5
  import GroupChat from '../../../components/UI/svgs/Icons/Contents/GroupChat';
6
+ import PublicChannel from '../../../components/UI/svgs/Icons/Contents/PublicChannel';
6
7
  import { FunctionTypeVoidToVoid } from '../../../../CommonTypes/BaseViewModel';
7
8
  import ActiveButton from '../../../components/UI/Buttons/ActiveButton/ActiveButton';
8
9
 
@@ -13,57 +14,62 @@ type CreateDialogProps = {
13
14
  createGroupDialogOnTouch: FunctionTypeVoidToVoid;
14
15
  createPublicDialogOnClick: FunctionTypeVoidToVoid;
15
16
  createPublicDialogOnTouch: FunctionTypeVoidToVoid;
17
+ allowPublicDialogCreation: boolean;
16
18
  };
17
- // eslint-disable-next-line react/function-component-definition,@typescript-eslint/no-unused-vars
19
+
20
+ // eslint-disable-next-line react/function-component-definition
18
21
  const CreateDialog: React.FC<CreateDialogProps> = ({
19
22
  createPrivateDialogOnClick,
20
23
  createPrivateDialogOnTouch,
21
24
  createGroupDialogOnClick,
22
25
  createGroupDialogOnTouch,
23
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
26
  createPublicDialogOnClick,
25
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
27
  createPublicDialogOnTouch,
28
+ allowPublicDialogCreation = false,
27
29
  }) => {
28
30
  return (
29
- <ColumnContainer gapBetweenItem="8px">
30
- <ActiveButton
31
- content={
32
- <div className="item-type-dialog">
33
- <div className="item-type-dialog-icon">
34
- <Chat width="24" height="24" applyZoom />
31
+ <div className="create-dialog-container">
32
+ <ColumnContainer gapBetweenItem="8px">
33
+ <ActiveButton
34
+ content={
35
+ <div className="item-type-dialog">
36
+ <div className="item-type-dialog-icon">
37
+ <Chat width="24" height="24" applyZoom />
38
+ </div>
39
+ <div className="item-type-dialog-name">Private</div>
35
40
  </div>
36
- <div className="item-type-dialog-name">Private</div>
37
- </div>
38
- }
39
- clickAction={createPrivateDialogOnClick}
40
- touchAction={createPrivateDialogOnTouch}
41
- />
42
- <ActiveButton
43
- content={
44
- <div className="item-type-dialog">
45
- <div className="item-type-dialog-icon">
46
- <GroupChat width="32" height="32" applyZoom />
41
+ }
42
+ clickAction={createPrivateDialogOnClick}
43
+ touchAction={createPrivateDialogOnTouch}
44
+ />
45
+ <ActiveButton
46
+ content={
47
+ <div className="item-type-dialog">
48
+ <div className="item-type-dialog-icon">
49
+ <GroupChat width="32" height="32" applyZoom />
50
+ </div>
51
+ <div className="item-type-dialog-name">Group</div>
47
52
  </div>
48
- <div className="item-type-dialog-name">Group</div>
49
- </div>
50
- }
51
- clickAction={createGroupDialogOnClick}
52
- touchAction={createGroupDialogOnTouch}
53
- />
54
- {/* <ActiveButton */}
55
- {/* content={ */}
56
- {/* <div className="item-type-dialog"> */}
57
- {/* <div className="item-type-dialog-icon"> */}
58
- {/* <PublicChannel width="32" height="32" applyZoom /> */}
59
- {/* </div> */}
60
- {/* <div className="item-type-dialog-name">Public</div> */}
61
- {/* </div> */}
62
- {/* } */}
63
- {/* clickAction={createPublicDialogOnClick} */}
64
- {/* touchAction={createPublicDialogOnTouch} */}
65
- {/* /> */}
66
- </ColumnContainer>
53
+ }
54
+ clickAction={createGroupDialogOnClick}
55
+ touchAction={createGroupDialogOnTouch}
56
+ />
57
+ {allowPublicDialogCreation && (
58
+ <ActiveButton
59
+ content={
60
+ <div className="item-type-dialog">
61
+ <div className="item-type-dialog-icon">
62
+ <PublicChannel width="32" height="32" applyZoom />
63
+ </div>
64
+ <div className="item-type-dialog-name">Public</div>
65
+ </div>
66
+ }
67
+ clickAction={createPublicDialogOnClick}
68
+ touchAction={createPublicDialogOnTouch}
69
+ />
70
+ )}
71
+ </ColumnContainer>
72
+ </div>
67
73
  );
68
74
  };
69
75
 
@@ -39,6 +39,8 @@ const CreateNewDialogFlow: React.FC<CreateNewDialogFlowProps> = ({
39
39
  const [uidAvatar, setUidAvatar] = React.useState<string | undefined>(
40
40
  undefined,
41
41
  );
42
+ const { allowPublicDialogCreation } =
43
+ currentContext.InitParams.qbConfig.appConfig;
42
44
 
43
45
  useEffect(() => {
44
46
  if (
@@ -76,6 +78,7 @@ const CreateNewDialogFlow: React.FC<CreateNewDialogFlowProps> = ({
76
78
  });
77
79
  } else {
78
80
  setUidAvatar('null');
81
+ setNumStepToCreate(inviteUsers);
79
82
  }
80
83
  } else {
81
84
  setNumStepToCreate(inviteUsers);
@@ -123,7 +126,7 @@ const CreateNewDialogFlow: React.FC<CreateNewDialogFlowProps> = ({
123
126
  };
124
127
 
125
128
  return (
126
- <div>
129
+ <>
127
130
  <div
128
131
  style={{
129
132
  position: 'absolute',
@@ -138,6 +141,7 @@ const CreateNewDialogFlow: React.FC<CreateNewDialogFlowProps> = ({
138
141
  />
139
142
  {stepToCreate === setUpDialogType && (
140
143
  <CreateDialog
144
+ allowPublicDialogCreation={allowPublicDialogCreation || false}
141
145
  createPrivateDialogOnClick={() => {
142
146
  setSelectedDialogType(DialogType.private);
143
147
  }}
@@ -184,7 +188,7 @@ const CreateNewDialogFlow: React.FC<CreateNewDialogFlowProps> = ({
184
188
  idOwnerDialog={remoteDataSourceMock.authInformation!.userId.toString()}
185
189
  />
186
190
  )}
187
- </div>
191
+ </>
188
192
  );
189
193
  };
190
194
 
@@ -15,6 +15,10 @@ $create-dialog-container-height: 412px;
15
15
  justify-content: flex-start;
16
16
  align-items: flex-start;
17
17
 
18
+ .disabled {
19
+ color: var(--secondary-text);
20
+ }
21
+
18
22
  &--add-members-container {
19
23
  min-height: $container-height;
20
24
  max-height: $container-height;
@@ -37,7 +41,6 @@ $create-dialog-container-height: 412px;
37
41
 
38
42
  &__inf {
39
43
  min-height: 20px;
40
- font-family: 'Roboto';
41
44
  font-style: normal;
42
45
  font-weight: 500;
43
46
  font-size: 14px;
@@ -70,7 +73,6 @@ $create-dialog-container-height: 412px;
70
73
  padding: 0px;
71
74
  gap: 16px;
72
75
 
73
- //width: 332px;
74
76
  width: 100%;
75
77
  height: 100px;
76
78
  }
@@ -93,7 +95,6 @@ $create-dialog-container-height: 412px;
93
95
  text-align: center;
94
96
  padding: 8px;
95
97
  width: 268px;
96
- // width: 100%;
97
98
  height: 44px;
98
99
 
99
100
  border: 1px solid #90979f;
@@ -108,7 +109,6 @@ $create-dialog-container-height: 412px;
108
109
  margin-left: 6px;
109
110
  margin-right: 6px;
110
111
 
111
- font-family: 'Roboto';
112
112
  font-style: normal;
113
113
  font-weight: 400;
114
114
  font-size: 16px;
@@ -136,12 +136,8 @@ $create-dialog-container-height: 412px;
136
136
  }
137
137
 
138
138
  &--btn-container {
139
- min-height: 32px;
140
139
  max-height: 32px;
141
140
  height: 32px;
142
- //min-width: $container-width;
143
- //max-width: $container-width;
144
- //width: $container-width;
145
141
  width: 100%;
146
142
  min-height: 34px;
147
143
  margin-top: 24px;
@@ -152,8 +148,6 @@ $create-dialog-container-height: 412px;
152
148
  flex-wrap: nowrap;
153
149
  justify-content: flex-end;
154
150
  align-items: flex-end;
155
-
156
- //border: 2px solid blue;
157
151
  }
158
152
 
159
153
  &-loader {
@@ -162,32 +156,9 @@ $create-dialog-container-height: 412px;
162
156
  }
163
157
  .filtered-text-field{
164
158
  width: 100%;
165
- //margin: 16px;
166
- //padding: 8px;
167
-
168
159
  background-color: var(--main-background);
169
160
  color: var(--secondary-text);
170
161
 
171
- //input {
172
- // color: var(--secondary-text);
173
- // background-color: var(--main-background);
174
- // margin-left: 6px;
175
- // margin-right: 6px;
176
- //
177
- // font-family: 'Roboto';
178
- // font-style: normal;
179
- // font-weight: 400;
180
- // font-size: 16px;
181
- // line-height: 24px;
182
- //
183
- // display: flex;
184
- // align-items: center;
185
- // letter-spacing: 0.15px;
186
- //
187
- // border: none;
188
- // outline: none;
189
- //}
190
-
191
162
  &__icon {
192
163
  width: 24px;
193
164
  height: 24px;
@@ -1,5 +1,6 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
2
  import './InviteMembers.scss';
3
+ import cn from 'classnames';
3
4
  import ColumnContainer from '../../components/containers/ColumnContainer/ColumnContainer';
4
5
  import RowRightContainer from '../../components/containers/RowRightContainer/RowRightContainer';
5
6
  import MainButton, {
@@ -64,6 +65,11 @@ const InviteMembers: React.FC<InviteMembersProps> = ({
64
65
  userViewModel.getUsers(new Pagination(0, userPerPage));
65
66
  }, []);
66
67
 
68
+ useEffect(() => {
69
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define,no-use-before-define
70
+ setCountSelected(getUsersForIncludeInDialog().length);
71
+ }, [Object.entries(selectedItems).length]);
72
+
67
73
  const fetchMoreData = () => {
68
74
  if (userViewModel.pagination.hasNextPage()) {
69
75
  const newPagination = userViewModel.pagination;
@@ -133,13 +139,19 @@ const InviteMembers: React.FC<InviteMembersProps> = ({
133
139
 
134
140
  const handleUserListItemChange = (userId: number, value: boolean) => {
135
141
  setSelectedItems((prevState) => {
136
- return {
142
+ const updatedState = {
137
143
  ...prevState,
138
144
  [userId]: { isChecked: value, userid: userId },
139
145
  };
140
- });
141
146
 
142
- setCountSelected(getUsersForIncludeInDialog().length);
147
+ Object.keys(updatedState).forEach((key) => {
148
+ if (!updatedState[Number(key)].isChecked) {
149
+ delete updatedState[Number(key)];
150
+ }
151
+ });
152
+
153
+ return updatedState;
154
+ });
143
155
  };
144
156
 
145
157
  const [userNameForFilter, setUserNameForFilter] = useState<string>('');
@@ -187,7 +199,14 @@ const InviteMembers: React.FC<InviteMembersProps> = ({
187
199
  setUserNameForFilter(value);
188
200
  }}
189
201
  />
190
- <div className="container-invite-members--add-members-container--wrapper__inf">
202
+ <div
203
+ className={cn(
204
+ 'container-invite-members--add-members-container--wrapper__inf',
205
+ {
206
+ disabled: countSelectedItems < 1,
207
+ },
208
+ )}
209
+ >
191
210
  {countSelectedItems} selected
192
211
  </div>
193
212
  <div className="container-invite-members--add-members-container--wrapper__members">
@@ -206,6 +206,14 @@
206
206
  border-width: 0 0 1px 0;
207
207
  }
208
208
 
209
+ .dialog-preview-container-context-menu {
210
+ svg {
211
+ fill: var(--tertiary-elements);
212
+ width: 24px;
213
+ height: 24px;
214
+ }
215
+ }
216
+
209
217
 
210
218
 
211
219
 
@@ -178,6 +178,7 @@ const PreviewDialog: React.FC<PreviewDialogsProps> = ({
178
178
  if (
179
179
  messageParts &&
180
180
  messageParts.length > 0 &&
181
+ messageParts[3] &&
181
182
  messageParts[3].includes('image')
182
183
  ) {
183
184
  const fileUid: string = messageParts[2];
@@ -256,22 +257,22 @@ const PreviewDialog: React.FC<PreviewDialogsProps> = ({
256
257
  if (messageContentParts && messageContentParts.length > 0) {
257
258
  const [, fileName, , type] = messageContentParts;
258
259
 
259
- if (type.includes('audio')) {
260
+ if (type && type.includes('audio')) {
260
261
  return (
261
262
  <PreviewFileMessage type="audio" name={trimFileName(fileName)} />
262
263
  );
263
264
  }
264
- if (type.includes('video')) {
265
+ if (type && type.includes('video')) {
265
266
  return (
266
267
  <PreviewFileMessage type="video" name={trimFileName(fileName)} />
267
268
  );
268
269
  }
269
- if (type.includes('image')) {
270
+ if (type && type.includes('image')) {
270
271
  return (
271
272
  <PreviewFileMessage name={trimFileName(fileName)} src={fileUrl} />
272
273
  );
273
274
  }
274
- if (fileName.length > 0 && fileName.includes('.')) {
275
+ if (fileName && fileName.length > 0 && fileName.includes('.')) {
275
276
  return <PreviewFileMessage name={trimFileName(fileName)} />;
276
277
  }
277
278
 
@@ -318,7 +319,9 @@ const PreviewDialog: React.FC<PreviewDialogsProps> = ({
318
319
  }}
319
320
  placement="left"
320
321
  >
321
- <MoreSvg />
322
+ <div className="dialog-preview-container-context-menu">
323
+ <MoreSvg className="" />
324
+ </div>
322
325
  </Dropdown>
323
326
  }
324
327
  onClick={() => {
@@ -13,15 +13,13 @@
13
13
  flex: none;
14
14
  order: 1;
15
15
  flex-grow: 0;
16
-
17
- font-family: 'Roboto';
18
16
  font-style: normal;
19
- font-weight: 700;
17
+ font-weight: 500;
20
18
  font-size: 14px;
21
19
  line-height: 16px;
22
20
  letter-spacing: 0.4px;
23
21
 
24
- color: var(--main-background);
22
+ color: var(--system);
25
23
 
26
24
  border: none;
27
25
  outline: none;
@@ -41,9 +39,8 @@
41
39
  flex: none;
42
40
  order: 1;
43
41
  flex-grow: 0;
44
- font-family: 'Roboto';
45
42
  font-style: normal;
46
- font-weight: 700;
43
+ font-weight: 500;
47
44
  font-size: 14px;
48
45
  line-height: 16px;
49
46
  letter-spacing: 0.4px;
@@ -69,9 +66,8 @@
69
66
  order: 0;
70
67
  flex-grow: 0;
71
68
 
72
- font-family: 'Roboto';
73
69
  font-style: normal;
74
- font-weight: 700;
70
+ font-weight: 500;
75
71
  font-size: 14px;
76
72
  line-height: 16px;
77
73
  letter-spacing: 0.4px;
@@ -90,9 +86,8 @@
90
86
  flex: none;
91
87
  order: 1;
92
88
  flex-grow: 0;
93
- font-family: 'Roboto';
94
89
  font-style: normal;
95
- font-weight: 700;
90
+ font-weight: 500;
96
91
  font-size: 14px;
97
92
  line-height: 16px;
98
93
  letter-spacing: 0.4px;
@@ -4,8 +4,6 @@ $error-container-error-action-color: var(--main-elements);
4
4
  $error-container-divider: var(--divider);
5
5
 
6
6
  .error-container-wrapper {
7
- // padding-top: 9px;
8
- // padding-bottom: 12px;
9
7
  border: 1px solid $error-container-divider;
10
8
  }
11
9
 
@@ -17,7 +15,6 @@ $error-container-divider: var(--divider);
17
15
  margin: 0 auto;
18
16
  justify-content: center;
19
17
  align-items: center;
20
- // border: 1px solid green;
21
18
  gap: 16px;
22
19
  background-color: $error-container-background-color;
23
20
  &__error-icon {
@@ -35,7 +32,6 @@ $error-container-divider: var(--divider);
35
32
  }
36
33
  &__error-message {
37
34
  min-height: 24px;
38
- font-family: 'Roboto';
39
35
  font-style: normal;
40
36
  font-weight: 400;
41
37
  font-size: 16px;
@@ -63,7 +59,6 @@ $error-container-divider: var(--divider);
63
59
  }
64
60
  &__refresh-text {
65
61
  color: $error-container-error-action-color;
66
- font-family: 'Roboto';
67
62
  font-style: normal;
68
63
  font-weight: 700;
69
64
  font-size: 14px;
@@ -1,16 +1,7 @@
1
1
  // $column-container-width: 320px;
2
2
  $column-container-width: var(--max-width-dialog-list);
3
3
  .column-container{
4
- width: $column-container-width; // artan changed 12.01.2024
5
- // width: 100%;
4
+ width: $column-container-width;
6
5
  display: flex;
7
6
  flex-flow: column nowrap;
8
7
  }
9
- // artan changed 12.01.2024
10
- //@media only screen and (max-width: var(--min-width-screen-desktop)) {
11
- // .column-container{
12
- // width: 100%;
13
- // display: flex;
14
- // flex-flow: column nowrap;
15
- // }
16
- //}
@@ -15,23 +15,26 @@ strong {
15
15
  /* ---------- LOGIN ---------- */
16
16
 
17
17
  #login {
18
- border: 3px solid #6c38cc;
19
18
  margin: 50px auto;
20
19
  width: 100%;
21
20
  }
22
21
 
22
+ form {
23
+ display: flex;
24
+ flex-flow: column;
25
+ }
26
+
23
27
  form fieldset input[type="text"],
24
28
  input[type="password"] {
25
29
  appearance: none;
26
30
  background: #e5e5e5;
27
- border: none;
28
31
  border-radius: 3px;
29
32
  color: #5a5656;
30
33
  font-family: inherit;
31
34
  font-size: 14px;
32
35
  height: 50px;
33
36
  outline: none;
34
- padding: 0px 10px;
37
+ padding: 0;
35
38
  width: 100%;
36
39
  border: 1px solid #008dde;
37
40
  margin: 1px;
@@ -93,14 +93,6 @@ const initDataContext: QBDataContextType = {
93
93
  CONNECTION_REPOSITORY: initialValues.CONNECTION_REPOSITORY,
94
94
  EVENT_MESSAGE_REPOSITORY: initialEvent.EVENT_MESSAGE_REPOSITORY,
95
95
  SYNC_DIALOGS_USE_CASE: initialSync.SYNC_DIALOGS_USE_CASE,
96
- // SYNC_DIALOGS_USE_CASE: new SyncDialogsUseCase(
97
- // new DialogsRepository(
98
- // initialValues.LOCAL_DATA_SOURCE,
99
- // initialValues.REMOTE_DATA_SOURCE,
100
- // ),
101
- // initialValues.CONNECTION_REPOSITORY,
102
- // initialEvent.EVENT_MESSAGE_REPOSITORY,
103
- // ),
104
96
  },
105
97
  InitParams: {
106
98
  accountData: DefaultConfigurations.getDefaultQBConfig().credentials,
@@ -161,9 +153,7 @@ const initDataContext: QBDataContextType = {
161
153
  initialValues.REMOTE_DATA_SOURCE.setAuthProcessedSuccessed();
162
154
  //
163
155
  initialValues.REMOTE_DATA_SOURCE.initEventsHandlers();
164
- //
165
- console.log('UI Kit authorize event handler has initialized');
166
- //
156
+
167
157
  await initialValues.CONNECTION_REPOSITORY.initializeStates();
168
158
  if (!initialValues.CONNECTION_REPOSITORY.needInit) {
169
159
  initialValues.CONNECTION_REPOSITORY.keepALiveChatConnection();
@@ -202,37 +192,15 @@ function QuickBloxUIKitProvider({
202
192
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
203
193
  maxFileSize,
204
194
  }: QuickBloxProviderProps) {
205
- console.log(
206
- 'QuickBloxUIKitProvider with account data: ',
207
- JSON.stringify(accountData),
208
- );
209
- console.log(
210
- 'QuickBloxUIKitProvider with login data: ',
211
- JSON.stringify(loginData),
212
- );
213
195
  const initStorageState = {
214
196
  LOCAL_DATA_SOURCE: initialValues.LOCAL_DATA_SOURCE, // localstorage or session storage
215
197
  REMOTE_DATA_SOURCE: initialValues.REMOTE_DATA_SOURCE, // QB instances
216
198
  CONNECTION_REPOSITORY: initialValues.CONNECTION_REPOSITORY,
217
199
  EVENT_MESSAGE_REPOSITORY: initialEvent.EVENT_MESSAGE_REPOSITORY,
218
200
  SYNC_DIALOGS_USE_CASE: initialSync.SYNC_DIALOGS_USE_CASE,
219
- // SYNC_DIALOGS_USE_CASE: new SyncDialogsUseCase(
220
- // new DialogsRepository(
221
- // initialValues.LOCAL_DATA_SOURCE,
222
- // initialValues.REMOTE_DATA_SOURCE,
223
- // ),
224
- // initialValues.CONNECTION_REPOSITORY,
225
- // initialEvent.EVENT_MESSAGE_REPOSITORY,
226
- // ),
227
201
  };
228
-
229
- console.log(
230
- 'QuickBloxUIKitProvider with storage init data: ',
231
- JSON.stringify(initStorageState),
232
- );
233
202
  const [storage, setStorage] = React.useState<QBDataStorage>(initStorageState);
234
203
 
235
- console.log('have storage useState completed');
236
204
  const updateStorage = (dataStorage: QBDataStorage) => {
237
205
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
238
206
  setStorage(dataStorage);
@@ -9,7 +9,7 @@ $qb-dark-color-divider: #FFFFFF;
9
9
  $qb-dark-color-font: #3978FC;
10
10
 
11
11
  $background-overlay-light: rgba(19, 29, 40, .80);
12
- $background-overlay-dark: rgba(144, 151, 159, .80);
12
+ $background-overlay-dark: rgba(19, 29, 40, .80);
13
13
  $primary-50: #E7EFFF;
14
14
  $primary-100: #C4D7FE;
15
15
  $primary-200: #9CBCFE;
@@ -4,7 +4,7 @@
4
4
  html[data-theme='dark'] {
5
5
  --primary: #{$primary-500};
6
6
  --color-background: #{$secondary-900};
7
- --color-background-modal: #{$secondary-800};
7
+ --color-background-modal: #{$background-overlay-dark};
8
8
  --color-background-overlay: #{$secondary-900};
9
9
  --color-divider: #{$secondary-400};
10
10
  --color-font: #{$primary-a-100};
@@ -15,11 +15,11 @@ html[data-theme='dark'] {
15
15
 
16
16
  --color-background-info: #{$primary-500};
17
17
  --color-border-active: #{$secondary-200};
18
- --tertiary-elements: #{$background-overlay-dark};
18
+ --tertiary-elements: #{$secondary-300};
19
19
  --main-elements: #{$primary-300};
20
20
  --secondary-elements: #{$primary-a-100};
21
21
  --input-elements: #{$secondary-200};
22
- --disabled-elements: #{$secondary-300};
22
+ --disabled-elements: #{$secondary-100};
23
23
  --field-border: #{$secondary-200};
24
24
  --main-text: #{$primary-a-100};
25
25
  --secondary-text: #{$secondary-200};
@@ -29,9 +29,10 @@ html[data-theme='dark'] {
29
29
  --incoming-background: #{$secondary-400};
30
30
  --outgoing-background: #{$primary-500};
31
31
  --dropdown-background: #{$secondary-400};
32
- --chat-input: #{$secondary-800};
32
+ --chat-input: #{$secondary-400};
33
33
  --divider: #{$secondary-400};
34
34
  --error: #{$error-300};
35
35
  --error-secondary: #{$error-100};
36
36
  --hightlight: #{$highlight};
37
+ --system: #{$primary-a-100};
37
38
  }
@@ -3,7 +3,7 @@
3
3
  :root {
4
4
  --primary: #{$primary-500};
5
5
  --color-background: #{$primary-a-100};
6
- --color-background-modal: #{$primary-100};
6
+ --color-background-modal: #{$background-overlay-light};
7
7
  --color-background-overlay: #{$secondary-900};
8
8
  --color-divider: #{$primary-50};
9
9
  --color-font: #{$secondary-900};
@@ -30,9 +30,10 @@
30
30
  --incoming-background: #{$secondary-50};
31
31
  --outgoing-background: #{$primary-50};
32
32
  --dropdown-background: #{$primary-a-100};
33
- --chat-input: #{$primary-a-200};
33
+ --chat-input: #{$secondary-50};
34
34
  --divider: #{$primary-50};
35
35
  --error: #{$error-500};
36
36
  --error-secondary: #{$error-200};
37
37
  --hightlight: #{$highlight};
38
+ --system: #{$primary-a-100};
38
39
  }
@@ -13,11 +13,9 @@
13
13
  color: var(--secondary-text);
14
14
 
15
15
  svg {
16
- height: 100%;
17
- width: 100%;
18
-
19
- fill: var(--secondary-text);
20
- padding: 10px;
16
+ height: 26px;
17
+ width: 26px;
18
+ fill: var(--tertiary-elements);
21
19
  }
22
20
 
23
21
  &__image {
@@ -44,6 +42,11 @@
44
42
  &--lg {
45
43
  width: 56px;
46
44
  height: 56px;
45
+
46
+ svg {
47
+ height: 33px;
48
+ width: 33px;
49
+ }
47
50
  }
48
51
 
49
52
  &--xl {
@@ -1,4 +1,5 @@
1
- import { ReactElement } from 'react';
1
+ import React, { ReactElement } from 'react';
2
+
2
3
  import cn from 'classnames';
3
4
  import { UserSvg } from '../../icons';
4
5
  import './Avatar.scss';
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import cn from 'classnames';
2
3
 
3
4
  import './Badge.scss';