diff --git a/packages/ui/src/working-groups/modals/ApplyForRoleModal/ApplicationStep.tsx b/packages/ui/src/working-groups/modals/ApplyForRoleModal/ApplicationStep.tsx index 9d6966e244..86aeadf5ca 100644 --- a/packages/ui/src/working-groups/modals/ApplyForRoleModal/ApplicationStep.tsx +++ b/packages/ui/src/working-groups/modals/ApplyForRoleModal/ApplicationStep.tsx @@ -23,7 +23,7 @@ export const ApplicationStep = ({ questions }: ApplicationStepProps) => { question={question.question} index={question.index} key={question.index} - name={`form.question${index}`} + name={`form.${index}`} /> ))} diff --git a/packages/ui/src/working-groups/modals/ApplyForRoleModal/ApplyForRoleModal.tsx b/packages/ui/src/working-groups/modals/ApplyForRoleModal/ApplyForRoleModal.tsx index b3afe61db0..d5d6895211 100644 --- a/packages/ui/src/working-groups/modals/ApplyForRoleModal/ApplyForRoleModal.tsx +++ b/packages/ui/src/working-groups/modals/ApplyForRoleModal/ApplyForRoleModal.tsx @@ -186,14 +186,14 @@ export const ApplyForRoleModal = () => { const transactionService = state.children.transaction if (state.matches('transaction') && signer && api && transactionService) { - const { stake, form: formFields } = form.getValues() + const { stake, form: answers } = form.getValues() const applyOnOpeningTransaction = api.tx[opening.groupId].applyOnOpening({ memberId: activeMember?.id, openingId: opening.runtimeId, roleAccountId: stake.roleAccount.address, rewardAccountId: stake.rewardAccount.address, - description: metadataToBytes(ApplicationMetadata, { answers: Object.values(formFields ?? {}) as string[] }), + description: metadataToBytes(ApplicationMetadata, { answers }), stakeParameters: { stake: stake.amount, stakingAccountId: stake.account?.address, diff --git a/packages/ui/src/working-groups/modals/ApplyForRoleModal/helpers.ts b/packages/ui/src/working-groups/modals/ApplyForRoleModal/helpers.ts index 116f536703..f9ea01bbb4 100644 --- a/packages/ui/src/working-groups/modals/ApplyForRoleModal/helpers.ts +++ b/packages/ui/src/working-groups/modals/ApplyForRoleModal/helpers.ts @@ -4,17 +4,8 @@ import { BNSchema, validStakingAmount } from '@/common/utils/validation' import { AccountSchema, StakingAccountSchema } from '@/memberships/model/validation' import { ApplicationQuestion } from '@/working-groups/types' -export const validationSchemaFromQuestions = (questions: ApplicationQuestion[]) => { - const shapeDefinition = questions.reduce( - (schema, question, index) => ({ - [`question${index}`]: Yup.string().required(), - ...schema, - }), - {} - ) - - return Yup.object().shape(shapeDefinition) -} +export const validationSchemaFromQuestions = (questions: ApplicationQuestion[]) => + Yup.array().of(Yup.string().required()).length(questions.length) export const baseSchema = Yup.object().shape({ stake: Yup.object().shape({ @@ -23,5 +14,5 @@ export const baseSchema = Yup.object().shape({ rewardAccount: AccountSchema.required(), amount: BNSchema.test(validStakingAmount()).required('Amount is required'), }), - form: Yup.object().shape({}), + form: Yup.array().of(Yup.string().required()).min(1), })