mirror of
https://github.com/documenso/documenso.git
synced 2025-11-19 19:21:39 +10:00
chore: disable next step for signers without signature field
This commit is contained in:
@ -60,6 +60,7 @@ import { getSignerColorStyles, useSignerColors } from '../../lib/signer-colors';
|
|||||||
import { Checkbox } from '../checkbox';
|
import { Checkbox } from '../checkbox';
|
||||||
import type { FieldFormType } from '../document-flow/add-fields';
|
import type { FieldFormType } from '../document-flow/add-fields';
|
||||||
import { FieldAdvancedSettings } from '../document-flow/field-item-advanced-settings';
|
import { FieldAdvancedSettings } from '../document-flow/field-item-advanced-settings';
|
||||||
|
import { MissingSignatureFieldDialog } from '../document-flow/missing-signature-field-dialog';
|
||||||
import { Form, FormControl, FormField, FormItem, FormLabel } from '../form/form';
|
import { Form, FormControl, FormField, FormItem, FormLabel } from '../form/form';
|
||||||
import { useStep } from '../stepper';
|
import { useStep } from '../stepper';
|
||||||
import type { TAddTemplateFieldsFormSchema } from './add-template-fields.types';
|
import type { TAddTemplateFieldsFormSchema } from './add-template-fields.types';
|
||||||
@ -110,6 +111,7 @@ export const AddTemplateFieldsFormPartial = ({
|
|||||||
const [fieldClipboard, setFieldClipboard] = useState<
|
const [fieldClipboard, setFieldClipboard] = useState<
|
||||||
TAddTemplateFieldsFormSchema['fields'][0] | null
|
TAddTemplateFieldsFormSchema['fields'][0] | null
|
||||||
>(null);
|
>(null);
|
||||||
|
const [isMissingSignatureDialogVisible, setIsMissingSignatureDialogVisible] = useState(false);
|
||||||
|
|
||||||
const form = useForm<TAddTemplateFieldsFormSchema>({
|
const form = useForm<TAddTemplateFieldsFormSchema>({
|
||||||
defaultValues: {
|
defaultValues: {
|
||||||
@ -517,6 +519,23 @@ export const AddTemplateFieldsFormPartial = ({
|
|||||||
form.setValue('typedSignatureEnabled', value, { shouldDirty: true });
|
form.setValue('typedSignatureEnabled', value, { shouldDirty: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleGoNextClick = () => {
|
||||||
|
const everySignerHasSignature = recipientsByRole.SIGNER.every((signer) =>
|
||||||
|
localFields.some(
|
||||||
|
(field) =>
|
||||||
|
(field.type === FieldType.SIGNATURE || field.type === FieldType.FREE_SIGNATURE) &&
|
||||||
|
field.recipientId === signer.id,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!everySignerHasSignature) {
|
||||||
|
setIsMissingSignatureDialogVisible(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void onFormSubmit();
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{showAdvancedSettings && currentField ? (
|
{showAdvancedSettings && currentField ? (
|
||||||
@ -1012,9 +1031,14 @@ export const AddTemplateFieldsFormPartial = ({
|
|||||||
previousStep();
|
previousStep();
|
||||||
remove();
|
remove();
|
||||||
}}
|
}}
|
||||||
onGoNextClick={() => void onFormSubmit()}
|
onGoNextClick={handleGoNextClick}
|
||||||
/>
|
/>
|
||||||
</DocumentFlowFormContainerFooter>
|
</DocumentFlowFormContainerFooter>
|
||||||
|
|
||||||
|
<MissingSignatureFieldDialog
|
||||||
|
isOpen={isMissingSignatureDialogVisible}
|
||||||
|
onOpenChange={(value) => setIsMissingSignatureDialogVisible(value)}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</DocumentFlowFormContainerContent>
|
</DocumentFlowFormContainerContent>
|
||||||
</>
|
</>
|
||||||
|
|||||||
Reference in New Issue
Block a user