62 lines
1.4 KiB
TypeScript
62 lines
1.4 KiB
TypeScript
import type {SelectedProductState} from '@/types'
|
|
|
|
type RedeemValidationParams = {
|
|
sessionId?: string
|
|
selectedProduct: SelectedProductState | null
|
|
selectedAddressId: string
|
|
}
|
|
|
|
type RedeemValidationResult =
|
|
| { valid: true }
|
|
| { valid: false; message: string }
|
|
|
|
export function validateRedeemSubmission({
|
|
sessionId,
|
|
selectedProduct,
|
|
selectedAddressId,
|
|
}: RedeemValidationParams): RedeemValidationResult {
|
|
if (!sessionId) {
|
|
return {
|
|
valid: false,
|
|
message: 'Session expired. Please log in again.',
|
|
}
|
|
}
|
|
|
|
if (!selectedProduct) {
|
|
return {
|
|
valid: false,
|
|
message: 'No product selected.',
|
|
}
|
|
}
|
|
|
|
if (selectedProduct.categoryId === 'PHYSICAL' && !selectedAddressId) {
|
|
return {
|
|
valid: false,
|
|
message: 'Please select a shipping address.',
|
|
}
|
|
}
|
|
|
|
return {valid: true}
|
|
}
|
|
|
|
type AddAddressValidationParams = {
|
|
isAddAddressFormValid: boolean
|
|
}
|
|
|
|
type AddAddressValidationResult =
|
|
| { valid: true }
|
|
| { valid: false; message: string }
|
|
|
|
export function validateAddAddressSubmission({
|
|
isAddAddressFormValid,
|
|
}: AddAddressValidationParams): AddAddressValidationResult {
|
|
if (!isAddAddressFormValid) {
|
|
return {
|
|
valid: false,
|
|
message: 'Please complete all required address fields.',
|
|
}
|
|
}
|
|
|
|
return {valid: true}
|
|
}
|