return await Effect.gen(function* () {
yield* onSubmit(value.otp)
yield* Effect.sync(() => onSuccess())
}).pipe(
Effect.catchTags({
OTPVerificationError: (error) =>
Effect.succeed({
fields: {
otp: error.message,
},
}),
}),
Effect.catchAllDefect(() =>
Effect.succeed({
fields: {
otp: 'Something went wrong',
},
}),
),
Effect.runPromise,
)
return await Effect.gen(function* () {
yield* onSubmit(value.otp)
yield* Effect.sync(() => onSuccess())
}).pipe(
Effect.catchTags({
OTPVerificationError: (error) =>
Effect.succeed({
fields: {
otp: error.message,
},
}),
}),
Effect.catchAllDefect(() =>
Effect.succeed({
fields: {
otp: 'Something went wrong',
},
}),
),
Effect.runPromise,
)