chore: limit webhook status code 200~399 (#25045)

This commit is contained in:
非法操作 2025-09-03 14:48:18 +08:00 committed by GitHub
parent 41daa51988
commit ff4a62d1e7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 0 deletions

View File

@ -51,6 +51,7 @@ const Panel: FC<NodePanelProps<WebhookTriggerNodeType>> = ({
handleParamsChange,
handleBodyChange,
handleStatusCodeChange,
handleStatusCodeBlur,
handleResponseBodyChange,
generateWebhookUrl,
} = useConfig(id, data)
@ -189,6 +190,7 @@ const Panel: FC<NodePanelProps<WebhookTriggerNodeType>> = ({
type="number"
value={inputs.status_code}
onChange={(e: React.ChangeEvent<HTMLInputElement>) => handleStatusCodeChange(Number(e.target.value))}
onBlur={(e: React.FocusEvent<HTMLInputElement>) => handleStatusCodeBlur(Number(e.target.value))}
disabled={readOnly}
wrapperClassName="w-[120px]"
className="h-8"

View File

@ -136,6 +136,15 @@ const useConfig = (id: string, payload: WebhookTriggerNodeType) => {
}))
}, [inputs, setInputs])
const handleStatusCodeBlur = useCallback((statusCode: number) => {
// Only clamp when user finishes editing (on blur)
const clampedStatusCode = Math.min(Math.max(statusCode, 200), 399)
setInputs(produce(inputs, (draft) => {
draft.status_code = clampedStatusCode
}))
}, [inputs, setInputs])
const handleResponseBodyChange = useCallback((responseBody: string) => {
setInputs(produce(inputs, (draft) => {
draft.response_body = responseBody
@ -182,6 +191,7 @@ const useConfig = (id: string, payload: WebhookTriggerNodeType) => {
handleBodyChange,
handleAsyncModeChange,
handleStatusCodeChange,
handleStatusCodeBlur,
handleResponseBodyChange,
generateWebhookUrl,
}