- {payload.map((entry, i) => {
+ {payload.map((entry, _i) => {
const value = (entry.value as number) ?? 0;
return (
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors._index/route.tsx
index b86882e7d62..3a34526d502 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors._index/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors._index/route.tsx
@@ -30,7 +30,6 @@ import { NavBar, PageTitle } from "~/components/primitives/PageHeader";
import { Paragraph } from "~/components/primitives/Paragraph";
import { SearchInput } from "~/components/primitives/SearchInput";
import {
- ComboBox,
SelectItem,
SelectList,
SelectPopover,
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors/route.tsx
index 3ffe35908a5..dd9a5f6d593 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors/route.tsx
@@ -1,4 +1,4 @@
-import { parseWithZod } from "@conform-to/zod";
+import { parse } from "@conform-to/zod";
import { Outlet, useNavigate } from "@remix-run/react";
import { type ActionFunctionArgs, type LoaderFunctionArgs, json } from "@remix-run/server-runtime";
import { useCallback } from "react";
@@ -79,10 +79,10 @@ export const action = async ({ request, params }: ActionFunctionArgs) => {
}
const formData = await request.formData();
- const submission = parseWithZod(formData, { schema: ErrorAlertsFormSchema });
+ const submission = parse(formData, { schema: ErrorAlertsFormSchema });
- if (submission.status !== "success") {
- return json(submission.reply());
+ if (!submission.value) {
+ return json(submission);
}
const { emails, webhooks, slackChannel, slackIntegrationId } = submission.value;
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.logs/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.logs/route.tsx
index f0ecd687a46..a963fc02100 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.logs/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.logs/route.tsx
@@ -13,7 +13,8 @@ import { getCurrentPlan } from "~/services/platform.v3.server";
import { EnvironmentParamSchema } from "~/utils/pathBuilder";
import { findProjectBySlug } from "~/models/project.server";
import { findEnvironmentBySlug } from "~/models/runtimeEnvironment.server";
-import { LogsListPresenter, LogEntry } from "~/presenters/v3/LogsListPresenter.server";
+import type { LogEntry } from "~/presenters/v3/LogsListPresenter.server";
+import { LogsListPresenter } from "~/presenters/v3/LogsListPresenter.server";
import type { LogLevel } from "~/utils/logUtils";
import { $replica, prisma } from "~/db.server";
import { clickhouseFactory } from "~/services/clickhouse/clickhouseFactoryInstance.server";
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.models.$modelId/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.models.$modelId/route.tsx
index 94b4bfc3144..07abe789d8b 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.models.$modelId/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.models.$modelId/route.tsx
@@ -13,14 +13,7 @@ import { Input } from "~/components/primitives/Input";
import { Label } from "~/components/primitives/Label";
import { NavBar, PageAccessories, PageTitle } from "~/components/primitives/PageHeader";
import * as Property from "~/components/primitives/PropertyTable";
-import {
- Table,
- TableBody,
- TableCell,
- TableHeader,
- TableHeaderCell,
- TableRow,
-} from "~/components/primitives/Table";
+
import { TabButton, TabContainer } from "~/components/primitives/Tabs";
import { InlineCode } from "~/components/code/InlineCode";
import { MetricWidget } from "~/routes/resources.metric";
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.models._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.models._index/route.tsx
index 56fc2591d0a..44229ae5052 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.models._index/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.models._index/route.tsx
@@ -34,7 +34,7 @@ import { PageBody, PageContainer } from "~/components/layout/AppLayout";
import { AppliedFilter } from "~/components/primitives/AppliedFilter";
import { Badge } from "~/components/primitives/Badge";
import { Button, LinkButton } from "~/components/primitives/Buttons";
-import { Callout } from "~/components/primitives/Callout";
+
import { Checkbox } from "~/components/primitives/Checkbox";
import { DateTime } from "~/components/primitives/DateTime";
import { Dialog, DialogContent, DialogHeader, DialogTitle } from "~/components/primitives/Dialog";
@@ -104,7 +104,7 @@ import {
formatModelCost,
} from "~/utils/modelFormatters";
import { formatNumberCompact } from "~/utils/numberFormatter";
-import { Spinner } from "~/components/primitives/Spinner";
+
import { UsageSparkline } from "~/components/primitives/UsageSparkline";
import { MetricWidget } from "~/routes/resources.metric";
import type { QueryWidgetConfig } from "~/components/metrics/QueryWidget";
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.playground.$agentParam/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.playground.$agentParam/route.tsx
index 1dc762825bb..3aabb7e8ac4 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.playground.$agentParam/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.playground.$agentParam/route.tsx
@@ -30,7 +30,7 @@ import type { PlaygroundConversation } from "~/presenters/v3/PlaygroundPresenter
import { DateTime } from "~/components/primitives/DateTime";
import { cn } from "~/utils/cn";
import { JSONEditor } from "~/components/code/JSONEditor";
-import { ToolUseRow, AssistantResponse, ChatBubble } from "~/components/runs/v3/ai/AIChatMessages";
+
import { MessageBubble } from "~/components/runs/v3/agent/AgentMessageView";
import { useAutoScrollToBottom } from "~/hooks/useAutoScrollToBottom";
import {
@@ -199,7 +199,7 @@ function PlaygroundChat() {
? (recentConversations.find((c) => c.chatId === activeConversation.chatId)?.id ?? null)
: null
);
- const [chatId, setChatId] = useState(() => activeConversation?.chatId ?? crypto.randomUUID());
+ const [chatId, _setChatId] = useState(() => activeConversation?.chatId ?? crypto.randomUUID());
const [clientDataJson, setClientDataJson] = useState(() =>
activeConversation?.clientData ? JSON.stringify(activeConversation.clientData, null, 2) : "{}"
);
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.playground/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.playground/route.tsx
index 879124c4041..c29850ce1ea 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.playground/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.playground/route.tsx
@@ -23,12 +23,7 @@ import { findEnvironmentBySlug } from "~/models/runtimeEnvironment.server";
import { playgroundPresenter } from "~/presenters/v3/PlaygroundPresenter.server";
import { RegionsPresenter } from "~/presenters/v3/RegionsPresenter.server";
import { requireUser } from "~/services/session.server";
-import {
- docsPath,
- EnvironmentParamSchema,
- v3PlaygroundAgentPath,
- v3PlaygroundPath,
-} from "~/utils/pathBuilder";
+import { docsPath, EnvironmentParamSchema, v3PlaygroundAgentPath } from "~/utils/pathBuilder";
export const meta: MetaFunction = () => {
return [{ title: "Playground | Trigger.dev" }];
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.query/TableSchemaContent.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.query/TableSchemaContent.tsx
index e8ce98f1d49..07badba7651 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.query/TableSchemaContent.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.query/TableSchemaContent.tsx
@@ -2,7 +2,7 @@ import { useState } from "react";
import type { ColumnSchema } from "@internal/tsql";
import { Badge } from "~/components/primitives/Badge";
import { CopyableText } from "~/components/primitives/CopyableText";
-import { Header3 } from "~/components/primitives/Headers";
+
import { Paragraph } from "~/components/primitives/Paragraph";
import SegmentedControl from "~/components/primitives/SegmentedControl";
import { querySchemas } from "~/v3/querySchemas";
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx
index 176dfc1d9e9..7938c1e52af 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx
@@ -2,13 +2,12 @@ import {
AdjustmentsHorizontalIcon,
ArrowUpCircleIcon,
BookOpenIcon,
- ChatBubbleLeftEllipsisIcon,
PauseIcon,
PlayIcon,
RectangleStackIcon,
} from "@heroicons/react/20/solid";
import { DialogClose } from "@radix-ui/react-dialog";
-import { Form, useNavigation, useSearchParams, type MetaFunction } from "@remix-run/react";
+import { Form, useNavigation, type MetaFunction } from "@remix-run/react";
import { type ActionFunctionArgs, type LoaderFunctionArgs } from "@remix-run/server-runtime";
import type { RuntimeEnvironmentType } from "@trigger.dev/database";
import type { QueueItem } from "@trigger.dev/core/v3/schemas";
@@ -16,12 +15,12 @@ import { useEffect, useState } from "react";
import { typedjson, useTypedLoaderData } from "remix-typedjson";
import { z } from "zod";
import { RunsIcon } from "~/assets/icons/RunsIcon";
-import { TaskIconSmall } from "~/assets/icons/TaskIcon";
+
import upgradeForQueuesPath from "~/assets/images/queues-dashboard.png";
import { AdminDebugTooltip } from "~/components/admin/debugTooltip";
import { QueuesHasNoTasks } from "~/components/BlankStatePanels";
import { environmentFullTitle } from "~/components/environments/EnvironmentLabel";
-import { Feedback } from "~/components/Feedback";
+
import { PageBody, PageContainer } from "~/components/layout/AppLayout";
import { BigNumber } from "~/components/metrics/BigNumber";
import { Badge } from "~/components/primitives/Badge";
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.regions/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.regions/route.tsx
index d006a853e5e..f6b3f9e4d7f 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.regions/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.regions/route.tsx
@@ -130,7 +130,7 @@ export const action = async ({ request, params }: ActionFunctionArgs) => {
};
export default function Page() {
- const { regions, isPaying } = useTypedLoaderData
();
+ const { regions, isPaying: _isPaying } = useTypedLoaderData();
const organization = useOrganization();
const isAdmin = useHasAdminAccess();
const { isManagedCloud } = useFeatures();
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam/route.tsx
index d72655900be..00642b01d1d 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam/route.tsx
@@ -894,12 +894,12 @@ function TasksTreeView({
rootSpanStatus,
rootStartedAt,
queuedDuration,
- environmentType,
+ environmentType: _environmentType,
shouldLiveReload,
maximumLiveReloadingSetting,
rootRun,
parentRun,
- isCompleted,
+ isCompleted: _isCompleted,
treeSnapshot,
}: TasksTreeViewProps) {
const isAdmin = useHasAdminAccess();
@@ -1035,7 +1035,7 @@ function TasksTreeView({
getNodeProps={getNodeProps}
getTreeProps={getTreeProps}
parentClassName="pl-3"
- renderNode={({ node, state, index }) => (
+ renderNode={({ node, state, index: _index }) => (
<>
{
+ renderNode={({
+ node,
+ state,
+ index,
+ virtualizer: _virtualizer,
+ virtualItem: _virtualItem,
+ }) => {
const isTopSpan = node.id === events[0]?.id;
return (
@@ -1382,7 +1388,7 @@ function TimelineView({
: "bg-transparent hover:bg-grid-dimmed"
)}
// onMouseOver={() => console.log(`hover ${index}`)}
- onClick={(e) => {
+ onClick={(_e) => {
toggleNodeSelection(node.id);
}}
>
@@ -1397,7 +1403,7 @@ function TimelineView({
queueAdjustedNs(event.offset, queuedDuration)
)}
>
- {(ms) => (
+ {(_ms) => (
- {(ms) => (
+ {(_ms) => (
- {(ms) => (
+ {(_ms) => (
;
}
-function TaskLine({ isError, isSelected }: { isError: boolean; isSelected: boolean }) {
+function TaskLine({
+ isError: _isError,
+ isSelected: _isSelected,
+}: {
+ isError: boolean;
+ isSelected: boolean;
+}) {
return ;
}
@@ -1920,7 +1932,7 @@ function ShortcutWithAction({
}
function NumberShortcuts({ toggleLevel }: { toggleLevel: (depth: number) => void }) {
- useHotkeys(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], (event, hotkeysEvent) => {
+ useHotkeys(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], (event, _hotkeysEvent) => {
toggleLevel(Number(event.key));
});
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs._index/route.tsx
index f00a4548167..e2e4c9b4e96 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs._index/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs._index/route.tsx
@@ -276,7 +276,7 @@ function RunsList({
useShortcutKeys({
shortcut: { key: "r" },
disabled: !canReplayRuns,
- action: (e) => {
+ action: (_e) => {
replace({
bulkInspector: RUNS_BULK_INSPECTOR_OPEN_VALUE,
action: "replay",
@@ -287,7 +287,7 @@ function RunsList({
useShortcutKeys({
shortcut: { key: "c" },
disabled: !canCancelRuns,
- action: (e) => {
+ action: (_e) => {
replace({
bulkInspector: RUNS_BULK_INSPECTOR_OPEN_VALUE,
action: "cancel",
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.$scheduleParam/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.$scheduleParam/route.tsx
index cd433467c77..2407d308fee 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.$scheduleParam/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.$scheduleParam/route.tsx
@@ -1,4 +1,4 @@
-import { parseWithZod } from "@conform-to/zod";
+import { parse } from "@conform-to/zod";
import { useLocation } from "@remix-run/react";
import { type ActionFunctionArgs, type LoaderFunctionArgs, json } from "@remix-run/server-runtime";
import { typedjson, useTypedLoaderData } from "remix-typedjson";
@@ -69,10 +69,10 @@ export const action = async ({ request, params }: ActionFunctionArgs) => {
v3ScheduleParams.parse(params);
const formData = await request.formData();
- const submission = parseWithZod(formData, { schema });
+ const submission = parse(formData, { schema });
- if (submission.status !== "success") {
- return json(submission.reply());
+ if (!submission.value) {
+ return json(submission);
}
// `_format=json` → return JSON instead of redirecting; caller stays put.
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.new/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.new/route.tsx
index ef69033e7bf..b254988e7d9 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.new/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.schedules.new/route.tsx
@@ -8,7 +8,11 @@ import { UpsertScheduleForm } from "../resources.orgs.$organizationSlug.projects
export const loader = async ({ request, params }: LoaderFunctionArgs) => {
const userId = await requireUserId(request);
- const { projectParam, envParam, organizationSlug } = EnvironmentParamSchema.parse(params);
+ const {
+ projectParam,
+ envParam,
+ organizationSlug: _organizationSlug,
+ } = EnvironmentParamSchema.parse(params);
const presenter = new EditSchedulePresenter();
const result = await presenter.call({
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.settings.general/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.settings.general/route.tsx
index 7ca93c2bc50..e56162731da 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.settings.general/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.settings.general/route.tsx
@@ -1,5 +1,5 @@
-import { getFormProps, getInputProps, useForm } from "@conform-to/react";
-import { conformZodMessage, parseWithZod } from "@conform-to/zod";
+import { conform, useForm } from "@conform-to/react";
+import { parse } from "@conform-to/zod";
import { ExclamationTriangleIcon, FolderIcon, TrashIcon } from "@heroicons/react/20/solid";
import { Form, useActionData, useNavigation } from "@remix-run/react";
import { type ActionFunction, json } from "@remix-run/server-runtime";
@@ -41,7 +41,7 @@ function createSchema(
if (constraints.getSlugMatch === undefined) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
- message: conformZodMessage.VALIDATION_UNDEFINED,
+ message: conform.VALIDATION_UNDEFINED,
});
} else {
const { isMatch, projectSlug } = constraints.getSlugMatch(slug);
@@ -76,10 +76,10 @@ export const action: ActionFunction = async ({ request, params }) => {
return { isMatch: slug === projectParam, projectSlug: projectParam };
},
});
- const submission = parseWithZod(formData, { schema });
+ const submission = parse(formData, { schema });
- if (submission.status !== "success") {
- return json(submission.reply());
+ if (!submission.value || submission.intent !== "submit") {
+ return json(submission);
}
const projectSettingsService = new ProjectSettingsService();
@@ -162,10 +162,10 @@ export default function GeneralSettingsPage() {
const [renameForm, { projectName }] = useForm({
id: "rename-project",
// TODO: type this
- lastResult: lastSubmission as any,
+ lastSubmission: lastSubmission as any,
shouldRevalidate: "onSubmit",
onValidate({ formData }) {
- return parseWithZod(formData, {
+ return parse(formData, {
schema: createSchema(),
});
},
@@ -178,11 +178,11 @@ export default function GeneralSettingsPage() {
const [deleteForm, { projectSlug }] = useForm({
id: "delete-project",
// TODO: type this
- lastResult: lastSubmission as any,
+ lastSubmission: lastSubmission as any,
shouldValidate: "onInput",
shouldRevalidate: "onSubmit",
onValidate({ formData }) {
- return parseWithZod(formData, {
+ return parse(formData, {
schema: createSchema({
getSlugMatch: (slug) => ({ isMatch: slug === project.slug, projectSlug: project.slug }),
}),
@@ -212,12 +212,12 @@ export default function GeneralSettingsPage() {
-