Skip to content

Commit

Permalink
fix: coderabbit suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
carhartlewis committed Feb 11, 2025
1 parent 4c1f14b commit cbdb84f
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 63 deletions.
31 changes: 16 additions & 15 deletions apps/app/src/components/notification-center.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { ScrollArea } from "@bubba/ui/scroll-area";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@bubba/ui/tabs";
import { formatDistanceToNow } from "date-fns";
import Link from "next/link";
import { type } from "os";
import { useEffect, useState } from "react";

function EmptyState({ description }: { description: string }) {
Expand All @@ -29,17 +28,20 @@ function NotificationItem({
description,
createdAt,
recordId,
from,
to,
markMessageAsRead,
type,
}: {
id: string;
setOpen: (open: boolean) => void;
description: string;
description: string | undefined;
createdAt: string;
recordId?: string;
from?: string;
to?: string;
recordId: string | undefined;
from: string | undefined;
to: string | undefined;
markMessageAsRead: (id: string) => void;
type?: string;
type: string | undefined;
}) {
switch (type) {
case "task":
Expand Down Expand Up @@ -85,19 +87,14 @@ export function NotificationCenter() {
const t = useI18n();

const [isOpen, setOpen] = useState(false);

const {
hasUnseenNotifications,
notifications,
markMessageAsRead,
markAllMessagesAsSeen,
markAllMessagesAsRead,
subscriberId,
} = useNotifications();

console.log(subscriberId);
console.log(notifications);

const unreadNotifications = notifications.filter(
(notification) => !notification.read,
);
Expand All @@ -112,8 +109,6 @@ export function NotificationCenter() {
}
}, [hasUnseenNotifications, isOpen]);

console.log(notifications);

return (
<Popover onOpenChange={setOpen} open={isOpen}>
<PopoverTrigger asChild>
Expand Down Expand Up @@ -172,9 +167,12 @@ export function NotificationCenter() {
id={notification.id}
markMessageAsRead={markMessageAsRead}
setOpen={setOpen}
description={notification.payload.description || ""}
description={notification.payload.description}
createdAt={notification.createdAt}
recordId={notification.payload.recordId}
type={notification.payload.type}
from={notification.payload?.from}
to={notification.payload?.to}
/>
);
})}
Expand Down Expand Up @@ -211,9 +209,12 @@ export function NotificationCenter() {
key={notification.id}
id={notification.id}
setOpen={setOpen}
description={notification.payload.description || ""}
description={notification.payload.description}
createdAt={notification.createdAt}
recordId={notification.payload.recordId}
type={notification.payload.type}
from={notification.payload?.from}
to={notification.payload?.to}
markMessageAsRead={markMessageAsRead}
/>
);
Expand Down
50 changes: 26 additions & 24 deletions apps/app/src/jobs/tasks/notifications/risk-task-notifications.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,43 +46,45 @@ export const sendRiskTaskNotifications = schedules.task({
for (const task of tasks) {
const owner = task.owner;

if (!owner || !owner.email || !owner.organizationId) {
logger.warn(`Skipping task ${task.id} - owner ${owner?.id} missing email or organizationId`);
continue;
}

const timeUntilDue = task.dueDate
? formatDistance(task.dueDate, new Date(), {
addSuffix: true,
})
: "soon";

try {
await db.riskMitigationTask.update({
where: { id: task.id },
data: { notifiedAt: new Date() },
});
await db.$transaction(async (tx) => {
if (!owner || !owner.email || !owner.organizationId) {
logger.warn(`Skipping task ${task.id} - owner ${owner?.id} missing email or organizationId`);
return;
}

await trigger({
name: TriggerEvents.TaskReminderInApp,
user: {
subscriberId: `${owner.organizationId}_${owner.id}`,
email: owner.email,
fullName: owner.name,
image: owner.image,
organizationId: owner.organizationId,
},
payload: {
description: `${task.title} is due ${timeUntilDue}`,
recordId: `/risk/${task.riskId}/tasks/${task.id}`,
type: NotificationTypes.Task,
},
await tx.riskMitigationTask.update({
where: { id: task.id },
data: { notifiedAt: new Date() },
});

await trigger({
name: TriggerEvents.TaskReminderInApp,
user: {
subscriberId: `${owner.organizationId}_${owner.id}`,
email: owner.email,
fullName: owner.name,
image: owner.image,
organizationId: owner.organizationId,
},
payload: {
description: `${task.title} is due ${timeUntilDue}`,
recordId: `/risk/${task.riskId}/tasks/${task.id}`,
type: NotificationTypes.Task,
},
});
});

notifiedTasks.push(task.id);
} catch (error) {
logger.error(
`Error processing task ${task.id} for ${owner.email}: ${error}`,
`Error processing task ${task.id} for ${owner?.email}: ${error}`,
);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,34 @@ interface Props {
}

export async function sendTaskEmailNotification({ owner, task }: Props) {
const html = await render(
<TaskReminderEmail
name={owner.fullName ?? "there"}
dueDate={task.dueDate}
recordId={task.recordId}
/>,
);
try {
const html = await render(
<TaskReminderEmail
email={owner.email}
name={owner.fullName ?? "there"}
dueDate={task.dueDate}
recordId={task.recordId}
/>,
);

const triggerData = {
name: TriggerEvents.TaskReminderEmail,
payload: {
subject: "Task Reminder",
html,
},
replyTo: owner.email,
user: {
subscriberId: `${owner.organizationId}_${owner.id}`,
organizationId: owner.organizationId,
email: owner.email,
fullName: owner.fullName,
},
};
const triggerData = {
name: TriggerEvents.TaskReminderEmail,
payload: {
subject: "Task Reminder",
html,
},
replyTo: owner.email,
user: {
subscriberId: `${owner.organizationId}_${owner.id}`,
organizationId: owner.organizationId,
email: owner.email,
fullName: owner.fullName,
},
};

await trigger(triggerData);
await trigger(triggerData);
} catch (error) {
console.error("Failed to send task email notification: ", error);
throw error;
}
}
4 changes: 2 additions & 2 deletions packages/email/emails/reminders/task-reminder.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { Footer } from "../../components/footer";
import { Logo } from "../../components/logo";

interface Props {
email?: string;
email: string;
name: string;
dueDate: string;
recordId: string;
Expand All @@ -27,7 +27,7 @@ export const TaskReminderEmail = ({
dueDate,
recordId,
}: Props) => {
const link = `${process.env.NEXT_PUBLIC_APP_URL}${recordId}`;
const link = `${process.env.NEXT_PUBLIC_APP_URL ?? "https://app.trycomp.ai"}${recordId}`;

return (
<Html>
Expand Down

0 comments on commit cbdb84f

Please sign in to comment.