Skip to content

Commit cf15a3a

Browse files
committed
Disable payload tab when replaying runs with large payloads
1 parent 1dadc8e commit cf15a3a

File tree

3 files changed

+35
-11
lines changed

3 files changed

+35
-11
lines changed

apps/webapp/app/components/runs/v3/PacketDisplay.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export function PacketDisplay({
1616
case "application/store": {
1717
return (
1818
<div className="flex flex-col">
19-
<Paragraph variant="base/bright" className="w-full border-b border-grid-dimmed py-2.5">
19+
<Paragraph variant="base/bright" className="w-full py-2.5 text-sm">
2020
{title}
2121
</Paragraph>
2222
<LinkButton LeadingIcon={CloudArrowDownIcon} to={data} variant="tertiary/medium" download>

apps/webapp/app/components/runs/v3/ReplayRunDialog.tsx

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import { RectangleStackIcon } from "@heroicons/react/20/solid";
3434
import { Badge } from "~/components/primitives/Badge";
3535
import { RunTagInput } from "./RunTagInput";
3636
import { MachinePresetName } from "@trigger.dev/core/v3";
37+
import { InfoIconTooltip } from "~/components/primitives/Tooltip";
38+
import { divide } from "effect/Duration";
3739

3840
type ReplayRunDialogProps = {
3941
runFriendlyId: string;
@@ -165,7 +167,7 @@ function ReplayForm({
165167
replayData.payloadType === "application/json" ||
166168
replayData.payloadType === "application/super+json";
167169

168-
const [tab, setTab] = useState<"payload" | "metadata">("payload");
170+
const [tab, setTab] = useState<"payload" | "metadata">(editablePayload ? "payload" : "metadata");
169171

170172
const { defaultTaskQueue } = replayData;
171173

@@ -257,15 +259,30 @@ function ReplayForm({
257259
additionalActions={
258260
<TabContainer className="flex grow items-baseline justify-between self-end border-none">
259261
<div className="flex gap-5">
260-
<TabButton
261-
isActive={tab === "payload"}
262-
layoutId="replay-editor"
263-
onClick={() => {
264-
setTab("payload");
265-
}}
266-
>
267-
Payload
268-
</TabButton>
262+
<div className="flex items-center gap-1.5">
263+
<TabButton
264+
disabled={!editablePayload}
265+
isActive={tab === "payload"}
266+
layoutId="replay-editor"
267+
onClick={() => {
268+
setTab("payload");
269+
}}
270+
>
271+
Payload
272+
</TabButton>
273+
{!editablePayload && (
274+
<InfoIconTooltip
275+
content={
276+
<span className="text-sm">
277+
Payload is not editable for runs with{" "}
278+
<TextLink to={docsPath("triggering#large-payloads")}>
279+
large payloads.
280+
</TextLink>
281+
</span>
282+
}
283+
/>
284+
)}
285+
</div>
269286
<TabButton
270287
isActive={tab === "metadata"}
271288
layoutId="replay-editor"

apps/webapp/app/v3/services/replayTaskRun.server.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,13 @@ export class ReplayTaskRunService extends BaseService {
122122
existingTaskRun: TaskRun,
123123
stringifiedPayloadOverride: string | undefined
124124
) {
125+
if (existingTaskRun.payloadType === "application/store") {
126+
return conditionallyImportPacket({
127+
data: existingTaskRun.payload,
128+
dataType: existingTaskRun.payloadType,
129+
});
130+
}
131+
125132
if (stringifiedPayloadOverride && existingTaskRun.payloadType === "application/super+json") {
126133
const newPayload = await replaceSuperJsonPayload(
127134
existingTaskRun.payload,

0 commit comments

Comments
 (0)