From 0d1139f38531d9d5f39a3e34d9eb84ea8366099b Mon Sep 17 00:00:00 2001 From: Alexander Platov Date: Wed, 31 May 2023 09:41:21 +0300 Subject: [PATCH] UBER-307,-308,-310,-311,-312: fixed activity in Inbox (#3298) Signed-off-by: Alexander Platov --- packages/theme/styles/_colors.scss | 19 ++++ packages/theme/styles/_layouts.scss | 1 + packages/theme/styles/common.scss | 1 + packages/theme/styles/components.scss | 96 +++++++++++++++++ packages/ui/src/components/Tabs.svelte | 3 +- packages/ui/src/components/TabsControl.svelte | 23 ++-- .../src/components/ContactPresenter.svelte | 9 +- .../src/components/ContactRefPresenter.svelte | 7 +- .../EmployeeAccountPresenter.svelte | 11 +- .../EmployeeAccountRefPresenter.svelte | 5 +- .../src/components/MemberPresenter.svelte | 5 +- .../components/OrganizationPresenter.svelte | 8 +- .../src/components/PersonRefPresenter.svelte | 2 + .../src/components/DocumentPresenter.svelte | 6 +- .../src/components/LeadPresenter.svelte | 6 +- .../src/components/Activity.svelte | 8 +- .../src/components/Inbox.svelte | 11 +- .../src/components/NotificationView.svelte | 101 +++--------------- .../src/components/People.svelte | 13 +-- .../components/PeopleNotificationsView.svelte | 76 +++++++------ .../src/components/TxView.svelte | 8 +- .../components/ApplicationPresenter.svelte | 7 +- .../NotificationApplicantPresenter.svelte | 14 ++- .../src/components/VacancyPresenter.svelte | 14 ++- .../components/review/ReviewPresenter.svelte | 8 +- .../components/ComponentPresenter.svelte | 10 +- .../issues/NotificationIssuePresenter.svelte | 12 +-- .../milestones/MilestonePresenter.svelte | 5 +- .../projects/ProjectPresenter.svelte | 5 +- .../src/components/ObjectPresenter.svelte | 2 + 30 files changed, 284 insertions(+), 212 deletions(-) diff --git a/packages/theme/styles/_colors.scss b/packages/theme/styles/_colors.scss index 2f8358f9c96..de3b67da5bb 100644 --- a/packages/theme/styles/_colors.scss +++ b/packages/theme/styles/_colors.scss @@ -142,6 +142,15 @@ --theme-calendar-holiday-bgcolor: rgba(235, 87, 87, .1); --theme-calendar-weekend-bgcolor: rgba(242, 153, 74, .05); + --theme-inbox-notify: #F47758; + --theme-inbox-people-notify: #2B5190; + --theme-inbox-activity-bgcolor: #1A1A28; + --theme-inbox-activitymsg-bgcolor: rgba(255, 255, 255, .03); + --theme-inbox-activitymsg-divider: rgba(255, 255, 255, .1); + --theme-inbox-activitymsg-border: rgba(255, 255, 255, .03); + --theme-inbox-counter-bgcolor: rgba(255, 255, 255, .06); + --theme-inbox-people-counter-bgcolor: rgba(43, 81, 144, .1); + --theme-toggle-sw-color: #fff; --theme-toggle-on-sw-color: #fff; --theme-toggle-bg-color: rgba(120, 120, 128, 0.32); @@ -313,6 +322,16 @@ --theme-calendar-today-bgcolor: rgba(43, 81, 144, .1); --theme-calendar-holiday-bgcolor: rgba(235, 87, 87, .1); --theme-calendar-weekend-bgcolor: rgba(242, 153, 74, .1); + + --theme-inbox-notify: #F47758; + --theme-inbox-people-notify: #2B5190; + --theme-inbox-activity-bgcolor: #fff; + --theme-inbox-activitymsg-bgcolor: #F2F2F2; + --theme-inbox-activitymsg-divider: rgba(0, 0, 0, .1); + --theme-inbox-activitymsg-border: rgba(0, 0, 0, .03); + --theme-inbox-counter-bgcolor: rgba(0, 0, 0, .06); + --theme-inbox-people-counter-bgcolor: rgba(43, 81, 144, .1); + --theme-toggle-sw-color: #fff; --theme-toggle-on-sw-color: #fff; --theme-toggle-bg-color: rgba(120, 120, 128, 0.32); diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss index 36720588a7b..ac9b3faf769 100644 --- a/packages/theme/styles/_layouts.scss +++ b/packages/theme/styles/_layouts.scss @@ -648,6 +648,7 @@ input.search { .min-w-8 { min-width: 2rem; } .min-w-9 { min-width: 2.25rem; } .min-w-80 { min-width: 20rem; } +.min-w-100 { min-width: 25rem; } .min-w-168 { min-width: 42rem; } .min-w-min { min-width: min-content; } .min-h-0 { min-height: 0; } diff --git a/packages/theme/styles/common.scss b/packages/theme/styles/common.scss index 33e6d5f3f12..e41b5468c25 100644 --- a/packages/theme/styles/common.scss +++ b/packages/theme/styles/common.scss @@ -48,6 +48,7 @@ display: flex; flex-direction: column; height: 100%; + min-height: 0; overflow: hidden; &.filled { background-color: var(--theme-bg-color); } diff --git a/packages/theme/styles/components.scss b/packages/theme/styles/components.scss index f196767e515..b77fe3e40be 100644 --- a/packages/theme/styles/components.scss +++ b/packages/theme/styles/components.scss @@ -765,6 +765,102 @@ } } +/* Inbox */ +.inbox-activity { + height: 100%; + min-height: 0; + min-width: 0; + background-color: var(--theme-inbox-activity-bgcolor); + + &__container { + position: relative; + display: flex; + flex-grow: 1; + flex-shrink: 0; + min-width: 0; + min-height: 0; + font-size: .8125rem; + border: 1px solid transparent; + outline: none; + + &:not(.selected) { + margin: 0 1.75rem; + cursor: pointer; + } + + .crop-presenter, + .inline-presenter { margin: -.3125rem 0; } + + .inbox-activity__content { + display: flex; + flex-direction: column; + // flex-grow: 1; + color: var(--theme-caption-color); + + &.shrink { padding: .75rem 0; } + &:not(.shrink) { padding: 1rem 0; } + &.read { + opacity: .6; + + .time { color: var(--theme-content-color); } + } + } + + .time { color: var(--theme-halfcontent-color); } + .notify { + position: absolute; + top: 1rem; + left: -1.125rem; + height: 0.5rem; + width: 0.5rem; + background-color: var(--theme-inbox-notify); + border-radius: 50%; + + &.people { background-color: var(--theme-inbox-counter-bgcolor); } + } + .counter { + display: flex; + align-items: center; + justify-content: center; + height: 1.375rem; + width: 1.375rem; + color: var(--theme-dark-color); + background-color: var(--theme-inbox-counter-bgcolor); + border-radius: 50%; + + &.float { + position: absolute; + top: .5625rem; + right: 0; + } + &.people { + color: var(--theme-inbox-people-notify); + background-color: var(--theme-inbox-counter-bgcolor); + } + } + .arrow { + position: absolute; + top: 1.125rem; + right: 0; + } + + &:last-child:not(.selected) { border-bottom: 1px solid var(--theme-inbox-activitymsg-divider); } + &:not(.selected) + &:not(.selected) { border-top-color: var(--theme-inbox-activitymsg-divider); } + + &.selected { + margin: 0 0.5rem; + background-color: var(--theme-inbox-activitymsg-bgcolor); + border: 1px solid var(--theme-inbox-activitymsg-border); + border-radius: 0.25rem; + + .notify { left: .125rem; } + .inbox-activity__content { padding: 1rem 1.25rem; } + .counter.float { right: 1.25rem; } + .arrow { right: 1.25rem; } + } + } +} + /* ListView - global style */ .list-container .category-container .categoryHeader.subLevel.closed { border-radius: 0 0 0.25rem 0.25rem; diff --git a/packages/ui/src/components/Tabs.svelte b/packages/ui/src/components/Tabs.svelte index 9f5017f0dad..892b221fffc 100644 --- a/packages/ui/src/components/Tabs.svelte +++ b/packages/ui/src/components/Tabs.svelte @@ -20,10 +20,11 @@ export let model: TabModel export let selected = 0 export let withPadding: boolean = false + export let noMargin: boolean = false export let size: 'small' | 'medium' = 'medium' - + {#if $$slots.rightButtons}
diff --git a/packages/ui/src/components/TabsControl.svelte b/packages/ui/src/components/TabsControl.svelte index 161247a89d4..5f45d636d55 100644 --- a/packages/ui/src/components/TabsControl.svelte +++ b/packages/ui/src/components/TabsControl.svelte @@ -19,10 +19,17 @@ export let model: TabBase[] export let selected = 0 export let withPadding: boolean = false + export let noMargin: boolean = false export let size: 'small' | 'medium' = 'medium' -
+
{#each model as tab, i}
diff --git a/plugins/notification-resources/src/components/Inbox.svelte b/plugins/notification-resources/src/components/Inbox.svelte index adeae658325..c8e320a8624 100644 --- a/plugins/notification-resources/src/components/Inbox.svelte +++ b/plugins/notification-resources/src/components/Inbox.svelte @@ -82,9 +82,9 @@ let selectedTab = 0 -
+
{#if visibileNav} -
+
{#if selectedEmployee === undefined} @@ -118,9 +119,3 @@ {/if}
- - diff --git a/plugins/notification-resources/src/components/NotificationView.svelte b/plugins/notification-resources/src/components/NotificationView.svelte index 8827347f806..b67fc42568d 100644 --- a/plugins/notification-resources/src/components/NotificationView.svelte +++ b/plugins/notification-resources/src/components/NotificationView.svelte @@ -67,97 +67,30 @@ {#if doc} -
-
+
+ {#if newTxes > 0 && !selected}
{/if}
-
-
- {#if presenter} - - {/if} - {#if newTxes > 0} -
- {newTxes} -
- {/if} -
-
- {#if tx} - - {/if} -
- -
+
+ {#if presenter} + + {/if} + {#if newTxes > 0 && !selected} +
{newTxes}
+ {/if} +
+
+ {#if tx} + + {/if} +
+
{/if} - - diff --git a/plugins/notification-resources/src/components/People.svelte b/plugins/notification-resources/src/components/People.svelte index e06d240025f..57c1127cf7e 100644 --- a/plugins/notification-resources/src/components/People.svelte +++ b/plugins/notification-resources/src/components/People.svelte @@ -153,8 +153,8 @@ } -
- +
+ {#if loading} {:else} @@ -175,12 +175,3 @@ {/if}
- diff --git a/plugins/notification-resources/src/components/PeopleNotificationsView.svelte b/plugins/notification-resources/src/components/PeopleNotificationsView.svelte index 6551d38146a..d0ee90dc43a 100644 --- a/plugins/notification-resources/src/components/PeopleNotificationsView.svelte +++ b/plugins/notification-resources/src/components/PeopleNotificationsView.svelte @@ -76,60 +76,56 @@ {#if doc}
dispatch('open', value._id)} > -
+ {#if newTxes > 0 && !selected}
{/if} -
-
-
-
- - {#if employee} - {getName(employee)} - {:else} - - {/if} - {#if newTxes > 0} -
- {newTxes} -
- {/if} +
+
+ + {#if employee} + {getName(employee)} + {:else} + + {/if} + {#if newTxes > 0} +
+ {newTxes}
-
- { - dispatch('open', value._id) - }} - /> -
-
-
- {#if presenter} - - {/if} + {/if} +
+ { + dispatch('open', value._id) + }} + />
-
- {#if tx && firstItem} - - {/if} -
- -
+
+
+ {#if presenter} + + {/if} +
+
+ {#if tx && firstItem} + + {/if} +
+
{/if} - + --> diff --git a/plugins/notification-resources/src/components/TxView.svelte b/plugins/notification-resources/src/components/TxView.svelte index 3acb6c2afb3..4f7f2d96cc3 100644 --- a/plugins/notification-resources/src/components/TxView.svelte +++ b/plugins/notification-resources/src/components/TxView.svelte @@ -188,9 +188,9 @@ {#if !hasMessageType} {#if value.isObjectSet} - + {:else} - + {/if} {/if} @@ -211,9 +211,9 @@ {#if !hasMessageType}
{#if value.isObjectSet} - + {:else} - + {/if}
{/if} diff --git a/plugins/recruit-resources/src/components/ApplicationPresenter.svelte b/plugins/recruit-resources/src/components/ApplicationPresenter.svelte index 35ff0b37401..02ac62a4c8b 100644 --- a/plugins/recruit-resources/src/components/ApplicationPresenter.svelte +++ b/plugins/recruit-resources/src/components/ApplicationPresenter.svelte @@ -22,21 +22,22 @@ export let value: Applicant export let inline: boolean = false - export let disabled = false + export let disabled: boolean = false + export let accent: boolean = false const client = getClient() const shortLabel = value && client.getHierarchy().getClass(value._class).shortLabel {#if value && shortLabel} - +
{#if !inline}
{/if} - + {#if shortLabel}{shortLabel}-{/if}{value.number}
diff --git a/plugins/recruit-resources/src/components/NotificationApplicantPresenter.svelte b/plugins/recruit-resources/src/components/NotificationApplicantPresenter.svelte index 823f44349e8..233164cf27e 100644 --- a/plugins/recruit-resources/src/components/NotificationApplicantPresenter.svelte +++ b/plugins/recruit-resources/src/components/NotificationApplicantPresenter.svelte @@ -35,17 +35,15 @@ {#if value} -
-
- {title} +
+
+ {title} {currentVacancy?.name}
-
- - {candidate ? getName(candidate) : ''} - -
+ + {candidate ? getName(candidate) : ''} +
{/if} diff --git a/plugins/recruit-resources/src/components/VacancyPresenter.svelte b/plugins/recruit-resources/src/components/VacancyPresenter.svelte index 1eddc2fb2f5..752bc3d6133 100644 --- a/plugins/recruit-resources/src/components/VacancyPresenter.svelte +++ b/plugins/recruit-resources/src/components/VacancyPresenter.svelte @@ -24,7 +24,8 @@ export let value: Vacancy export let inline: boolean = false - export let disabled = false + export let disabled: boolean = false + export let accent: boolean = false const dispatch = createEventDispatcher() $: accentColor = getPlatformAvatarColorForTextDef(value.name, $themeStore.dark) @@ -36,12 +37,19 @@ {#if value} - +
{#if !inline}
{/if} - {value.name} + {value.name}
{/if} diff --git a/plugins/recruit-resources/src/components/review/ReviewPresenter.svelte b/plugins/recruit-resources/src/components/review/ReviewPresenter.svelte index 80f8d42f619..1b283ea9d61 100644 --- a/plugins/recruit-resources/src/components/review/ReviewPresenter.svelte +++ b/plugins/recruit-resources/src/components/review/ReviewPresenter.svelte @@ -22,6 +22,8 @@ export let value: Review export let inline: boolean = false + export let disabled: boolean = false + export let accent: boolean = false const client = getClient() @@ -29,12 +31,14 @@ {#if value && label} - +
- {label}-{value.number} + + {label}-{value.number} +
{/if} diff --git a/plugins/tracker-resources/src/components/components/ComponentPresenter.svelte b/plugins/tracker-resources/src/components/components/ComponentPresenter.svelte index f8e9ba735b5..475e36e5e65 100644 --- a/plugins/tracker-resources/src/components/components/ComponentPresenter.svelte +++ b/plugins/tracker-resources/src/components/components/ComponentPresenter.svelte @@ -25,19 +25,25 @@ export let onClick: (() => void) | undefined = undefined export let disabled = false export let inline: boolean = false + export let accent: boolean = false export let noUnderline = false export let kind: 'list' | undefined = undefined {#if value} - + {#if !inline && shouldShowAvatar}
{/if} - + {value.label} diff --git a/plugins/tracker-resources/src/components/issues/NotificationIssuePresenter.svelte b/plugins/tracker-resources/src/components/issues/NotificationIssuePresenter.svelte index 31988fb132e..daaa70ec856 100644 --- a/plugins/tracker-resources/src/components/issues/NotificationIssuePresenter.svelte +++ b/plugins/tracker-resources/src/components/issues/NotificationIssuePresenter.svelte @@ -28,15 +28,15 @@ {#if value} -
-
- {title} - +
+
+ {title} + {currentProject?.name}
-
+ {value.title} -
+
{/if} diff --git a/plugins/tracker-resources/src/components/milestones/MilestonePresenter.svelte b/plugins/tracker-resources/src/components/milestones/MilestonePresenter.svelte index 6e40387413b..e9742f2a87e 100644 --- a/plugins/tracker-resources/src/components/milestones/MilestonePresenter.svelte +++ b/plugins/tracker-resources/src/components/milestones/MilestonePresenter.svelte @@ -24,6 +24,7 @@ export let shouldShowAvatar = true export let disabled = false export let inline = false + export let accent: boolean = false export let onClick: (() => void) | undefined = undefined const dispatch = createEventDispatcher() @@ -38,14 +39,14 @@ }) - +
{#if !inline && shouldShowAvatar}
{/if} - + {value.label}
diff --git a/plugins/tracker-resources/src/components/projects/ProjectPresenter.svelte b/plugins/tracker-resources/src/components/projects/ProjectPresenter.svelte index 2b9ac6503eb..9ef8053095d 100644 --- a/plugins/tracker-resources/src/components/projects/ProjectPresenter.svelte +++ b/plugins/tracker-resources/src/components/projects/ProjectPresenter.svelte @@ -18,7 +18,8 @@ import tracker from '../../plugin' export let value: Project - export let inline = false + export let inline: boolean = false + export let accent: boolean = false
@@ -36,7 +37,7 @@ size="small" />
- + {value.name}
diff --git a/plugins/view-resources/src/components/ObjectPresenter.svelte b/plugins/view-resources/src/components/ObjectPresenter.svelte index 3de6a5ea9be..8bda56ad322 100644 --- a/plugins/view-resources/src/components/ObjectPresenter.svelte +++ b/plugins/view-resources/src/components/ObjectPresenter.svelte @@ -23,6 +23,7 @@ export let value: Doc | RelatedDocument | undefined = undefined export let props: Record = {} export let inline: boolean = true + export let accent: boolean = true export let shouldShowAvatar: boolean = true export let noUnderline: boolean = false @@ -64,6 +65,7 @@ value={doc} {...props} {inline} + {accent} {shouldShowAvatar} {noUnderline} on:accent-color