Skip to content

Commit da9ceef

Browse files
committed
fix: make contract and to addresses optional in webhook form
1 parent f89c15c commit da9ceef

File tree

2 files changed

+29
-13
lines changed

2 files changed

+29
-13
lines changed

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/FilterDetailsStep.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,7 @@ export function FilterDetailsStep({
191191
render={({ field }) => (
192192
<FormItem className="flex flex-col">
193193
<div className="flex items-center justify-between text-xs">
194-
<FormLabel>
195-
Contract Addresses <span className="text-red-500">*</span>
196-
</FormLabel>
194+
<FormLabel>Contract Addresses</FormLabel>
197195
<p className="text-muted-foreground">
198196
Enter a contract address
199197
</p>
@@ -281,9 +279,7 @@ export function FilterDetailsStep({
281279
render={({ field }) => (
282280
<FormItem className="flex flex-col">
283281
<div className="flex items-center justify-between text-xs">
284-
<FormLabel>
285-
To Address <span className="text-red-500">*</span>
286-
</FormLabel>
282+
<FormLabel>To Address</FormLabel>
287283
<p className="text-muted-foreground">Enter a to address</p>
288284
</div>
289285
<FormControl>

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/utils/webhookTypes.ts

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,45 @@ export const webhookFormSchema = z.object({
3636
.min(1, { message: "Select at least one chain" }),
3737
addresses: z
3838
.string()
39-
.min(1, { message: "Addresses is required" })
40-
.refine((val) => val.split(/[\,\s]+/).every((a) => isAddress(a.trim())), {
41-
message: "Enter a valid address",
42-
}),
39+
.optional()
40+
.refine(
41+
(val) => {
42+
if (val === undefined || val.trim() === "") {
43+
return true;
44+
}
45+
return val
46+
.split(/[\,\s]+/)
47+
.filter(Boolean)
48+
.every((a) => isAddress(a.trim()));
49+
},
50+
{
51+
message: "Enter valid addresses (comma-separated) or leave empty",
52+
},
53+
),
4354
fromAddresses: z
4455
.string()
4556
.optional()
4657
.refine(
4758
(val) => !val || val.split(/[,\s]+/).every((a) => isAddress(a.trim())),
4859
{
49-
message: "Enter a valid address",
60+
message: "Enter valid addresses (comma-separated) or leave empty",
5061
},
5162
),
5263
toAddresses: z
5364
.string()
65+
.optional()
5466
.refine(
55-
(val) => !val || val.split(/[,\s]+/).every((a) => isAddress(a.trim())),
67+
(val) => {
68+
if (val === undefined || val.trim() === "") {
69+
return true;
70+
}
71+
return val
72+
.split(/[\,\s]+/)
73+
.filter(Boolean)
74+
.every((a) => isAddress(a.trim()));
75+
},
5676
{
57-
message: "Enter a valid address (comma-separated)",
77+
message: "Enter valid addresses (comma-separated) or leave empty",
5878
},
5979
),
6080
sigHash: z.string().optional(),

0 commit comments

Comments
 (0)