+
+
알림 {notificationCount}개
+
+
+
+
+
+ {SORTED_ALERTS.length === 0 ? (
+
+ ) : (
+
+ {SORTED_ALERTS.map(alert => (
+
+ ))}
+
+ )}
+
+ )}
+ >
+ );
+}
diff --git a/src/components/ui/modal/notification/NotificationMessage.tsx b/src/components/ui/modal/notification/NotificationMessage.tsx
new file mode 100644
index 0000000..6c84d94
--- /dev/null
+++ b/src/components/ui/modal/notification/NotificationMessage.tsx
@@ -0,0 +1,61 @@
+import { getTime } from '@/lib/utils/getTime';
+import { timeAgo } from '@/lib/utils/timeAgo';
+import { clsx } from 'clsx';
+import { Alert } from './Notification';
+import ResultBadge from './ResultBadge';
+
+export default function NotificationMessage({
+ alert,
+ onRead,
+}: {
+ alert: Alert;
+ onRead: (id: string) => void;
+}) {
+ const {
+ id,
+ result,
+ read,
+ createdAt,
+ shop: {
+ item: { name: shopName },
+ },
+ notice: {
+ item: { startsAt, workhour },
+ },
+ } = alert;
+
+ const RESULT_TEXT = result === 'accepted' ? '승인' : '거절';
+ const DATE_RANGE = getTime(startsAt, workhour);
+ const NOTIFICATION_MESSAGE_CONTAINER = clsx(
+ 'w-full gap-2 break-words rounded border border-gray-200 bg-white px-3 py-4'
+ );
+
+ return (
+