diff --git a/frontend/app/notification/notificationbubbles.less b/frontend/app/notification/notificationbubbles.less index 345fa40e8..a3de7097b 100644 --- a/frontend/app/notification/notificationbubbles.less +++ b/frontend/app/notification/notificationbubbles.less @@ -3,8 +3,8 @@ .notification-bubbles { display: flex; - width: 380px; + width: 432px; flex-direction: column; - align-items: flex-start; + align-items: flex-end; row-gap: 8px; } diff --git a/frontend/app/notification/notificationpopover.tsx b/frontend/app/notification/notificationpopover.tsx index c6cf9bb2c..4df5a4147 100644 --- a/frontend/app/notification/notificationpopover.tsx +++ b/frontend/app/notification/notificationpopover.tsx @@ -37,8 +37,10 @@ const NotificationPopover = () => { setNotificationPopoverMode(!notificationPopoverMode); }, [notificationPopoverMode]); - const hasErrors = notifications.some((n) => n.statusType === "error"); - const hasUpdate = notifications.some((n) => n.statusType === "update"); + const filteredNotifications = notifications.filter((n) => n.componentType == null); + + const hasErrors = filteredNotifications.some((n) => n.statusType === "error"); + const hasUpdate = filteredNotifications.some((n) => n.statusType === "update"); const addOnClassNames = hasUpdate ? "solid green" : hasErrors ? "solid red" : "ghost grey"; @@ -61,12 +63,12 @@ const NotificationPopover = () => { "notification-trigger-button horizontal-padding-6 vertical-padding-4 border-radius-", addOnClassNames )} - disabled={notifications.length === 0} + disabled={filteredNotifications.length === 0} onClick={handleTogglePopover} > {getIcon()} - {notifications.length > 0 && ( + {filteredNotifications.length > 0 && (
Notifications @@ -85,7 +87,7 @@ const NotificationPopover = () => { options={{ scrollbars: { autoHide: "leave" } }} style={{ maxHeight: window.innerHeight / 2 }} > - {notifications.map((notif, index) => ( + {filteredNotifications.map((notif, index) => ( { onMouseEnter={() => setHoveredId(notif.id)} onMouseLeave={() => setHoveredId(null)} /> - {index !== notifications.length - 1 &&
} + {index !== filteredNotifications.length - 1 &&
}
))} diff --git a/frontend/app/notification/ratingbubble.less b/frontend/app/notification/ratingbubble.less index 5b26ba14a..4e86efe56 100644 --- a/frontend/app/notification/ratingbubble.less +++ b/frontend/app/notification/ratingbubble.less @@ -1,33 +1,10 @@ // Copyright 2024, Command Line Inc. // SPDX-License-Identifier: Apache-2.0 -.notification-title { - font-size: 13px; - font-style: normal; - font-weight: 500; - line-height: 18px; - margin-bottom: 3px; - color: var(--success-color); -} - -.notification-message { - font-size: 13px; - font-style: normal; - font-weight: 400; - line-height: 18px; - opacity: 0.7; -} - -.close-btn { - position: absolute; - top: 5px; - right: 5px; -} - -.rating-bubble { +.notification-rating-bubble { position: relative; display: flex; - width: 380px; + width: 432px; padding: 16px 24px 16px 16px; align-items: flex-start; gap: 12px; @@ -35,14 +12,25 @@ border: 0.5px solid rgba(255, 255, 255, 0.12); background: #232323; box-shadow: 0px 8px 32px 0px rgba(0, 0, 0, 0.25); -} -.notification-inner { - display: flex; - align-items: flex-start; - column-gap: 6px; -} + .notification-inner { + display: flex; + align-items: flex-start; + flex-direction: column; + column-gap: 6px; -&.hovered { - background: #292929; + .actions-wrapper { + display: flex; + column-gap: 9px; + margin-top: 12px; + + button { + width: 32px; + height: 32px; + padding: 0; + text-align: center; + justify-content: center; + } + } + } } diff --git a/frontend/app/notification/ratingbubble.tsx b/frontend/app/notification/ratingbubble.tsx index 6203b3b17..1f8dbdda0 100644 --- a/frontend/app/notification/ratingbubble.tsx +++ b/frontend/app/notification/ratingbubble.tsx @@ -30,7 +30,7 @@ const RatingBubble = ({ notification, onRemove }: RatingBubbleProps) => { }; return ( -
+
-
- {title &&
{title}
} - {message &&
{message}
} + {title &&
{title}
} + {message &&
{message}
} +
{[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((rating) => (