agx-chat-web 1.2.0 → 1.2.2

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 (198) hide show
  1. package/README.md +49 -49
  2. package/package.json +91 -91
  3. package/src/__tests__/app/Messenger/classes/slaCalculations.spec.ts +122 -122
  4. package/src/app/ChatProvider/ChatProvider.tsx +20 -20
  5. package/src/app/Messenger/classes/slaCalculations.ts +197 -197
  6. package/src/app/Messenger/components/ChatButton/ChatButton.tsx +64 -64
  7. package/src/app/Messenger/components/ChatTabs/ChatTabs.less +18 -18
  8. package/src/app/Messenger/components/ChatTabs/ChatTabs.tsx +32 -32
  9. package/src/app/Messenger/components/DocMessage/DocMessage.less +71 -71
  10. package/src/app/Messenger/components/DocMessage/DocMessage.tsx +50 -50
  11. package/src/app/Messenger/components/ImagesContainer/ImagesContainer.less +79 -79
  12. package/src/app/Messenger/components/ImagesContainer/ImagesContainer.tsx +51 -51
  13. package/src/app/Messenger/components/IncomingMessage/IncomingMessage.tsx +170 -170
  14. package/src/app/Messenger/components/InfiniteScroll/InfiniteScroll.tsx +80 -80
  15. package/src/app/Messenger/components/InputFile/InputFile.tsx +147 -147
  16. package/src/app/Messenger/components/InputFile/inputFile.less +59 -59
  17. package/src/app/Messenger/components/MessageBallon/MessageBalloon.tsx +100 -100
  18. package/src/app/Messenger/components/MessengerAvatar/MessengerAvatar.tsx +29 -29
  19. package/src/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.tsx +62 -62
  20. package/src/app/Messenger/components/RenderFileIcon/RenderFileIcon.tsx +40 -40
  21. package/src/app/Messenger/components/SearchInput/SearchInput.less +45 -45
  22. package/src/app/Messenger/components/SearchInput/SearchInput.tsx +77 -77
  23. package/src/app/Messenger/components/Select/Select.less +22 -22
  24. package/src/app/Messenger/components/Select/Select.tsx +56 -56
  25. package/src/app/Messenger/components/SendMessageForm/SendMessageForm.tsx +254 -254
  26. package/src/app/Messenger/components/SenderMessages/SenderMessages.tsx +91 -91
  27. package/src/app/Messenger/components/SystemMessage/SystemMessage.tsx +25 -25
  28. package/src/app/Messenger/components/TextArea/TextArea.tsx +35 -35
  29. package/src/app/Messenger/components/TextArea/Textarea.less +22 -22
  30. package/src/app/Messenger/components/Tooltip/Tooltip.less +27 -27
  31. package/src/app/Messenger/components/Tooltip/Tooltip.tsx +17 -17
  32. package/src/app/Messenger/hooks/useConversations.tsx +143 -143
  33. package/src/app/Messenger/hooks/useMessages.tsx +49 -49
  34. package/src/app/Messenger/hooks/useThemes.tsx +14 -14
  35. package/src/app/Messenger/icons/AttachFileIcon.tsx +20 -20
  36. package/src/app/Messenger/icons/CSVFileIcon.tsx +26 -26
  37. package/src/app/Messenger/icons/CloseIcon.tsx +20 -20
  38. package/src/app/Messenger/icons/DOCFileIcon.tsx +54 -54
  39. package/src/app/Messenger/icons/DownloadMinimalistIcon.tsx +37 -37
  40. package/src/app/Messenger/icons/EmptyIcon.tsx +20 -20
  41. package/src/app/Messenger/icons/MP4FileIcon.tsx +26 -26
  42. package/src/app/Messenger/icons/MessageIcon.tsx +27 -27
  43. package/src/app/Messenger/icons/PDFFileIcon.tsx +54 -54
  44. package/src/app/Messenger/icons/ReadIcon.tsx +18 -18
  45. package/src/app/Messenger/icons/SearchIcon.tsx +20 -20
  46. package/src/app/Messenger/icons/TimerIcon.tsx +18 -18
  47. package/src/app/Messenger/icons/TrashIcon.tsx +21 -21
  48. package/src/app/Messenger/views/Messenger.less +623 -623
  49. package/src/app/Messenger/views/MessengerList.tsx +170 -170
  50. package/src/app/Messenger/views/MessengerListItem.tsx +178 -178
  51. package/src/app/Messenger/views/MessengerMessages.tsx +414 -414
  52. package/src/app/Messenger/views/NewFormChat.tsx +145 -145
  53. package/src/app/i18n/index.ts +36 -36
  54. package/src/app/i18n/locales/en.json +64 -64
  55. package/src/app/i18n/locales/pt.json +64 -64
  56. package/src/assets/right-arrow.svg +9 -9
  57. package/src/index.ts +23 -23
  58. package/src/react-app-env.d.ts +19 -19
  59. package/src/setupTests.ts +5 -5
  60. package/src/styles/abstracts/animations.less +8 -8
  61. package/src/styles/abstracts/mixins.less +5 -5
  62. package/src/styles/abstracts/variables.less +31 -31
  63. package/src/styles/base/base.less +6 -6
  64. package/src/styles/index.less +5 -5
  65. package/src/types.ts +174 -174
  66. package/dist/agx-chat.esm.js +0 -2
  67. package/dist/agx-chat.esm.js.map +0 -1
  68. package/dist/agx-chat.min.js +0 -2
  69. package/dist/agx-chat.min.js.map +0 -1
  70. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.d.ts +0 -1
  71. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.js +0 -46
  72. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.js.map +0 -1
  73. package/dist/esm/app/Messenger/classes/slaCalculations.d.ts +0 -30
  74. package/dist/esm/app/Messenger/classes/slaCalculations.js +0 -144
  75. package/dist/esm/app/Messenger/classes/slaCalculations.js.map +0 -1
  76. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.d.ts +0 -14
  77. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.js +0 -31
  78. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.js.map +0 -1
  79. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.d.ts +0 -10
  80. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.js +0 -15
  81. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.js.map +0 -1
  82. package/dist/esm/app/Messenger/components/DocMessage/DocMessage.d.ts +0 -5
  83. package/dist/esm/app/Messenger/components/DocMessage/DocMessage.js +0 -35
  84. package/dist/esm/app/Messenger/components/DocMessage/DocMessage.js.map +0 -1
  85. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.d.ts +0 -4
  86. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.js +0 -39
  87. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.js.map +0 -1
  88. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.d.ts +0 -7
  89. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js +0 -49
  90. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js.map +0 -1
  91. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.d.ts +0 -13
  92. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.js +0 -43
  93. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.js.map +0 -1
  94. package/dist/esm/app/Messenger/components/InputFile/InputFile.d.ts +0 -11
  95. package/dist/esm/app/Messenger/components/InputFile/InputFile.js +0 -72
  96. package/dist/esm/app/Messenger/components/InputFile/InputFile.js.map +0 -1
  97. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.d.ts +0 -9
  98. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.js +0 -34
  99. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.js.map +0 -1
  100. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.d.ts +0 -4
  101. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.js +0 -13
  102. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.js.map +0 -1
  103. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.d.ts +0 -41
  104. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.js +0 -40
  105. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.js.map +0 -1
  106. package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.d.ts +0 -6
  107. package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.js +0 -21
  108. package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.js.map +0 -1
  109. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.d.ts +0 -11
  110. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.js +0 -33
  111. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.js.map +0 -1
  112. package/dist/esm/app/Messenger/components/Select/Select.d.ts +0 -14
  113. package/dist/esm/app/Messenger/components/Select/Select.js +0 -16
  114. package/dist/esm/app/Messenger/components/Select/Select.js.map +0 -1
  115. package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.d.ts +0 -13
  116. package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.js +0 -119
  117. package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.js.map +0 -1
  118. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.d.ts +0 -4
  119. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js +0 -40
  120. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js.map +0 -1
  121. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.d.ts +0 -4
  122. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.js +0 -14
  123. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.js.map +0 -1
  124. package/dist/esm/app/Messenger/components/TextArea/TextArea.d.ts +0 -9
  125. package/dist/esm/app/Messenger/components/TextArea/TextArea.js +0 -14
  126. package/dist/esm/app/Messenger/components/TextArea/TextArea.js.map +0 -1
  127. package/dist/esm/app/Messenger/components/Tooltip/Tooltip.d.ts +0 -7
  128. package/dist/esm/app/Messenger/components/Tooltip/Tooltip.js +0 -9
  129. package/dist/esm/app/Messenger/components/Tooltip/Tooltip.js.map +0 -1
  130. package/dist/esm/app/Messenger/hooks/useConversations.d.ts +0 -21
  131. package/dist/esm/app/Messenger/hooks/useConversations.js +0 -105
  132. package/dist/esm/app/Messenger/hooks/useConversations.js.map +0 -1
  133. package/dist/esm/app/Messenger/hooks/useMessages.d.ts +0 -9
  134. package/dist/esm/app/Messenger/hooks/useMessages.js +0 -37
  135. package/dist/esm/app/Messenger/hooks/useMessages.js.map +0 -1
  136. package/dist/esm/app/Messenger/hooks/useThemes.d.ts +0 -32
  137. package/dist/esm/app/Messenger/hooks/useThemes.js +0 -11
  138. package/dist/esm/app/Messenger/hooks/useThemes.js.map +0 -1
  139. package/dist/esm/app/Messenger/icons/AttachFileIcon.d.ts +0 -4
  140. package/dist/esm/app/Messenger/icons/AttachFileIcon.js +0 -10
  141. package/dist/esm/app/Messenger/icons/AttachFileIcon.js.map +0 -1
  142. package/dist/esm/app/Messenger/icons/CloseIcon.d.ts +0 -2
  143. package/dist/esm/app/Messenger/icons/CloseIcon.js +0 -9
  144. package/dist/esm/app/Messenger/icons/CloseIcon.js.map +0 -1
  145. package/dist/esm/app/Messenger/icons/DOCFileIcon.d.ts +0 -4
  146. package/dist/esm/app/Messenger/icons/DOCFileIcon.js +0 -18
  147. package/dist/esm/app/Messenger/icons/DOCFileIcon.js.map +0 -1
  148. package/dist/esm/app/Messenger/icons/DownloadMinimalistIcon.d.ts +0 -7
  149. package/dist/esm/app/Messenger/icons/DownloadMinimalistIcon.js +0 -12
  150. package/dist/esm/app/Messenger/icons/DownloadMinimalistIcon.js.map +0 -1
  151. package/dist/esm/app/Messenger/icons/EmptyIcon.d.ts +0 -2
  152. package/dist/esm/app/Messenger/icons/EmptyIcon.js +0 -8
  153. package/dist/esm/app/Messenger/icons/EmptyIcon.js.map +0 -1
  154. package/dist/esm/app/Messenger/icons/MessageIcon.d.ts +0 -6
  155. package/dist/esm/app/Messenger/icons/MessageIcon.js +0 -12
  156. package/dist/esm/app/Messenger/icons/MessageIcon.js.map +0 -1
  157. package/dist/esm/app/Messenger/icons/PDFFileIcon.d.ts +0 -4
  158. package/dist/esm/app/Messenger/icons/PDFFileIcon.js +0 -18
  159. package/dist/esm/app/Messenger/icons/PDFFileIcon.js.map +0 -1
  160. package/dist/esm/app/Messenger/icons/ReadIcon.d.ts +0 -4
  161. package/dist/esm/app/Messenger/icons/ReadIcon.js +0 -7
  162. package/dist/esm/app/Messenger/icons/ReadIcon.js.map +0 -1
  163. package/dist/esm/app/Messenger/icons/SearchIcon.d.ts +0 -2
  164. package/dist/esm/app/Messenger/icons/SearchIcon.js +0 -8
  165. package/dist/esm/app/Messenger/icons/SearchIcon.js.map +0 -1
  166. package/dist/esm/app/Messenger/icons/TimerIcon.d.ts +0 -4
  167. package/dist/esm/app/Messenger/icons/TimerIcon.js +0 -7
  168. package/dist/esm/app/Messenger/icons/TimerIcon.js.map +0 -1
  169. package/dist/esm/app/Messenger/icons/TrashIcon.d.ts +0 -6
  170. package/dist/esm/app/Messenger/icons/TrashIcon.js +0 -7
  171. package/dist/esm/app/Messenger/icons/TrashIcon.js.map +0 -1
  172. package/dist/esm/app/Messenger/views/MessengerList.d.ts +0 -40
  173. package/dist/esm/app/Messenger/views/MessengerList.js +0 -46
  174. package/dist/esm/app/Messenger/views/MessengerList.js.map +0 -1
  175. package/dist/esm/app/Messenger/views/MessengerListItem.d.ts +0 -12
  176. package/dist/esm/app/Messenger/views/MessengerListItem.js +0 -99
  177. package/dist/esm/app/Messenger/views/MessengerListItem.js.map +0 -1
  178. package/dist/esm/app/Messenger/views/MessengerMessages.d.ts +0 -35
  179. package/dist/esm/app/Messenger/views/MessengerMessages.js +0 -181
  180. package/dist/esm/app/Messenger/views/MessengerMessages.js.map +0 -1
  181. package/dist/esm/app/Messenger/views/NewFormChat.d.ts +0 -13
  182. package/dist/esm/app/Messenger/views/NewFormChat.js +0 -68
  183. package/dist/esm/app/Messenger/views/NewFormChat.js.map +0 -1
  184. package/dist/esm/app/i18n/index.d.ts +0 -3
  185. package/dist/esm/app/i18n/index.js +0 -31
  186. package/dist/esm/app/i18n/index.js.map +0 -1
  187. package/dist/esm/app/i18n/locales/index.d.ts +0 -6
  188. package/dist/esm/app/i18n/locales/index.js +0 -7
  189. package/dist/esm/app/i18n/locales/index.js.map +0 -1
  190. package/dist/esm/index.d.ts +0 -10
  191. package/dist/esm/index.js +0 -11
  192. package/dist/esm/index.js.map +0 -1
  193. package/dist/esm/setupTests.d.ts +0 -1
  194. package/dist/esm/setupTests.js +0 -6
  195. package/dist/esm/setupTests.js.map +0 -1
  196. package/dist/esm/types.d.ts +0 -140
  197. package/dist/esm/types.js +0 -2
  198. package/dist/esm/types.js.map +0 -1
@@ -1,62 +1,62 @@
1
- import React, { createContext, ReactNode } from 'react'
2
-
3
- const defaultThemeVariables = {
4
- asideBg: '#eee',
5
- asideFontColor: 'var(--secondary-color)',
6
- messengerMessagesBg: '#eeeeee',
7
- headerAndSenderBg: '#232831',
8
- buttonPrimary: '#25D366',
9
- buttonPrimaryText: '#707070',
10
- buttonsDisabled: '#94989D',
11
- uploadFileIconColor: '#8696a0',
12
- messengerNotSelectedBg: '#DDDDDD',
13
- newChatFormBg: '',
14
- newChatFormRadius: '0 20px 20px 0',
15
- newChatFormTexts: '#000',
16
- newChatFormDeleteFileButton: '#DD4E4E',
17
- disclaimerPrimaryColor: '#4791FF',
18
- disclaimerSecondaryColor: '#4791FF',
19
- disclaimerTextColor: '#000',
20
- messengerSenderColor: '#00A73E',
21
- messengerIncomerColor: '#707070',
22
- messengerSystemColor: '#2A313A',
23
- borderColor: '#AAAAAA',
24
- inputBg: 'var(--secondary-color)',
25
- chatInputBorder: '',
26
- listItemHover: '',
27
- active: '',
28
- activeTabBorter: '#25D366',
29
- emptyMessagesFontColor: '#000',
30
- documentMessagesTextColor: '#fff',
31
- }
32
-
33
- type ThemeVariables = typeof defaultThemeVariables
34
-
35
- type ThemeContextContent = {
36
- theme: Partial<ThemeVariables>
37
- }
38
-
39
- export const MessageThemeContext = createContext<ThemeContextContent>(
40
- {} as unknown as ThemeContextContent
41
- )
42
-
43
- type Props = {
44
- children: ReactNode
45
- theme?: Partial<ThemeVariables>
46
- }
47
- const MessageThemeWrapper = ({
48
- children,
49
- theme = defaultThemeVariables,
50
- }: Props) => {
51
- const config = {
52
- theme,
53
- }
54
-
55
- return (
56
- <MessageThemeContext.Provider value={config}>
57
- {children}
58
- </MessageThemeContext.Provider>
59
- )
60
- }
61
-
62
- export default MessageThemeWrapper
1
+ import React, { createContext, ReactNode } from 'react'
2
+
3
+ const defaultThemeVariables = {
4
+ asideBg: '#eee',
5
+ asideFontColor: 'var(--secondary-color)',
6
+ messengerMessagesBg: '#eeeeee',
7
+ headerAndSenderBg: '#232831',
8
+ buttonPrimary: '#25D366',
9
+ buttonPrimaryText: '#707070',
10
+ buttonsDisabled: '#94989D',
11
+ uploadFileIconColor: '#8696a0',
12
+ messengerNotSelectedBg: '#DDDDDD',
13
+ newChatFormBg: '',
14
+ newChatFormRadius: '0 20px 20px 0',
15
+ newChatFormTexts: '#000',
16
+ newChatFormDeleteFileButton: '#DD4E4E',
17
+ disclaimerPrimaryColor: '#4791FF',
18
+ disclaimerSecondaryColor: '#4791FF',
19
+ disclaimerTextColor: '#000',
20
+ messengerSenderColor: '#00A73E',
21
+ messengerIncomerColor: '#707070',
22
+ messengerSystemColor: '#2A313A',
23
+ borderColor: '#AAAAAA',
24
+ inputBg: 'var(--secondary-color)',
25
+ chatInputBorder: '',
26
+ listItemHover: '',
27
+ active: '',
28
+ activeTabBorter: '#25D366',
29
+ emptyMessagesFontColor: '#000',
30
+ documentMessagesTextColor: '#fff',
31
+ }
32
+
33
+ type ThemeVariables = typeof defaultThemeVariables
34
+
35
+ type ThemeContextContent = {
36
+ theme: Partial<ThemeVariables>
37
+ }
38
+
39
+ export const MessageThemeContext = createContext<ThemeContextContent>(
40
+ {} as unknown as ThemeContextContent
41
+ )
42
+
43
+ type Props = {
44
+ children: ReactNode
45
+ theme?: Partial<ThemeVariables>
46
+ }
47
+ const MessageThemeWrapper = ({
48
+ children,
49
+ theme = defaultThemeVariables,
50
+ }: Props) => {
51
+ const config = {
52
+ theme,
53
+ }
54
+
55
+ return (
56
+ <MessageThemeContext.Provider value={config}>
57
+ {children}
58
+ </MessageThemeContext.Provider>
59
+ )
60
+ }
61
+
62
+ export default MessageThemeWrapper
@@ -1,40 +1,40 @@
1
- import React from 'react'
2
- import FileDoc from '../../icons/DOCFileIcon'
3
- import FilePdf from '../../icons/PDFFileIcon'
4
- import CSVFileIcon from '../../icons/CSVFileIcon'
5
- import MP4FileIcon from '../../icons/MP4FileIcon'
6
- import { useTranslation } from 'react-i18next'
7
-
8
- const RenderFileIcon = ({
9
- fileType,
10
- b64,
11
- }: {
12
- fileType?: string
13
- b64?: string
14
- }) => {
15
- const { t } = useTranslation('messengerMessages')
16
-
17
- if (fileType === 'application/pdf') {
18
- return <FilePdf width='40' height='40' />
19
- } else if (
20
- fileType === 'application/msword' ||
21
- fileType ===
22
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
23
- ) {
24
- return <FileDoc width='40' height='40' />
25
- } else if (fileType === 'text/csv') {
26
- return <CSVFileIcon width='40' height='40' />
27
- } else if (fileType === 'video/mp4') {
28
- return <MP4FileIcon width='40' height='40' />
29
- } else {
30
- return (
31
- <img
32
- alt={t('renderFileIcon.altImage')}
33
- src={b64}
34
- className='images-container__image'
35
- />
36
- )
37
- }
38
- }
39
-
40
- export default RenderFileIcon
1
+ import React from 'react'
2
+ import FileDoc from '../../icons/DOCFileIcon'
3
+ import FilePdf from '../../icons/PDFFileIcon'
4
+ import CSVFileIcon from '../../icons/CSVFileIcon'
5
+ import MP4FileIcon from '../../icons/MP4FileIcon'
6
+ import { useTranslation } from 'react-i18next'
7
+
8
+ const RenderFileIcon = ({
9
+ fileType,
10
+ b64,
11
+ }: {
12
+ fileType?: string
13
+ b64?: string
14
+ }) => {
15
+ const { t } = useTranslation('messengerMessages')
16
+
17
+ if (fileType === 'application/pdf') {
18
+ return <FilePdf width='40' height='40' />
19
+ } else if (
20
+ fileType === 'application/msword' ||
21
+ fileType ===
22
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
23
+ ) {
24
+ return <FileDoc width='40' height='40' />
25
+ } else if (fileType === 'text/csv') {
26
+ return <CSVFileIcon width='40' height='40' />
27
+ } else if (fileType === 'video/mp4') {
28
+ return <MP4FileIcon width='40' height='40' />
29
+ } else {
30
+ return (
31
+ <img
32
+ alt={t('renderFileIcon.altImage')}
33
+ src={b64}
34
+ className='images-container__image'
35
+ />
36
+ )
37
+ }
38
+ }
39
+
40
+ export default RenderFileIcon
@@ -1,45 +1,45 @@
1
- .input-search {
2
- display: flex;
3
- align-items: center;
4
- justify-content: center;
5
- width: 100%;
6
- margin: 1rem 0;
7
- position: relative;
8
-
9
- &__select {
10
- border-radius: 30px 0 0 30px;
11
- padding: 10px;
12
- background: transparent;
13
- margin-left: 1rem;
14
- width: 30%;
15
- }
16
-
17
- &__option {
18
- color: black;
19
- }
20
-
21
- &__search {
22
- width: 70%;
23
- margin-right: 1rem;
24
- border-radius: 0 30px 30px 0;
25
- padding: 9px;
26
- color: var(--secondary-color);
27
- border: var(--secondary-color) 1px solid;
28
- background: transparent;
29
- position: relative;
30
-
31
- &::placeholder {
32
- color: var(--secondary-color);
33
- opacity: 60%;
34
- }
35
- }
36
-
37
- &__icon {
38
- border: none;
39
- background: transparent;
40
- position: absolute;
41
- right: 2rem;
42
- display: flex;
43
- cursor: pointer;
44
- }
45
- }
1
+ .input-search {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ width: 100%;
6
+ margin: 1rem 0;
7
+ position: relative;
8
+
9
+ &__select {
10
+ border-radius: 30px 0 0 30px;
11
+ padding: 10px;
12
+ background: transparent;
13
+ margin-left: 1rem;
14
+ width: 30%;
15
+ }
16
+
17
+ &__option {
18
+ color: black;
19
+ }
20
+
21
+ &__search {
22
+ width: 70%;
23
+ margin-right: 1rem;
24
+ border-radius: 0 30px 30px 0;
25
+ padding: 9px;
26
+ color: var(--secondary-color);
27
+ border: var(--secondary-color) 1px solid;
28
+ background: transparent;
29
+ position: relative;
30
+
31
+ &::placeholder {
32
+ color: var(--secondary-color);
33
+ opacity: 60%;
34
+ }
35
+ }
36
+
37
+ &__icon {
38
+ border: none;
39
+ background: transparent;
40
+ position: absolute;
41
+ right: 2rem;
42
+ display: flex;
43
+ cursor: pointer;
44
+ }
45
+ }
@@ -1,77 +1,77 @@
1
- import SearchIcon from '../../icons/SearchIcon'
2
- import React, { useState } from 'react'
3
- import useTheme from '../../hooks/useThemes'
4
- import { useTranslation } from 'react-i18next'
5
-
6
- interface IProps {
7
- searchChat: (value: string, key: string) => void
8
- searchKeys: { label: string; value: string }[]
9
- loadingSearch: boolean
10
- }
11
-
12
- function SearchInput ({ searchChat, searchKeys, loadingSearch }: IProps) {
13
- const { t } = useTranslation('messengerList')
14
- const [searchKey, setSearchKey] = useState<string>(searchKeys[0].value)
15
- const [searchValue, setSearchValue] = useState<string>('')
16
- const { theme } = useTheme()
17
-
18
- const onSearch = (event: React.ChangeEvent<HTMLInputElement>) => {
19
- setSearchValue(event.target.value)
20
- }
21
-
22
- const handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {
23
- if (event.key === 'Enter') {
24
- searchChat(searchValue, searchKey)
25
- }
26
- }
27
-
28
- return (
29
- <div className='input-search'>
30
- <select
31
- className='input-search__select'
32
- onChange={(e) => setSearchKey(e.target.value)}
33
- style={{
34
- color: theme.asideFontColor,
35
- border: `${theme.asideFontColor} 1px solid`,
36
- }}
37
- >
38
- {searchKeys.map((item, index) => (
39
- <option
40
- className='input-search__option'
41
- key={index}
42
- value={item.value}
43
- >
44
- {item.label}
45
- </option>
46
- ))}
47
- </select>
48
-
49
- <input
50
- className='input-search__search'
51
- placeholder={t('searchInput.placeholder')}
52
- onChange={onSearch}
53
- onKeyDown={handleKeyPress}
54
- style={{
55
- color: theme.asideFontColor,
56
- border: `${theme.asideFontColor} 1px solid`,
57
- borderLeft: 0,
58
- }}
59
- />
60
-
61
- <button
62
- className='input-search__icon'
63
- onClick={() => searchChat(searchValue, searchKey)}
64
- >
65
- {loadingSearch ? (
66
- <div className='messenger__messages-loading'>
67
- <div className='messenger__messages-loading--loader' />
68
- </div>
69
- ) : (
70
- <SearchIcon />
71
- )}
72
- </button>
73
- </div>
74
- )
75
- }
76
-
77
- export default SearchInput
1
+ import SearchIcon from '../../icons/SearchIcon'
2
+ import React, { useState } from 'react'
3
+ import useTheme from '../../hooks/useThemes'
4
+ import { useTranslation } from 'react-i18next'
5
+
6
+ interface IProps {
7
+ searchChat: (value: string, key: string) => void
8
+ searchKeys: { label: string; value: string }[]
9
+ loadingSearch: boolean
10
+ }
11
+
12
+ function SearchInput ({ searchChat, searchKeys, loadingSearch }: IProps) {
13
+ const { t } = useTranslation('messengerList')
14
+ const [searchKey, setSearchKey] = useState<string>(searchKeys[0].value)
15
+ const [searchValue, setSearchValue] = useState<string>('')
16
+ const { theme } = useTheme()
17
+
18
+ const onSearch = (event: React.ChangeEvent<HTMLInputElement>) => {
19
+ setSearchValue(event.target.value)
20
+ }
21
+
22
+ const handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {
23
+ if (event.key === 'Enter') {
24
+ searchChat(searchValue, searchKey)
25
+ }
26
+ }
27
+
28
+ return (
29
+ <div className='input-search'>
30
+ <select
31
+ className='input-search__select'
32
+ onChange={(e) => setSearchKey(e.target.value)}
33
+ style={{
34
+ color: theme.asideFontColor,
35
+ border: `${theme.asideFontColor} 1px solid`,
36
+ }}
37
+ >
38
+ {searchKeys.map((item, index) => (
39
+ <option
40
+ className='input-search__option'
41
+ key={index}
42
+ value={item.value}
43
+ >
44
+ {item.label}
45
+ </option>
46
+ ))}
47
+ </select>
48
+
49
+ <input
50
+ className='input-search__search'
51
+ placeholder={t('searchInput.placeholder')}
52
+ onChange={onSearch}
53
+ onKeyDown={handleKeyPress}
54
+ style={{
55
+ color: theme.asideFontColor,
56
+ border: `${theme.asideFontColor} 1px solid`,
57
+ borderLeft: 0,
58
+ }}
59
+ />
60
+
61
+ <button
62
+ className='input-search__icon'
63
+ onClick={() => searchChat(searchValue, searchKey)}
64
+ >
65
+ {loadingSearch ? (
66
+ <div className='messenger__messages-loading'>
67
+ <div className='messenger__messages-loading--loader' />
68
+ </div>
69
+ ) : (
70
+ <SearchIcon />
71
+ )}
72
+ </button>
73
+ </div>
74
+ )
75
+ }
76
+
77
+ export default SearchInput
@@ -1,22 +1,22 @@
1
- .form-select {
2
- margin-bottom: 1rem;
3
- width: 100%;
4
-
5
- &__label {
6
- color: @title-form-color;
7
- font-weight: bold;
8
- margin: 0.5rem;
9
- }
10
-
11
- &__input {
12
- border: 1.5px solid hsl(0, 0%, 80%);
13
- border-radius: 4px;
14
- margin-top: 0.5rem;
15
- padding: 8px 8px;
16
- width: 100%;
17
-
18
- &:focus {
19
- outline: #2684ff 2px solid !important;
20
- }
21
- }
22
- }
1
+ .form-select {
2
+ margin-bottom: 1rem;
3
+ width: 100%;
4
+
5
+ &__label {
6
+ color: @title-form-color;
7
+ font-weight: bold;
8
+ margin: 0.5rem;
9
+ }
10
+
11
+ &__input {
12
+ border: 1.5px solid hsl(0, 0%, 80%);
13
+ border-radius: 4px;
14
+ margin-top: 0.5rem;
15
+ padding: 8px 8px;
16
+ width: 100%;
17
+
18
+ &:focus {
19
+ outline: #2684ff 2px solid !important;
20
+ }
21
+ }
22
+ }
@@ -1,56 +1,56 @@
1
- import React from 'react'
2
- import useTheme from '../../hooks/useThemes'
3
- interface IProps {
4
- options: {
5
- label: string
6
- value: string
7
- }[]
8
- label: string
9
- onChange: (value: string) => void
10
- name: string
11
- placeholder: string
12
- value: string
13
- }
14
-
15
- function SelectNew ({
16
- options,
17
- name,
18
- placeholder,
19
- label,
20
- onChange,
21
- value,
22
- }: IProps) {
23
- const { theme } = useTheme()
24
- return (
25
- <div className='form-select'>
26
- <label
27
- htmlFor={name}
28
- className='form-select__label'
29
- style={{ color: theme.newChatFormTexts }}
30
- >
31
- {label}
32
- </label>
33
- <select
34
- name={name}
35
- className='form-select__input'
36
- onChange={(e) => onChange(e.target.value)}
37
- value={value}
38
- style={{
39
- backgroundColor: theme.inputBg,
40
- color: theme.newChatFormTexts,
41
- }}
42
- >
43
- <option value='' disabled hidden>
44
- {placeholder}
45
- </option>
46
- {options.map((motivo) => (
47
- <option key={motivo.value} value={motivo.value}>
48
- {motivo.label}
49
- </option>
50
- ))}
51
- </select>
52
- </div>
53
- )
54
- }
55
-
56
- export default SelectNew
1
+ import React from 'react'
2
+ import useTheme from '../../hooks/useThemes'
3
+ interface IProps {
4
+ options: {
5
+ label: string
6
+ value: string
7
+ }[]
8
+ label: string
9
+ onChange: (value: string) => void
10
+ name: string
11
+ placeholder: string
12
+ value: string
13
+ }
14
+
15
+ function SelectNew ({
16
+ options,
17
+ name,
18
+ placeholder,
19
+ label,
20
+ onChange,
21
+ value,
22
+ }: IProps) {
23
+ const { theme } = useTheme()
24
+ return (
25
+ <div className='form-select'>
26
+ <label
27
+ htmlFor={name}
28
+ className='form-select__label'
29
+ style={{ color: theme.newChatFormTexts }}
30
+ >
31
+ {label}
32
+ </label>
33
+ <select
34
+ name={name}
35
+ className='form-select__input'
36
+ onChange={(e) => onChange(e.target.value)}
37
+ value={value}
38
+ style={{
39
+ backgroundColor: theme.inputBg,
40
+ color: theme.newChatFormTexts,
41
+ }}
42
+ >
43
+ <option value='' disabled hidden>
44
+ {placeholder}
45
+ </option>
46
+ {options.map((motivo) => (
47
+ <option key={motivo.value} value={motivo.value}>
48
+ {motivo.label}
49
+ </option>
50
+ ))}
51
+ </select>
52
+ </div>
53
+ )
54
+ }
55
+
56
+ export default SelectNew