@homefile/components-v2 2.3.0 → 2.4.0

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 (147) hide show
  1. package/dist/assets/images/animations/index.d.ts +7 -0
  2. package/dist/assets/images/animations/index.js +7 -0
  3. package/dist/assets/images/animations/index.ts +15 -0
  4. package/dist/assets/images/animations/trees-cloudy.png +0 -0
  5. package/dist/assets/images/animations/trees-day-fall.png +0 -0
  6. package/dist/assets/images/animations/trees-day-summer.png +0 -0
  7. package/dist/assets/images/animations/trees-day-winter.png +0 -0
  8. package/dist/assets/images/animations/trees-evening.png +0 -0
  9. package/dist/assets/images/animations/trees-morning.png +0 -0
  10. package/dist/assets/images/animations/trees-night.png +0 -0
  11. package/dist/assets/images/chat-bubble.svg +8 -0
  12. package/dist/assets/images/document2.svg +14 -0
  13. package/dist/assets/images/index.d.ts +4 -1
  14. package/dist/assets/images/index.js +4 -1
  15. package/dist/assets/images/index.ts +5 -0
  16. package/dist/assets/locales/en/index.json +11 -10
  17. package/dist/components/animations/CloudsAnimation.js +19 -3
  18. package/dist/components/animations/WeatherTrees.d.ts +6 -0
  19. package/dist/components/animations/WeatherTrees.js +36 -0
  20. package/dist/components/animations/index.d.ts +1 -0
  21. package/dist/components/animations/index.js +1 -0
  22. package/dist/components/badge/TextBadge.js +1 -1
  23. package/dist/components/folderPanel/folderDetails/FilesCounter.js +3 -5
  24. package/dist/components/footers/FooterButtons.d.ts +1 -1
  25. package/dist/components/footers/FooterButtons.js +2 -2
  26. package/dist/components/forms/BaseCounter.d.ts +2 -0
  27. package/dist/components/forms/BaseCounter.js +8 -0
  28. package/dist/components/forms/index.d.ts +1 -0
  29. package/dist/components/forms/index.js +1 -0
  30. package/dist/components/homeAssistant/HomeAssistantWrapper.d.ts +1 -1
  31. package/dist/components/homeAssistant/HomeAssistantWrapper.js +20 -6
  32. package/dist/components/inboxTile/InboxForwardBanner.js +2 -2
  33. package/dist/components/inboxTile/index.d.ts +1 -0
  34. package/dist/components/inboxTile/index.js +1 -0
  35. package/dist/components/inboxTile/panel/MessageCard.d.ts +2 -0
  36. package/dist/components/inboxTile/panel/MessageCard.js +14 -0
  37. package/dist/components/inboxTile/panel/MessageChatPanel.d.ts +4 -0
  38. package/dist/components/inboxTile/panel/MessageChatPanel.js +38 -0
  39. package/dist/components/inboxTile/panel/MessagePanel.d.ts +2 -0
  40. package/dist/components/inboxTile/panel/MessagePanel.js +12 -0
  41. package/dist/components/inboxTile/panel/index.d.ts +3 -0
  42. package/dist/components/inboxTile/panel/index.js +3 -0
  43. package/dist/components/myHomes/WrapperWithShadow.js +1 -1
  44. package/dist/components/myHomes/steps/MyHomeDetails.d.ts +1 -0
  45. package/dist/components/myHomes/steps/MyHomeDetails.js +1 -1
  46. package/dist/components/notifications/NotificationCard.d.ts +1 -1
  47. package/dist/components/notifications/NotificationCard.js +2 -47
  48. package/dist/components/rooms/VideosCounter.js +3 -5
  49. package/dist/hooks/inbox/index.d.ts +1 -0
  50. package/dist/hooks/inbox/index.js +1 -0
  51. package/dist/hooks/inbox/useMessagePanel.d.ts +7 -0
  52. package/dist/hooks/inbox/useMessagePanel.js +17 -0
  53. package/dist/hooks/index.d.ts +1 -0
  54. package/dist/hooks/index.js +1 -0
  55. package/dist/hooks/notifications/useNotificationsPanel.js +0 -5
  56. package/dist/index.d.ts +1 -1
  57. package/dist/index.js +1 -1
  58. package/dist/interfaces/appBar/UserProfile.interface.d.ts +2 -2
  59. package/dist/interfaces/footers/FooterButtons.interface.d.ts +1 -0
  60. package/dist/interfaces/forms/BaseCounter.interface.d.ts +5 -0
  61. package/dist/interfaces/forms/BaseCounter.interface.js +1 -0
  62. package/dist/interfaces/forms/index.d.ts +1 -0
  63. package/dist/interfaces/forms/index.js +1 -0
  64. package/dist/interfaces/inboxTile/MessageCard.interface.d.ts +16 -0
  65. package/dist/interfaces/inboxTile/MessageCard.interface.js +1 -0
  66. package/dist/interfaces/inboxTile/MessageChatPanel.interface.d.ts +12 -0
  67. package/dist/interfaces/inboxTile/MessageChatPanel.interface.js +1 -0
  68. package/dist/interfaces/inboxTile/MessagePanel.interface.d.ts +6 -0
  69. package/dist/interfaces/inboxTile/MessagePanel.interface.js +1 -0
  70. package/dist/interfaces/inboxTile/index.d.ts +3 -0
  71. package/dist/interfaces/inboxTile/index.js +3 -0
  72. package/dist/interfaces/notifications/NotificationsPanel.interface.d.ts +3 -2
  73. package/dist/mocks/inbox/index.d.ts +1 -0
  74. package/dist/mocks/inbox/index.js +1 -0
  75. package/dist/mocks/inbox/messages.d.ts +2 -0
  76. package/dist/mocks/inbox/messages.js +138 -0
  77. package/dist/mocks/index.d.ts +1 -0
  78. package/dist/mocks/index.js +1 -0
  79. package/dist/mocks/notifications/notifications.mock.js +4 -4
  80. package/dist/stories/assets/Illustrations.stories.js +2 -2
  81. package/dist/stories/inboxTile/MessagePanel.stories.d.ts +5 -0
  82. package/dist/stories/inboxTile/MessagePanel.stories.js +24 -0
  83. package/dist/theme/colors.d.ts +4 -1
  84. package/dist/theme/colors.js +4 -1
  85. package/dist/utils/Animations.utils.d.ts +6 -0
  86. package/dist/utils/Animations.utils.js +31 -0
  87. package/dist/utils/Avatars.utils.d.ts +1 -1
  88. package/dist/utils/Avatars.utils.js +1 -1
  89. package/dist/utils/index.d.ts +1 -0
  90. package/dist/utils/index.js +1 -0
  91. package/package.json +1 -1
  92. package/src/assets/images/animations/index.ts +15 -0
  93. package/src/assets/images/animations/trees-cloudy.png +0 -0
  94. package/src/assets/images/animations/trees-day-fall.png +0 -0
  95. package/src/assets/images/animations/trees-day-summer.png +0 -0
  96. package/src/assets/images/animations/trees-day-winter.png +0 -0
  97. package/src/assets/images/animations/trees-evening.png +0 -0
  98. package/src/assets/images/animations/trees-morning.png +0 -0
  99. package/src/assets/images/animations/trees-night.png +0 -0
  100. package/src/assets/images/chat-bubble.svg +8 -0
  101. package/src/assets/images/document2.svg +14 -0
  102. package/src/assets/images/index.ts +5 -0
  103. package/src/assets/locales/en/index.json +11 -10
  104. package/src/components/animations/CloudsAnimation.tsx +34 -17
  105. package/src/components/animations/WeatherTrees.tsx +37 -0
  106. package/src/components/animations/index.ts +1 -0
  107. package/src/components/badge/TextBadge.tsx +1 -1
  108. package/src/components/folderPanel/folderDetails/FilesCounter.tsx +6 -21
  109. package/src/components/footers/FooterButtons.tsx +2 -1
  110. package/src/components/forms/BaseCounter.tsx +30 -0
  111. package/src/components/forms/index.ts +1 -0
  112. package/src/components/homeAssistant/HomeAssistantWrapper.tsx +31 -18
  113. package/src/components/inboxTile/InboxForwardBanner.tsx +5 -4
  114. package/src/components/inboxTile/index.ts +1 -0
  115. package/src/components/inboxTile/panel/MessageCard.tsx +112 -0
  116. package/src/components/inboxTile/panel/MessageChatPanel.tsx +105 -0
  117. package/src/components/inboxTile/panel/MessagePanel.tsx +64 -0
  118. package/src/components/inboxTile/panel/index.ts +3 -0
  119. package/src/components/myHomes/WrapperWithShadow.tsx +1 -0
  120. package/src/components/myHomes/steps/MyHomeDetails.tsx +1 -1
  121. package/src/components/notifications/NotificationCard.tsx +2 -106
  122. package/src/components/onboarding/pages/SignIn.tsx +1 -0
  123. package/src/components/rooms/VideosCounter.tsx +2 -18
  124. package/src/hooks/inbox/index.ts +1 -0
  125. package/src/hooks/inbox/useMessagePanel.ts +23 -0
  126. package/src/hooks/index.ts +1 -0
  127. package/src/hooks/notifications/useNotificationsPanel.ts +0 -5
  128. package/src/index.ts +2 -0
  129. package/src/interfaces/appBar/UserProfile.interface.ts +2 -2
  130. package/src/interfaces/footers/FooterButtons.interface.ts +2 -1
  131. package/src/interfaces/forms/BaseCounter.interface.ts +5 -0
  132. package/src/interfaces/forms/index.ts +1 -0
  133. package/src/interfaces/inboxTile/MessageCard.interface.ts +18 -0
  134. package/src/interfaces/inboxTile/MessageChatPanel.interface.ts +13 -0
  135. package/src/interfaces/inboxTile/MessagePanel.interface.ts +7 -0
  136. package/src/interfaces/inboxTile/index.ts +3 -0
  137. package/src/interfaces/notifications/NotificationsPanel.interface.ts +3 -9
  138. package/src/mocks/inbox/index.ts +1 -0
  139. package/src/mocks/inbox/messages.ts +141 -0
  140. package/src/mocks/index.ts +1 -0
  141. package/src/mocks/notifications/notifications.mock.ts +4 -4
  142. package/src/stories/assets/Illustrations.stories.tsx +2 -0
  143. package/src/stories/inboxTile/MessagePanel.stories.tsx +47 -0
  144. package/src/theme/colors.ts +4 -1
  145. package/src/utils/Animations.utils.ts +39 -0
  146. package/src/utils/Avatars.utils.ts +2 -2
  147. package/src/utils/index.ts +1 -0
@@ -0,0 +1,141 @@
1
+ import { InboxMessageI } from '@/interfaces'
2
+ import { faker } from '@faker-js/faker'
3
+
4
+ const currentUserName = faker.internet.userName()
5
+
6
+ export const messagesMock: InboxMessageI[] = [
7
+ {
8
+ _id: faker.database.mongodbObjectId(),
9
+ chatReplies: [
10
+ {
11
+ _id: faker.database.mongodbObjectId(),
12
+ chatReplies: [],
13
+ description: faker.lorem.paragraphs(),
14
+ date: faker.date.recent(),
15
+ from: faker.person.fullName(),
16
+ isNew: false,
17
+ subject: faker.lorem.words(),
18
+ },
19
+ {
20
+ _id: faker.database.mongodbObjectId(),
21
+ chatReplies: [
22
+ {
23
+ _id: faker.database.mongodbObjectId(),
24
+ chatReplies: [],
25
+ description: faker.lorem.paragraphs(),
26
+ date: faker.date.recent(),
27
+ from: faker.person.fullName(),
28
+ isNew: false,
29
+ subject: faker.lorem.words(),
30
+ },
31
+ ],
32
+ description: faker.lorem.paragraphs(),
33
+ date: faker.date.recent(),
34
+ from: currentUserName,
35
+ isNew: false,
36
+ subject: faker.lorem.words(),
37
+ },
38
+ ],
39
+ currentUser: {
40
+ userName: currentUserName,
41
+ },
42
+ description: faker.lorem.paragraphs(),
43
+ date: faker.date.recent(),
44
+ from: faker.person.fullName(),
45
+ isNew: true,
46
+ subject: faker.lorem.words(),
47
+ },
48
+ {
49
+ _id: faker.database.mongodbObjectId(),
50
+ chatReplies: [
51
+ {
52
+ _id: faker.database.mongodbObjectId(),
53
+ chatReplies: [],
54
+ description: faker.lorem.paragraphs(),
55
+ date: faker.date.recent(),
56
+ from: faker.person.fullName(),
57
+ isNew: false,
58
+ subject: faker.lorem.words(),
59
+ },
60
+ {
61
+ _id: faker.database.mongodbObjectId(),
62
+ chatReplies: [],
63
+ description: faker.lorem.paragraphs(),
64
+ date: faker.date.recent(),
65
+ from: currentUserName,
66
+ isNew: false,
67
+ subject: faker.lorem.words(),
68
+ },
69
+ {
70
+ _id: faker.database.mongodbObjectId(),
71
+ chatReplies: [],
72
+ description: faker.lorem.paragraphs(),
73
+ date: faker.date.recent(),
74
+ from: faker.person.fullName(),
75
+ isNew: false,
76
+ subject: faker.lorem.words(),
77
+ },
78
+ ],
79
+ currentUser: {
80
+ userName: currentUserName,
81
+ },
82
+ description: faker.lorem.paragraphs(),
83
+ date: faker.date.recent(),
84
+ from: faker.person.fullName(),
85
+ isNew: false,
86
+ subject: faker.lorem.words(),
87
+ },
88
+ {
89
+ _id: faker.database.mongodbObjectId(),
90
+ chatReplies: [
91
+ {
92
+ _id: faker.database.mongodbObjectId(),
93
+ chatReplies: [],
94
+ description: faker.lorem.paragraphs(),
95
+ date: faker.date.recent(),
96
+ from: faker.person.fullName(),
97
+ isNew: false,
98
+ subject: faker.lorem.words(),
99
+ },
100
+ ],
101
+ currentUser: {
102
+ userName: currentUserName,
103
+ },
104
+ description: faker.lorem.paragraphs(),
105
+ date: faker.date.recent(),
106
+ from: faker.person.fullName(),
107
+ isNew: true,
108
+ subject: faker.lorem.words(),
109
+ },
110
+ {
111
+ _id: faker.database.mongodbObjectId(),
112
+ chatReplies: [
113
+ {
114
+ _id: faker.database.mongodbObjectId(),
115
+ chatReplies: [],
116
+ description: faker.lorem.paragraphs(),
117
+ date: faker.date.recent(),
118
+ from: currentUserName,
119
+ isNew: false,
120
+ subject: faker.lorem.words(),
121
+ },
122
+ {
123
+ _id: faker.database.mongodbObjectId(),
124
+ chatReplies: [],
125
+ description: faker.lorem.paragraphs(),
126
+ date: faker.date.recent(),
127
+ from: faker.person.fullName(),
128
+ isNew: false,
129
+ subject: faker.lorem.words(),
130
+ },
131
+ ],
132
+ currentUser: {
133
+ userName: currentUserName,
134
+ },
135
+ description: faker.lorem.paragraphs(),
136
+ date: faker.date.recent(),
137
+ from: faker.person.fullName(),
138
+ isNew: false,
139
+ subject: faker.lorem.words(),
140
+ },
141
+ ]
@@ -3,6 +3,7 @@ export * from './contacts'
3
3
  export * from './folderPanel'
4
4
  export * from './forms'
5
5
  export * from './homeAssistant'
6
+ export * from './inbox'
6
7
  export * from './myHomes'
7
8
  export * from './myProfile'
8
9
  export * from './notifications'
@@ -8,7 +8,7 @@ export const notificationsMock: NotificationCardI[] = [
8
8
  createdAt: new Date(),
9
9
  message: faker.lorem.sentence(),
10
10
  status: 'added',
11
- type: 'contact',
11
+ label: 'contact added',
12
12
  },
13
13
  {
14
14
  active: true,
@@ -16,7 +16,7 @@ export const notificationsMock: NotificationCardI[] = [
16
16
  createdAt: new Date(),
17
17
  message: faker.lorem.sentence(),
18
18
  status: 'removed',
19
- type: 'file',
19
+ label: 'file removed',
20
20
  },
21
21
  {
22
22
  active: true,
@@ -24,7 +24,7 @@ export const notificationsMock: NotificationCardI[] = [
24
24
  createdAt: new Date(),
25
25
  message: faker.lorem.sentence(),
26
26
  status: 'shared',
27
- type: 'folder',
27
+ label: 'folder shared',
28
28
  },
29
29
  {
30
30
  active: true,
@@ -32,6 +32,6 @@ export const notificationsMock: NotificationCardI[] = [
32
32
  createdAt: new Date(),
33
33
  message: faker.lorem.sentence(),
34
34
  status: 'updated',
35
- type: 'payment',
35
+ label: 'updated payment',
36
36
  },
37
37
  ]
@@ -46,6 +46,7 @@ import {
46
46
  DiningRoom,
47
47
  DocIcon,
48
48
  Document,
49
+ Document2,
49
50
  Doors,
50
51
  Drop,
51
52
  DropCalendar,
@@ -304,6 +305,7 @@ export const Illustrations = () => {
304
305
  <IconWrapper icon={DiningRoom} name="DiningRoom" />
305
306
  <IconWrapper icon={DocIcon} name="DocIcon" />
306
307
  <IconWrapper icon={Document} name="Document" />
308
+ <IconWrapper icon={Document2} name="Document2" />
307
309
  <IconWrapper icon={Drop} name="Drop" />
308
310
  <IconWrapper icon={DropCalendar} name="DropCalendar" />
309
311
  <IconWrapper icon={Electricity} name="Electricity" />
@@ -0,0 +1,47 @@
1
+ import { Meta } from '@storybook/react'
2
+ import { MessageChatPanel, MessagePanel, RightPanel } from '@/components'
3
+ import { action } from '@storybook/addon-actions'
4
+ import { InboxMessageI, MessagePanelI } from '@/interfaces'
5
+ import { messagesMock } from '@/mocks'
6
+ import { Fragment, useState } from 'react'
7
+
8
+ export default {
9
+ title: 'Components/Inbox',
10
+ component: MessagePanel,
11
+ args: {
12
+ messages: messagesMock,
13
+ },
14
+ decorators: [
15
+ (Story) => (
16
+ <RightPanel isOpen onClose={action('onClose')}>
17
+ <Story />
18
+ </RightPanel>
19
+ ),
20
+ ],
21
+ } as Meta<MessagePanelI>
22
+
23
+ export const MessagePanelComponent = (args: MessagePanelI) => {
24
+ const [showMessageChat, setShowMessageChat] = useState(false)
25
+ const [selectedMessage, setSelectedMessage] =
26
+ useState<InboxMessageI | undefined>(undefined)
27
+ const handleMessageChatToggle = () => setShowMessageChat(!showMessageChat)
28
+ return (
29
+ <Fragment>
30
+ <MessagePanel
31
+ {...args}
32
+ onClick={(message) => {
33
+ setSelectedMessage(message)
34
+ handleMessageChatToggle()
35
+ }}
36
+ />
37
+ <RightPanel isOpen={showMessageChat} onClose={handleMessageChatToggle}>
38
+ <MessageChatPanel
39
+ message={selectedMessage}
40
+ onReply={action('onReply')}
41
+ onClose={action('onCloseChatPanel')}
42
+ onBack={handleMessageChatToggle}
43
+ />
44
+ </RightPanel>
45
+ </Fragment>
46
+ )
47
+ }
@@ -115,7 +115,10 @@ export const colors = {
115
115
  1: '#f5ddf4',
116
116
  2: '#F544DA',
117
117
  },
118
- skyGradient: 'linear(to-b, #cff1fc, #F9FEFF)',
118
+ dayGradient: 'linear(to-b, #cff1fc, #F9FEFF)',
119
+ morningGradient: 'linear(to-b, #d2abf1, #f7dcac)',
120
+ eveningGradient: 'linear(to-b, #bcc5f2, #ee91f3)',
121
+ nightGradient: 'linear(to-b, #7a7bcf, #a4b0d7)',
119
122
  overlay: '#00000040',
120
123
  overlayWhite: '#FFFFFF80',
121
124
  }
@@ -0,0 +1,39 @@
1
+ export type TimeOfDay = 'morning' | 'day' | 'evening' | 'night'
2
+ export type Season = 'spring' | 'summer' | 'fall' | 'winter'
3
+ export type TimeOfDaySeason = `${TimeOfDay}-${Season}`
4
+
5
+ export const getTimeOfDay = (): TimeOfDay => {
6
+ const currentHour = new Date().getHours()
7
+
8
+ switch (true) {
9
+ case currentHour >= 6 && currentHour < 12:
10
+ return 'morning'
11
+ case currentHour >= 12 && currentHour < 18:
12
+ return 'day'
13
+ case currentHour >= 18 && currentHour < 21:
14
+ return 'evening'
15
+ default:
16
+ return 'night'
17
+ }
18
+ }
19
+
20
+ export const getSeason = (): Season => {
21
+ const currentMonth = new Date().getMonth()
22
+
23
+ switch (true) {
24
+ case currentMonth >= 2 && currentMonth < 5:
25
+ return 'spring'
26
+ case currentMonth >= 5 && currentMonth < 8:
27
+ return 'summer'
28
+ case currentMonth >= 8 && currentMonth < 11:
29
+ return 'fall'
30
+ default:
31
+ return 'winter'
32
+ }
33
+ }
34
+
35
+ export const getTimeOfDaySeason = (): TimeOfDaySeason => {
36
+ const timeOfDay = getTimeOfDay()
37
+ const season = getSeason()
38
+ return `${timeOfDay}-${season}` as TimeOfDaySeason
39
+ }
@@ -34,9 +34,9 @@ const colors = [
34
34
  '#37323E',
35
35
  ]
36
36
 
37
- export const randomColor = (index: number) => {
37
+ export const randomColor = (index = Math.floor(Math.random() * 30)) => {
38
38
  if (index >= colors.length) {
39
39
  return colors[index % colors.length]
40
40
  }
41
41
  return colors[index]
42
- }
42
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './AddMedia.utils'
2
+ export * from './Animations.utils'
2
3
  export * from './Avatars.utils'
3
4
  export * from './BrowserDetectors.utils'
4
5
  export * from './BubblesTour.utils'