Skip to content

Commit 5c41b6f

Browse files
fix build
1 parent 4b8eaed commit 5c41b6f

File tree

1 file changed

+24
-22
lines changed

1 file changed

+24
-22
lines changed

examples/nextjs/src/components/Approvals.tsx

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ function ToolApprovalEntry({
2424
onReject: () => void;
2525
decision: 'approved' | 'rejected' | undefined;
2626
}) {
27+
if (approval.rawItem?.type !== 'function_call') {
28+
return null;
29+
}
30+
2731
return (
2832
<div key={approval.rawItem?.id} className="flex flex-col gap-2">
2933
<h3 className="font-medium text-sm">
@@ -78,23 +82,25 @@ export function Approvals({
7882
}, [approvals]);
7983

8084
function handleApprove(approval: Item) {
81-
if (approval.rawItem?.id) {
82-
setDecisions((prev) => {
83-
const newDecisions = new Map(prev);
84-
newDecisions.set(approval.rawItem?.callId ?? '', 'approved');
85-
return newDecisions;
86-
});
87-
}
85+
setDecisions((prev) => {
86+
if (approval.rawItem?.type !== 'function_call') {
87+
return prev;
88+
}
89+
const newDecisions = new Map(prev);
90+
newDecisions.set(approval.rawItem?.callId ?? '', 'approved');
91+
return newDecisions;
92+
});
8893
}
8994

9095
function handleReject(approval: Item) {
91-
if (approval.rawItem?.id) {
92-
setDecisions((prev) => {
93-
const newDecisions = new Map(prev);
94-
newDecisions.set(approval.rawItem?.callId ?? '', 'rejected');
95-
return newDecisions;
96-
});
97-
}
96+
setDecisions((prev) => {
97+
if (approval.rawItem?.type !== 'function_call') {
98+
return prev;
99+
}
100+
const newDecisions = new Map(prev);
101+
newDecisions.set(approval.rawItem?.callId ?? '', 'rejected');
102+
return newDecisions;
103+
});
98104
}
99105

100106
function handleDone() {
@@ -119,21 +125,17 @@ export function Approvals({
119125
</DialogDescription>
120126
</DialogHeader>
121127
<div className="grid gap-8">
122-
{approvals
123-
.filter(
124-
(item) =>
125-
item.type === 'tool_approval_item' &&
126-
item.rawItem?.type === 'function_call',
127-
)
128-
.map((approval) => (
128+
{approvals.map((approval) =>
129+
approval.rawItem?.type === 'function_call' ? (
129130
<ToolApprovalEntry
130131
key={approval.rawItem?.callId}
131132
approval={approval}
132133
decision={decisions.get(approval.rawItem?.callId ?? '')}
133134
onApprove={() => handleApprove(approval)}
134135
onReject={() => handleReject(approval)}
135136
/>
136-
))}
137+
) : null,
138+
)}
137139
</div>
138140
<DialogFooter>
139141
<Button

0 commit comments

Comments
 (0)