feat:新增多语言
This commit is contained in:
@@ -1,37 +1,29 @@
|
||||
import type {AddAddressForm} from '@/types'
|
||||
import i18n from '@/lib/i18n'
|
||||
|
||||
type AddressValidationResult =
|
||||
| { valid: true }
|
||||
| { valid: false; message: string }
|
||||
|
||||
export function validateAddressFormSubmission(addressForm: AddAddressForm): AddressValidationResult {
|
||||
const normalizedRegion = addressForm.region.filter((value) => value.trim())
|
||||
|
||||
if (!addressForm.name.trim()) {
|
||||
return {
|
||||
valid: false,
|
||||
message: 'Please enter the receiver name.',
|
||||
message: i18n.t('validation.pleaseEnterReceiverName'),
|
||||
}
|
||||
}
|
||||
|
||||
if (!addressForm.phone.trim()) {
|
||||
return {
|
||||
valid: false,
|
||||
message: 'Please enter a reachable mobile number.',
|
||||
}
|
||||
}
|
||||
|
||||
if (normalizedRegion.length === 0) {
|
||||
return {
|
||||
valid: false,
|
||||
message: 'Please select a region.',
|
||||
message: i18n.t('validation.pleaseEnterReachablePhone'),
|
||||
}
|
||||
}
|
||||
|
||||
if (!addressForm.detailedAddress.trim()) {
|
||||
return {
|
||||
valid: false,
|
||||
message: 'Please enter the detailed address.',
|
||||
message: i18n.t('validation.pleaseEnterDetailedAddress'),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ type UseAddressBookOptions = {
|
||||
const emptyAddressForm: AddAddressForm = {
|
||||
name: '',
|
||||
phone: '',
|
||||
region: [],
|
||||
detailedAddress: '',
|
||||
isDefault: false,
|
||||
}
|
||||
@@ -40,7 +39,6 @@ export function mapAddressToForm(item: AddressListItem): AddAddressForm {
|
||||
return {
|
||||
name: item.receiver_name,
|
||||
phone: item.phone,
|
||||
region: item.region.map((part) => part.trim()).filter(Boolean).slice(0, 3),
|
||||
detailedAddress: item.detail_address,
|
||||
isDefault: item.default_setting === 1,
|
||||
}
|
||||
@@ -66,7 +64,7 @@ export function useAddressBook(options?: UseAddressBookOptions) {
|
||||
session_id: sessionId!,
|
||||
receiver_name: addressForm.name.trim(),
|
||||
phone: addressForm.phone.trim(),
|
||||
region: addressForm.region.join(', '),
|
||||
region: editingAddress ? editingAddress.region.map((part) => part.trim()).filter(Boolean).join(', ') : '',
|
||||
detail_address: addressForm.detailedAddress.trim(),
|
||||
default_setting: addressForm.isDefault ? '1' : '0',
|
||||
} as const
|
||||
|
||||
Reference in New Issue
Block a user