agx-chat-web 0.4.10 → 0.4.11

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 (115) hide show
  1. package/package.json +1 -1
  2. package/src/app/Messenger/components/ChatTabs/ChatTabs.less +1 -1
  3. package/src/app/Messenger/components/InputFile/inputFile.less +6 -6
  4. package/src/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.tsx +41 -38
  5. package/src/app/Messenger/components/SearchInput/SearchInput.less +3 -3
  6. package/src/app/Messenger/components/SenderMessages/SenderMessages.tsx +36 -18
  7. package/src/app/Messenger/icons/TimerIcon.tsx +13 -5
  8. package/src/app/Messenger/views/Messenger.less +13 -13
  9. package/src/app/Messenger/views/MessengerListItem.tsx +58 -23
  10. package/src/styles/abstracts/variables.less +3 -0
  11. package/dist/agx-chat.js +0 -3
  12. package/dist/agx-chat.js.LICENSE.txt +0 -303
  13. package/dist/agx-chat.js.map +0 -1
  14. package/dist/agx-chat.min.js +0 -3
  15. package/dist/agx-chat.min.js.LICENSE.txt +0 -303
  16. package/dist/agx-chat.min.js.map +0 -1
  17. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.d.ts +0 -1
  18. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.js +0 -46
  19. package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.js.map +0 -1
  20. package/dist/esm/app/Messenger/classes/slaCalculations.d.ts +0 -30
  21. package/dist/esm/app/Messenger/classes/slaCalculations.js +0 -142
  22. package/dist/esm/app/Messenger/classes/slaCalculations.js.map +0 -1
  23. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.d.ts +0 -14
  24. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.js +0 -31
  25. package/dist/esm/app/Messenger/components/ChatButton/ChatButton.js.map +0 -1
  26. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.d.ts +0 -9
  27. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.js +0 -15
  28. package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.js.map +0 -1
  29. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.d.ts +0 -3
  30. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.js +0 -24
  31. package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.js.map +0 -1
  32. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.d.ts +0 -3
  33. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js +0 -33
  34. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js.map +0 -1
  35. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.d.ts +0 -11
  36. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.js +0 -37
  37. package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.js.map +0 -1
  38. package/dist/esm/app/Messenger/components/InputFile/InputFile.d.ts +0 -8
  39. package/dist/esm/app/Messenger/components/InputFile/InputFile.js +0 -59
  40. package/dist/esm/app/Messenger/components/InputFile/InputFile.js.map +0 -1
  41. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.d.ts +0 -8
  42. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.js +0 -32
  43. package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.js.map +0 -1
  44. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.d.ts +0 -3
  45. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.js +0 -13
  46. package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.js.map +0 -1
  47. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.d.ts +0 -40
  48. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.js +0 -39
  49. package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.js.map +0 -1
  50. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.d.ts +0 -10
  51. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.js +0 -32
  52. package/dist/esm/app/Messenger/components/SearchInput/SearchInput.js.map +0 -1
  53. package/dist/esm/app/Messenger/components/Select/Select.d.ts +0 -13
  54. package/dist/esm/app/Messenger/components/Select/Select.js +0 -16
  55. package/dist/esm/app/Messenger/components/Select/Select.js.map +0 -1
  56. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.d.ts +0 -3
  57. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js +0 -32
  58. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js.map +0 -1
  59. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.d.ts +0 -3
  60. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.js +0 -14
  61. package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.js.map +0 -1
  62. package/dist/esm/app/Messenger/components/TextArea/TextArea.d.ts +0 -8
  63. package/dist/esm/app/Messenger/components/TextArea/TextArea.js +0 -14
  64. package/dist/esm/app/Messenger/components/TextArea/TextArea.js.map +0 -1
  65. package/dist/esm/app/Messenger/hooks/useConversations.d.ts +0 -11
  66. package/dist/esm/app/Messenger/hooks/useConversations.js +0 -59
  67. package/dist/esm/app/Messenger/hooks/useConversations.js.map +0 -1
  68. package/dist/esm/app/Messenger/hooks/useThemes.d.ts +0 -31
  69. package/dist/esm/app/Messenger/hooks/useThemes.js +0 -11
  70. package/dist/esm/app/Messenger/hooks/useThemes.js.map +0 -1
  71. package/dist/esm/app/Messenger/icons/AttachFileIcon.d.ts +0 -3
  72. package/dist/esm/app/Messenger/icons/AttachFileIcon.js +0 -10
  73. package/dist/esm/app/Messenger/icons/AttachFileIcon.js.map +0 -1
  74. package/dist/esm/app/Messenger/icons/CloseIcon.d.ts +0 -1
  75. package/dist/esm/app/Messenger/icons/CloseIcon.js +0 -9
  76. package/dist/esm/app/Messenger/icons/CloseIcon.js.map +0 -1
  77. package/dist/esm/app/Messenger/icons/EmptyIcon.d.ts +0 -1
  78. package/dist/esm/app/Messenger/icons/EmptyIcon.js +0 -8
  79. package/dist/esm/app/Messenger/icons/EmptyIcon.js.map +0 -1
  80. package/dist/esm/app/Messenger/icons/MessageIcon.d.ts +0 -5
  81. package/dist/esm/app/Messenger/icons/MessageIcon.js +0 -12
  82. package/dist/esm/app/Messenger/icons/MessageIcon.js.map +0 -1
  83. package/dist/esm/app/Messenger/icons/ReadIcon.d.ts +0 -3
  84. package/dist/esm/app/Messenger/icons/ReadIcon.js +0 -7
  85. package/dist/esm/app/Messenger/icons/ReadIcon.js.map +0 -1
  86. package/dist/esm/app/Messenger/icons/SearchIcon.d.ts +0 -1
  87. package/dist/esm/app/Messenger/icons/SearchIcon.js +0 -8
  88. package/dist/esm/app/Messenger/icons/SearchIcon.js.map +0 -1
  89. package/dist/esm/app/Messenger/icons/TimerIcon.d.ts +0 -1
  90. package/dist/esm/app/Messenger/icons/TimerIcon.js +0 -6
  91. package/dist/esm/app/Messenger/icons/TimerIcon.js.map +0 -1
  92. package/dist/esm/app/Messenger/icons/TrashIcon.d.ts +0 -5
  93. package/dist/esm/app/Messenger/icons/TrashIcon.js +0 -7
  94. package/dist/esm/app/Messenger/icons/TrashIcon.js.map +0 -1
  95. package/dist/esm/app/Messenger/views/MessengerList.d.ts +0 -40
  96. package/dist/esm/app/Messenger/views/MessengerList.js +0 -50
  97. package/dist/esm/app/Messenger/views/MessengerList.js.map +0 -1
  98. package/dist/esm/app/Messenger/views/MessengerListItem.d.ts +0 -12
  99. package/dist/esm/app/Messenger/views/MessengerListItem.js +0 -88
  100. package/dist/esm/app/Messenger/views/MessengerListItem.js.map +0 -1
  101. package/dist/esm/app/Messenger/views/MessengerMessages.d.ts +0 -23
  102. package/dist/esm/app/Messenger/views/MessengerMessages.js +0 -133
  103. package/dist/esm/app/Messenger/views/MessengerMessages.js.map +0 -1
  104. package/dist/esm/app/Messenger/views/NewFormChat.d.ts +0 -10
  105. package/dist/esm/app/Messenger/views/NewFormChat.js +0 -64
  106. package/dist/esm/app/Messenger/views/NewFormChat.js.map +0 -1
  107. package/dist/esm/index.d.ts +0 -8
  108. package/dist/esm/index.js +0 -9
  109. package/dist/esm/index.js.map +0 -1
  110. package/dist/esm/setupTests.d.ts +0 -1
  111. package/dist/esm/setupTests.js +0 -6
  112. package/dist/esm/setupTests.js.map +0 -1
  113. package/dist/esm/types.d.ts +0 -134
  114. package/dist/esm/types.js +0 -2
  115. package/dist/esm/types.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agx-chat-web",
3
- "version": "0.4.10",
3
+ "version": "0.4.11",
4
4
  "description": "Chat application using React and less",
5
5
  "author": {
6
6
  "name": "Jeiel Alves",
@@ -11,7 +11,7 @@
11
11
  margin-bottom: 0.5rem;
12
12
 
13
13
  &--active {
14
- border-bottom: 1px solid white;
14
+ border-bottom: 1px solid var(--secondary-color);
15
15
  transition: 0.5s;
16
16
  }
17
17
  }
@@ -1,16 +1,16 @@
1
1
  .file-input {
2
2
  margin-bottom: 1rem;
3
3
  width: 100%;
4
-
4
+
5
5
  &__label {
6
6
  color: @title-form-color;
7
7
  font-weight: bold;
8
- margin: 0.5rem;
8
+ margin: 0.5rem;
9
9
  }
10
10
 
11
11
  &__container {
12
12
  align-items: center;
13
- background-color: white;
13
+ background-color: var(--secondary-color);
14
14
  border-radius: 10px;
15
15
  display: flex;
16
16
  flex-direction: column;
@@ -23,17 +23,17 @@
23
23
  &__button {
24
24
  border: none;
25
25
  border-radius: 30px;
26
- color: white;
26
+ color: var(--secondary-color);
27
27
  cursor: pointer;
28
28
  font-size: 1rem;
29
- font-weight: bold;
29
+ font-weight: bold;
30
30
  margin: 0.5rem 1rem;
31
31
  padding: 0.5rem;
32
32
  }
33
33
 
34
34
  &__list {
35
35
  align-items: center;
36
- background-color: white;
36
+ background-color: var(--secondary-color);
37
37
  border-radius: 10px;
38
38
  display: flex;
39
39
  justify-content: space-between;
@@ -1,58 +1,61 @@
1
- import React, { createContext, ReactNode } from 'react'
1
+ import React, { createContext, ReactNode } from "react";
2
2
 
3
3
  const defaultThemeVariables = {
4
- asideBg: '#eee',
5
- asideFontColor: 'white',
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',
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
21
  messengerIncomerColor: "#707070",
22
22
  messengerSystemColor: "#2A313A",
23
- borderColor: '#AAAAAA',
24
- inputBg:'white',
25
- chatInputBorder: '',
26
- listItemHover: '',
27
- active: '',
28
- activeTabBorter: '#25D366',
29
- emptyMessagesFontColor: '#000'
30
- }
23
+ borderColor: "#AAAAAA",
24
+ inputBg: "var(--secondary-color)",
25
+ chatInputBorder: "",
26
+ listItemHover: "",
27
+ active: "",
28
+ activeTabBorter: "#25D366",
29
+ emptyMessagesFontColor: "#000",
30
+ };
31
31
 
32
- type ThemeVariables = typeof defaultThemeVariables
32
+ type ThemeVariables = typeof defaultThemeVariables;
33
33
 
34
34
  type ThemeContextContent = {
35
- theme: Partial<ThemeVariables>
36
- }
35
+ theme: Partial<ThemeVariables>;
36
+ };
37
37
 
38
38
  export const MessageThemeContext = createContext<ThemeContextContent>(
39
39
  {} as unknown as ThemeContextContent
40
40
  );
41
41
 
42
42
  type Props = {
43
- children: ReactNode
44
- theme?: Partial<ThemeVariables>
45
- }
46
- const MessageThemeWrapper = ({ children, theme = defaultThemeVariables }: Props) => {
43
+ children: ReactNode;
44
+ theme?: Partial<ThemeVariables>;
45
+ };
46
+ const MessageThemeWrapper = ({
47
+ children,
48
+ theme = defaultThemeVariables,
49
+ }: Props) => {
47
50
  const config = {
48
- theme
49
- }
51
+ theme,
52
+ };
50
53
 
51
54
  return (
52
55
  <MessageThemeContext.Provider value={config}>
53
56
  {children}
54
57
  </MessageThemeContext.Provider>
55
- )
56
- }
58
+ );
59
+ };
57
60
 
58
- export default MessageThemeWrapper
61
+ export default MessageThemeWrapper;
@@ -23,13 +23,13 @@
23
23
  margin-right: 1rem;
24
24
  border-radius: 0 30px 30px 0;
25
25
  padding: 10px;
26
- color: white;
27
- border: white 1px solid;
26
+ color: var(--secondary-color);
27
+ border: var(--secondary-color) 1px solid;
28
28
  background: transparent;
29
29
  position: relative;
30
30
 
31
31
  &::placeholder {
32
- color: white;
32
+ color: var(--secondary-color);
33
33
  opacity: 60%;
34
34
  }
35
35
  }
@@ -1,14 +1,21 @@
1
- import useTheme from '../../hooks/useThemes'
2
- import React, { useCallback, useState } from 'react'
3
- import { IMessagesBalloon } from "types"
4
- import ReadIcon from "../../icons/ReadIcon"
5
- import ReactSimpleImageViewer from '../../../../../node_modules/react-simple-image-viewer'
1
+ import useTheme from "../../hooks/useThemes";
2
+ import React, { useCallback, useState } from "react";
3
+ import { IMessagesBalloon } from "types";
4
+ import ReadIcon from "../../icons/ReadIcon";
5
+ import ReactSimpleImageViewer from "../../../../../node_modules/react-simple-image-viewer";
6
6
 
7
-
8
- function SenderMessages({ date, message, read, hasFile, file, formatDate, id }: IMessagesBalloon) {
7
+ function SenderMessages({
8
+ date,
9
+ message,
10
+ read,
11
+ hasFile,
12
+ file,
13
+ formatDate,
14
+ id,
15
+ }: IMessagesBalloon) {
9
16
  const [currentImage, setCurrentImage] = useState(0);
10
17
  const [isViewerOpen, setIsViewerOpen] = useState(false);
11
- const { theme } = useTheme()
18
+ const { theme } = useTheme();
12
19
 
13
20
  const openImageViewer = useCallback((index) => {
14
21
  setCurrentImage(index);
@@ -19,24 +26,35 @@ function SenderMessages({ date, message, read, hasFile, file, formatDate, id }:
19
26
  setCurrentImage(0);
20
27
  setIsViewerOpen(false);
21
28
  };
22
-
29
+
23
30
  return (
24
- <div className="messenger__messages-row--sender" >
25
- <div className="messenger__messages-sender" id={id} style={{ background: theme?.messengerSenderColor }}>
31
+ <div className="messenger__messages-row--sender">
32
+ <div
33
+ className="messenger__messages-sender"
34
+ id={id}
35
+ style={{ background: theme?.messengerSenderColor }}
36
+ >
26
37
  <span>
27
38
  {hasFile && (
28
39
  <div className="messenger__message--file">
29
- <img src={file?.location} width={200} alt="imagem na mensagem" onClick={() => openImageViewer(currentImage)} />
40
+ <img
41
+ src={file?.location}
42
+ width={200}
43
+ alt="imagem na mensagem"
44
+ onClick={() => openImageViewer(currentImage)}
45
+ />
30
46
  </div>
31
47
  )}
32
48
  <p className="messenger__message">{message}</p>
33
49
  <div className="messenger__message--bottom">
34
- <p className="messenger__message--date">{formatDate(date) ?? new Date(date).toString()}</p>
35
- <ReadIcon fill={read ? '#00efff' : 'white'} />
50
+ <p className="messenger__message--date">
51
+ {formatDate(date) ?? new Date(date).toString()}
52
+ </p>
53
+ <ReadIcon fill={read ? "#00efff" : "var(--secondary-color)"} />
36
54
  </div>
37
55
  </span>
38
56
  </div>
39
- {file && isViewerOpen &&
57
+ {file && isViewerOpen && (
40
58
  <ReactSimpleImageViewer
41
59
  src={[file.location]}
42
60
  currentIndex={0}
@@ -44,9 +62,9 @@ function SenderMessages({ date, message, read, hasFile, file, formatDate, id }:
44
62
  closeOnClickOutside={true}
45
63
  onClose={closeImageViewer}
46
64
  />
47
- }
65
+ )}
48
66
  </div>
49
- )
67
+ );
50
68
  }
51
69
 
52
- export default SenderMessages
70
+ export default SenderMessages;
@@ -1,10 +1,18 @@
1
- import React from 'react'
2
-
1
+ import React from "react";
3
2
 
4
3
  export default function TimerIcon() {
5
4
  return (
6
- <svg width="10" height="10" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
7
- <path d="M9.42207 4.79883H8.57656C8.49922 4.79883 8.43594 4.86211 8.43594 4.93946V9.77871C8.43594 9.82442 8.45703 9.8666 8.49394 9.89297L11.3996 12.0147C11.4629 12.0604 11.5508 12.048 11.5965 11.9848L12.0992 11.2992C12.1467 11.2342 12.1326 11.1463 12.0693 11.1023L9.56269 9.29004V4.93946C9.56269 4.86211 9.49941 4.79883 9.42207 4.79883ZM13.2857 6.12071L16.042 6.79395C16.1299 6.81504 16.216 6.74824 16.216 6.6586L16.2301 3.81973C16.2301 3.70196 16.0947 3.63516 16.0033 3.70899L13.233 5.87285C13.2121 5.88905 13.1961 5.91083 13.187 5.93568C13.1779 5.96054 13.176 5.98746 13.1815 6.01335C13.187 6.03924 13.1997 6.06305 13.2182 6.08204C13.2366 6.10103 13.26 6.11444 13.2857 6.12071ZM16.2336 11.4135L15.2369 11.0707C15.2022 11.0588 15.1641 11.061 15.131 11.0767C15.0978 11.0925 15.0721 11.1206 15.0594 11.1551C15.026 11.2447 14.9908 11.3326 14.9539 11.4205C14.641 12.1605 14.1928 12.8268 13.6197 13.3981C13.053 13.9665 12.3815 14.4196 11.6422 14.7322C10.8764 15.056 10.0531 15.2222 9.22168 15.2209C8.38145 15.2209 7.56758 15.0574 6.80117 14.7322C6.06191 14.4196 5.39032 13.9665 4.82363 13.3981C4.25234 12.8268 3.8041 12.1605 3.48945 11.4205C3.16745 10.6542 3.00248 9.83117 3.0043 9C3.0043 8.15977 3.16777 7.34414 3.49297 6.57774C3.80586 5.8377 4.2541 5.17149 4.82715 4.6002C5.39383 4.03175 6.06542 3.57866 6.80469 3.26602C7.56758 2.94082 8.3832 2.77735 9.22344 2.77735C10.0637 2.77735 10.8775 2.94082 11.6439 3.26602C12.3832 3.57866 13.0548 4.03175 13.6215 4.6002C13.8008 4.78125 13.9695 4.96934 14.1242 5.16797L15.1754 4.34531C13.792 2.57696 11.6387 1.43965 9.21992 1.44141C5.0082 1.44317 1.62617 4.86387 1.66836 9.07735C1.71055 13.217 5.07676 16.5586 9.22344 16.5586C12.4842 16.5586 15.2615 14.4914 16.3197 11.5963C16.3461 11.5225 16.3074 11.4398 16.2336 11.4135Z" fill="white" />
5
+ <svg
6
+ width="10"
7
+ height="10"
8
+ viewBox="0 0 18 18"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ >
12
+ <path
13
+ d="M9.42207 4.79883H8.57656C8.49922 4.79883 8.43594 4.86211 8.43594 4.93946V9.77871C8.43594 9.82442 8.45703 9.8666 8.49394 9.89297L11.3996 12.0147C11.4629 12.0604 11.5508 12.048 11.5965 11.9848L12.0992 11.2992C12.1467 11.2342 12.1326 11.1463 12.0693 11.1023L9.56269 9.29004V4.93946C9.56269 4.86211 9.49941 4.79883 9.42207 4.79883ZM13.2857 6.12071L16.042 6.79395C16.1299 6.81504 16.216 6.74824 16.216 6.6586L16.2301 3.81973C16.2301 3.70196 16.0947 3.63516 16.0033 3.70899L13.233 5.87285C13.2121 5.88905 13.1961 5.91083 13.187 5.93568C13.1779 5.96054 13.176 5.98746 13.1815 6.01335C13.187 6.03924 13.1997 6.06305 13.2182 6.08204C13.2366 6.10103 13.26 6.11444 13.2857 6.12071ZM16.2336 11.4135L15.2369 11.0707C15.2022 11.0588 15.1641 11.061 15.131 11.0767C15.0978 11.0925 15.0721 11.1206 15.0594 11.1551C15.026 11.2447 14.9908 11.3326 14.9539 11.4205C14.641 12.1605 14.1928 12.8268 13.6197 13.3981C13.053 13.9665 12.3815 14.4196 11.6422 14.7322C10.8764 15.056 10.0531 15.2222 9.22168 15.2209C8.38145 15.2209 7.56758 15.0574 6.80117 14.7322C6.06191 14.4196 5.39032 13.9665 4.82363 13.3981C4.25234 12.8268 3.8041 12.1605 3.48945 11.4205C3.16745 10.6542 3.00248 9.83117 3.0043 9C3.0043 8.15977 3.16777 7.34414 3.49297 6.57774C3.80586 5.8377 4.2541 5.17149 4.82715 4.6002C5.39383 4.03175 6.06542 3.57866 6.80469 3.26602C7.56758 2.94082 8.3832 2.77735 9.22344 2.77735C10.0637 2.77735 10.8775 2.94082 11.6439 3.26602C12.3832 3.57866 13.0548 4.03175 13.6215 4.6002C13.8008 4.78125 13.9695 4.96934 14.1242 5.16797L15.1754 4.34531C13.792 2.57696 11.6387 1.43965 9.21992 1.44141C5.0082 1.44317 1.62617 4.86387 1.66836 9.07735C1.71055 13.217 5.07676 16.5586 9.22344 16.5586C12.4842 16.5586 15.2615 14.4914 16.3197 11.5963C16.3461 11.5225 16.3074 11.4398 16.2336 11.4135Z"
14
+ fill="var(--secondary-color)"
15
+ />
8
16
  </svg>
9
- )
17
+ );
10
18
  }
@@ -43,7 +43,7 @@
43
43
  align-items: center;
44
44
 
45
45
  & path {
46
- fill: white;
46
+ fill: var(--secondary-color);
47
47
  }
48
48
 
49
49
  & p {
@@ -98,7 +98,7 @@
98
98
  right: 0;
99
99
  top: 0;
100
100
  border-radius: 10px;
101
- background-color: white;
101
+ background-color: var(--secondary-color);
102
102
  padding: 0 0.5rem;
103
103
  font-size: 0.6rem;
104
104
  }
@@ -111,10 +111,10 @@
111
111
  bottom: 0;
112
112
  right: 0;
113
113
  border-radius: 10px;
114
- background-color: white;
114
+ background-color: var(--secondary-color);
115
115
  padding: 0.3rem 0.5rem;
116
116
  margin: 0.5rem;
117
- font-size: 0.5rem;
117
+ font-size: 0.5rem;
118
118
  }
119
119
 
120
120
  &__aside-list-item {
@@ -196,7 +196,7 @@
196
196
 
197
197
  &--title,
198
198
  &--description {
199
- white-space: nowrap;
199
+ var(--secondary-color)-space: nowrap;
200
200
  text-overflow: ellipsis;
201
201
  overflow: hidden;
202
202
  line-height: 1;
@@ -290,7 +290,7 @@
290
290
 
291
291
  & div {
292
292
  animation: spin 1s infinite linear;
293
- border-left: 2px solid white;
293
+ border-left: 2px solid var(--secondary-color);
294
294
  border-radius: 50%;
295
295
  height: 25px;
296
296
  margin-bottom: 10px;
@@ -328,7 +328,7 @@
328
328
  padding: 10px;
329
329
 
330
330
  &>span {
331
- color: white;
331
+ color: var(--secondary-color);
332
332
  overflow-wrap: break-word;
333
333
  word-break: break-word;
334
334
  width: 200px;
@@ -354,7 +354,7 @@
354
354
 
355
355
  &__message-title {
356
356
  max-width: 100%;
357
- white-space: nowrap;
357
+ var(--secondary-color)-space: nowrap;
358
358
  overflow: hidden;
359
359
  max-width: 100%;
360
360
  display: block;
@@ -364,7 +364,7 @@
364
364
  margin: 0 0 3px;
365
365
  justify-content: flex-end;
366
366
  font-size: 13px;
367
- color: white;
367
+ color: var(--secondary-color);
368
368
  font-weight: bold;
369
369
  filter: opacity(.7);
370
370
  font-weight: 700;
@@ -373,7 +373,7 @@
373
373
  &__message {
374
374
  padding: 0;
375
375
  margin: 0;
376
- white-space: pre-wrap;
376
+ var(--secondary-color)-space: pre-wrap;
377
377
  line-height: 1.2;
378
378
 
379
379
  &--file {
@@ -564,7 +564,7 @@
564
564
  &__chat-button {
565
565
  border: none;
566
566
  border-radius: 30px;
567
- color: white;
567
+ color: var(--secondary-color);
568
568
  cursor: pointer;
569
569
  font-size: 1rem;
570
570
  font-weight: bold;
@@ -579,7 +579,7 @@
579
579
  &__input-button {
580
580
  border: none;
581
581
  border-radius: 30px;
582
- color: white;
582
+ color: var(--secondary-color);
583
583
  font-size: 1rem;
584
584
  font-weight: bold;
585
585
  margin: 0.5rem 1rem;
@@ -587,7 +587,7 @@
587
587
  }
588
588
 
589
589
  &__input-button-label {
590
- color: white;
590
+ color: var(--secondary-color);
591
591
  font-weight: bold;
592
592
  margin: 0rem 1rem;
593
593
  }
@@ -13,7 +13,11 @@ interface IListItem {
13
13
  currentViewerId: string
14
14
  }
15
15
 
16
- export function activeItem(e: React.MouseEvent<HTMLElement, MouseEvent>, defaultClass: string, activeClass: string,) {
16
+ export function activeItem(
17
+ e: React.MouseEvent<HTMLElement, MouseEvent>,
18
+ defaultClass: string,
19
+ activeClass: string
20
+ ) {
17
21
  const click = document.querySelectorAll(`.${defaultClass}`)
18
22
  click.forEach((item) => {
19
23
  item.classList.remove(activeClass)
@@ -22,9 +26,23 @@ export function activeItem(e: React.MouseEvent<HTMLElement, MouseEvent>, default
22
26
  e.currentTarget.className += ` ${activeClass} `
23
27
  }
24
28
 
25
- function MessengerListItem ({ item, onClick, canSeeTimer, currentId, currentViewerId }: IListItem) {
26
- const [unreadMessages, setUnreadMessages] = useState<typeof item.totalUnreadMessages>(item.totalUnreadMessages)
27
- const closedChat = useMemo(() => item.status.current.state === 'final' ? 'messenger__aside-list-item--closed' : '', [item])
29
+ function MessengerListItem({
30
+ item,
31
+ onClick,
32
+ canSeeTimer,
33
+ currentId,
34
+ currentViewerId,
35
+ }: IListItem) {
36
+ const [unreadMessages, setUnreadMessages] = useState<
37
+ typeof item.totalUnreadMessages
38
+ >(item.totalUnreadMessages)
39
+ const closedChat = useMemo(
40
+ () =>
41
+ item.status.current.state === 'final'
42
+ ? 'messenger__aside-list-item--closed'
43
+ : '',
44
+ [item]
45
+ )
28
46
  const [background, setBackground] = useState<string | undefined>('')
29
47
  const [counter, setCounter] = useState<number | null>(null)
30
48
 
@@ -32,23 +50,28 @@ function MessengerListItem ({ item, onClick, canSeeTimer, currentId, currentView
32
50
  const isInprogress = item.status?.current?.systemicValue === 'inprogress'
33
51
 
34
52
  const otherChatMember = useMemo(
35
- () => item?.users.find(item => item.uniqueCode !== currentViewerId) || item.creator,
53
+ () =>
54
+ item?.users.find((item) => item.uniqueCode !== currentViewerId) ||
55
+ item.creator,
36
56
  [item?.users, currentViewerId]
37
57
  )
38
58
 
39
59
  useEffect(() => {
40
60
  let interval: NodeJS.Timer
41
61
  if (isInprogress && canSeeTimer) {
42
- const sla = new SlaDates(timeAsDayjs(item.currentTime).diff(item.createdAt, 'second'))
62
+ const sla = new SlaDates(
63
+ timeAsDayjs(item.currentTime).diff(item.createdAt, 'second')
64
+ )
43
65
  const diference = sla.calculateWorkingTime(
44
66
  timeAsDayjs(item.createdAt),
45
- timeAsDayjs(), { start: 9, end: 18 }
67
+ timeAsDayjs(),
68
+ { start: 9, end: 18 }
46
69
  )
47
70
 
48
71
  setCounter(diference)
49
72
  if (sla.canUpdateClock(timeAsDayjs())) {
50
73
  interval = setInterval(() => {
51
- setCounter(prev => prev !== null ? prev + 1 : null)
74
+ setCounter((prev) => (prev !== null ? prev + 1 : null))
52
75
  }, 1000)
53
76
  }
54
77
  } else {
@@ -64,8 +87,15 @@ function MessengerListItem ({ item, onClick, canSeeTimer, currentId, currentView
64
87
  setUnreadMessages(item.totalUnreadMessages)
65
88
  }, [item])
66
89
 
67
- function handleClick(e: React.MouseEvent<HTMLElement, MouseEvent>, item: IList) {
68
- activeItem(e, 'messenger__aside-list-item', 'messenger__aside-list-item--active')
90
+ function handleClick(
91
+ e: React.MouseEvent<HTMLElement, MouseEvent>,
92
+ item: IList
93
+ ) {
94
+ activeItem(
95
+ e,
96
+ 'messenger__aside-list-item',
97
+ 'messenger__aside-list-item--active'
98
+ )
69
99
  onClick(item)
70
100
  }
71
101
 
@@ -83,7 +113,6 @@ function MessengerListItem ({ item, onClick, canSeeTimer, currentId, currentView
83
113
  setBackground('')
84
114
  }
85
115
 
86
-
87
116
  const ShowTimer = () => {
88
117
  if (counter === null) return null
89
118
 
@@ -92,14 +121,12 @@ function MessengerListItem ({ item, onClick, canSeeTimer, currentId, currentView
92
121
  className='messenger__aside-timer'
93
122
  style={{
94
123
  background: SlaDates.getColorsByTime(counter),
95
- color: 'white'
124
+ color: 'var(--secondary-color)',
96
125
  }}
97
126
  >
98
- <TimerIcon />&nbsp;
99
-
100
- <b>
101
- {SlaDates.secondsInHours(counter)}
102
- </b>
127
+ <TimerIcon />
128
+ &nbsp
129
+ <b>{SlaDates.secondsInHours(counter)}</b>
103
130
  </span>
104
131
  )
105
132
  }
@@ -117,17 +144,25 @@ function MessengerListItem ({ item, onClick, canSeeTimer, currentId, currentView
117
144
  }}
118
145
  >
119
146
  <MessengerAvatar image={otherChatMember?.image}>
120
- {(otherChatMember && otherChatMember.username) ? otherChatMember.username.slice(0, 1) : ''}
147
+ {otherChatMember && otherChatMember.username
148
+ ? otherChatMember.username.slice(0, 1)
149
+ : ''}
121
150
  </MessengerAvatar>
122
151
 
123
- <div className="messenger__aside-list-item--info">
124
- <p className="messenger__aside-list-item--title">{otherChatMember?.username}</p>
125
- {item?.reason && (<p className="messenger__aside-list-item--description">{item.reason}</p>)}
152
+ <div className='messenger__aside-list-item--info'>
153
+ <p className='messenger__aside-list-item--title'>
154
+ {otherChatMember?.username}
155
+ </p>
156
+ {item?.reason && (
157
+ <p className='messenger__aside-list-item--description'>
158
+ {item.reason}
159
+ </p>
160
+ )}
126
161
  </div>
127
162
 
128
- <div className="messenger__aside-list-item--additional">
163
+ <div className='messenger__aside-list-item--additional'>
129
164
  {unreadMessages > 0 && (
130
- <div className="messenger__aside-list-item--unread">
165
+ <div className='messenger__aside-list-item--unread'>
131
166
  <span>{formatUnreadMessages(unreadMessages)}</span>
132
167
  </div>
133
168
  )}
@@ -23,3 +23,6 @@
23
23
  @title-form-color: #476077;
24
24
  @border-radius: 20px;
25
25
 
26
+ :root {
27
+ --secondary-color: var(--secondary-color);
28
+ }