diff --git a/app/components/UI/Notification/List/index.tsx b/app/components/UI/Notification/List/index.tsx
index 9afeab5b0a16..9e282e45e6ec 100644
--- a/app/components/UI/Notification/List/index.tsx
+++ b/app/components/UI/Notification/List/index.tsx
@@ -157,11 +157,11 @@ export function NotificationsListItem(props: NotificationsListItemProps) {
style={tw`gap-2`}
>
-
+
-
);
diff --git a/app/components/UI/Notification/NotificationMenuItem/Content.test.tsx b/app/components/UI/Notification/NotificationMenuItem/Content.test.tsx
index 870209563295..d1a39401a185 100644
--- a/app/components/UI/Notification/NotificationMenuItem/Content.test.tsx
+++ b/app/components/UI/Notification/NotificationMenuItem/Content.test.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import renderWithProvider from '../../../../util/test/renderWithProvider';
-import NotificationContent from './Content';
+import NotificationContent, { TEST_IDS } from './Content';
describe('NotificationContent', () => {
const title = 'Welcome to the new Test!';
@@ -15,6 +15,7 @@ describe('NotificationContent', () => {
it('renders title and description', () => {
const { getByText } = renderWithProvider(
{
expect(getByText(description.start)).toBeOnTheScreen();
expect(getByText(description.end)).toBeOnTheScreen();
});
+
+ it.each([
+ { isRead: false, visible: true },
+ { isRead: true, visible: false },
+ ])(
+ 'renders unread indicator when isRead is $isRead',
+ ({ isRead, visible }) => {
+ const { queryByTestId } = renderWithProvider(
+ ,
+ );
+
+ const unreadBadge = queryByTestId(TEST_IDS.UNREAD_BADGE);
+
+ if (visible) {
+ expect(unreadBadge).toBeOnTheScreen();
+ } else {
+ expect(unreadBadge).not.toBeOnTheScreen();
+ }
+ },
+ );
});
diff --git a/app/components/UI/Notification/NotificationMenuItem/Content.tsx b/app/components/UI/Notification/NotificationMenuItem/Content.tsx
index 65cb0882e782..966434f1419a 100644
--- a/app/components/UI/Notification/NotificationMenuItem/Content.tsx
+++ b/app/components/UI/Notification/NotificationMenuItem/Content.tsx
@@ -1,5 +1,10 @@
import React from 'react';
import { View } from 'react-native';
+import {
+ BadgeStatus,
+ BadgeStatusStatus,
+} from '@metamask/design-system-react-native';
+import { useTailwind } from '@metamask/design-system-twrnc-preset';
import Text, {
TextColor,
TextVariant,
@@ -8,18 +13,23 @@ import { NotificationMenuItem } from '../../../../util/notifications/notificatio
import useStyles from '../List/useStyles';
import { formatMenuItemDate } from '../../../../util/notifications/methods';
+export const TEST_IDS = {
+ UNREAD_BADGE: 'notification-menu-item-content:unread-badge',
+};
+
type NotificationContentProps = Pick<
NotificationMenuItem,
'title' | 'description' | 'createdAt'
->;
+> & { isRead: boolean };
function NotificationContent(props: NotificationContentProps) {
const { styles } = useStyles();
+ const tw = useTailwind();
return (
{/* Section 1 - Title + Timestamp */}
-
+
{props.title}
-
- {formatMenuItemDate(new Date(props.createdAt))}
-
+
+ {!props.isRead && (
+
+ )}
+
+ {formatMenuItemDate(new Date(props.createdAt))}
+
+
{/* Section 2 - Left Desc + Right Desc */}
diff --git a/app/components/UI/Notification/NotificationMenuItem/Icon.test.tsx b/app/components/UI/Notification/NotificationMenuItem/Icon.test.tsx
index ec00bbfbe852..3bc045d7871f 100644
--- a/app/components/UI/Notification/NotificationMenuItem/Icon.test.tsx
+++ b/app/components/UI/Notification/NotificationMenuItem/Icon.test.tsx
@@ -30,7 +30,6 @@ describe('NotificationIcon', () => {
({ hasBadge, assertion }) => {
const { getByTestId, queryByTestId } = renderWithProvider(
,
diff --git a/app/components/UI/Notification/NotificationMenuItem/Icon.tsx b/app/components/UI/Notification/NotificationMenuItem/Icon.tsx
index 5d1638a3a0d0..79443e6b416e 100644
--- a/app/components/UI/Notification/NotificationMenuItem/Icon.tsx
+++ b/app/components/UI/Notification/NotificationMenuItem/Icon.tsx
@@ -1,11 +1,6 @@
import { View } from 'react-native';
import { Image } from 'expo-image';
-import {
- BadgeIcon,
- IconSize,
- BadgeStatus,
- BadgeStatusStatus,
-} from '@metamask/design-system-react-native';
+import { BadgeIcon, IconSize } from '@metamask/design-system-react-native';
import { useTailwind } from '@metamask/design-system-twrnc-preset';
import { NotificationMenuItem } from '../../../../util/notifications/notification-states/types/NotificationMenuItem';
import React, {
@@ -24,10 +19,7 @@ export const TEST_IDS = {
ICON: 'notification-menu-item-icon:icon',
};
-type NotificationIconProps = Pick<
- NotificationMenuItem,
- 'image' | 'badgeIcon'
-> & { isRead: boolean };
+type NotificationIconProps = Pick;
function MenuIcon(props: NotificationIconProps) {
const tw = useTailwind();
@@ -56,7 +48,6 @@ function MenuIcon(props: NotificationIconProps) {
}
function NotificationIcon(props: NotificationIconProps) {
- const tw = useTailwind();
const { styles } = useStyles();
const MaybeBadgeContainer: FC = useCallback(
@@ -79,21 +70,11 @@ function NotificationIcon(props: NotificationIconProps) {
[props.badgeIcon],
);
- const statusStyle = useMemo(
- () => (props.isRead ? tw`self-center opacity-0` : tw`self-center`),
- [props.isRead, tw],
- );
-
return (
-
-
-
-
-
-
-
-
-
+
+
+
+
);
}