import { useState } from 'react'; import { baseStackWebhookUrl } from '@/portainer/helpers/webhookHelper'; import { Authorized, useAuthorizations } from '@/react/hooks/useUser'; import { FeatureId } from '@/react/portainer/feature-flags/enums'; import { WebhookSettings } from '@/react/portainer/gitops/AutoUpdateFieldset/WebhookSettings'; import { FormSection } from '@@/form-components/FormSection'; import { SwitchField } from '@@/form-components/SwitchField'; export function WebhookFieldset({ value, onChange, webhookId, }: { value: boolean; onChange(value: boolean): void; webhookId: string; }) { const [hasWebhook] = useState(() => value); const authQuery = useAuthorizations( hasWebhook ? ['PortainerWebhookDelete'] : ['PortainerWebhookCreate'] ); return ( ); } export function AuthorizedWebhook({ value, onChange, disabled, webhookId, }: { value: boolean; onChange(value: boolean): void; disabled?: boolean; webhookId: string; }) { return ( onChange(checked)} labelClass="col-sm-2" tooltip="Create a webhook (or callback URI) to automate the update of this stack. Sending a POST request to this callback URI (without requiring any authentication) will pull the most up-to-date version of the associated image and re-deploy this stack." label="Create a Stack webhook" featureId={FeatureId.STACK_WEBHOOK} data-cy="stack-webhook-switch" disabled={disabled} /> {value && ( )} ); }