Feat/SW-1281 ancillaries add flow * feat(SW-1546): update design * feat(SW-1546): show points only if logged in * feat(SW-1546): always show points * feat(SW-1281): ancillary add flow initial * feat(SW-1546): add api call * feat(SW-1281): refactor naming and break out components * feat(SW-1281): handle back button * feat(SW-1281): make mobile cards clickable * feat(SW-1281): refactor spread ancillaries * feat(SW-1281): add deliverytimes * feat(SW-1281): rebase master * feat(SW-1281): add design for logged in or not * feat(SW-1281): add design * feat(SW-1281): add mobile design * feat(SW-1281): fix carousel * feat(SW-1281): show deliverytime only if ancillary has not been added * feat(SW-1281): add design * feat(SW-1281): add translations * feat(SW-1281): add translations * feat(SW-1281): add translations * feat(SW-1281): base dates on check in date only * feat(SW-1281): fix show correct toast when no valid data * feat(SW-1281): hande logic if deliverytime is not required * feat(SW-1281): fix max width for mobile * feat(SW-1281): refactor after pr comment Approved-by: Niclas Edenvin Approved-by: Linus Flood
23 lines
643 B
TypeScript
23 lines
643 B
TypeScript
import { z } from "zod"
|
|
|
|
export const ancillaryFormSchema = z
|
|
.object({
|
|
quantityWithPoints: z.number().nullable(),
|
|
quantityWithCard: z.number().nullable(),
|
|
deliveryTime: z.string().nullable().optional(),
|
|
optionalText: z.string().optional(),
|
|
termsAndConditions: z
|
|
.boolean()
|
|
.refine((val) => val, "You must accept the terms"),
|
|
})
|
|
.refine(
|
|
(data) =>
|
|
(data.quantityWithPoints ?? 0) > 0 || (data.quantityWithCard ?? 0) > 0,
|
|
{
|
|
message: "You must select at least one quantity",
|
|
path: ["quantityWithCard"],
|
|
}
|
|
)
|
|
|
|
export type AncillaryFormData = z.infer<typeof ancillaryFormSchema>
|