;
+ to: string;
+ };
}) {
const pathName = usePathName();
const isActive = pathName === to;
@@ -407,6 +415,15 @@ function SideMenuItem({
{name}
{count !== undefined && count > 0 && }
+ {secondaryAction && (
+
+ )}
{typeof hasWarning === "string" ? (
diff --git a/apps/webapp/app/presenters/OrganizationsPresenter.server.ts b/apps/webapp/app/presenters/OrganizationsPresenter.server.ts
index d34e93e5c..6e3641a1f 100644
--- a/apps/webapp/app/presenters/OrganizationsPresenter.server.ts
+++ b/apps/webapp/app/presenters/OrganizationsPresenter.server.ts
@@ -2,6 +2,7 @@ import { PrismaClient } from "@trigger.dev/database";
import { prisma } from "~/db.server";
import { getCurrentProjectId } from "~/services/currentProject.server";
import { ProjectPresenter } from "./ProjectPresenter.server";
+import { logger } from "~/services/logger.server";
type Org = Awaited>[number];
@@ -27,6 +28,12 @@ export class OrganizationsPresenter {
const organization = organizations.find((o) => o.slug === organizationSlug);
if (!organization) {
+ logger.info("Not Found: organization", {
+ organizationSlug,
+ projectSlug,
+ request,
+ organization,
+ });
throw new Response("Not Found", { status: 404 });
}
@@ -103,6 +110,11 @@ export class OrganizationsPresenter {
const projectId = await getCurrentProjectId(request);
const orgProject = organization.projects.find((p) => p.id === projectId);
if (!orgProject) {
+ logger.info("Not Found: proj 1", {
+ projectId,
+ organization,
+ projectSlug: projectSlug ?? null,
+ });
throw new Response("Not Found", { status: 404 });
}
projectSlug = orgProject.slug;
@@ -110,6 +122,7 @@ export class OrganizationsPresenter {
const project = await projectPresenter.call({ userId, slug: projectSlug });
if (!project) {
+ logger.info("Not Found: proj 2", { projectSlug, organization, project });
throw new Response("Not Found", { status: 404 });
}
return project;