fix(partner): guard null region on proxy order preview
CI / verify (pull_request) Has been cancelled
CI / verify (pull_request) Has been cancelled
Avoid crash when province/city is not selected yet. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -83,8 +83,8 @@ export default function ProxyOrderPage() {
|
|||||||
quantity,
|
quantity,
|
||||||
deliveryMode,
|
deliveryMode,
|
||||||
storeId: deliveryMode === 'ON_SITE_PICKUP' ? storeId || undefined : undefined,
|
storeId: deliveryMode === 'ON_SITE_PICKUP' ? storeId || undefined : undefined,
|
||||||
receiverCity: deliveryMode === 'ADDRESS' ? region.city || undefined : undefined,
|
receiverCity: deliveryMode === 'ADDRESS' ? region?.city || undefined : undefined,
|
||||||
receiverDistrict: deliveryMode === 'ADDRESS' ? region.district || undefined : undefined,
|
receiverDistrict: deliveryMode === 'ADDRESS' ? region?.district || undefined : undefined,
|
||||||
}),
|
}),
|
||||||
silent: true,
|
silent: true,
|
||||||
})
|
})
|
||||||
@@ -93,7 +93,7 @@ export default function ProxyOrderPage() {
|
|||||||
.finally(() => setPreviewLoading(false));
|
.finally(() => setPreviewLoading(false));
|
||||||
}, 300);
|
}, 300);
|
||||||
return () => clearTimeout(timer);
|
return () => clearTimeout(timer);
|
||||||
}, [productId, quantity, deliveryMode, storeId, region.city, region.district]);
|
}, [productId, quantity, deliveryMode, storeId, region?.city, region?.district]);
|
||||||
|
|
||||||
function startCooldown(setter: (n: number | ((s: number) => number)) => void) {
|
function startCooldown(setter: (n: number | ((s: number) => number)) => void) {
|
||||||
setter(60);
|
setter(60);
|
||||||
@@ -153,7 +153,7 @@ export default function ProxyOrderPage() {
|
|||||||
if (deliveryMode === 'ON_SITE_PICKUP') {
|
if (deliveryMode === 'ON_SITE_PICKUP') {
|
||||||
if (!storeId) return '请选择提货门店';
|
if (!storeId) return '请选择提货门店';
|
||||||
} else {
|
} else {
|
||||||
if (!region?.province || !region.city || !region.district) return '请选择省市区';
|
if (!region?.province || !region?.city || !region?.district) return '请选择省市区';
|
||||||
if (!addressDetail.trim()) return '请填写详细地址';
|
if (!addressDetail.trim()) return '请填写详细地址';
|
||||||
if (!autoReceive) return '配送到址须勾选同意自动收货';
|
if (!autoReceive) return '配送到址须勾选同意自动收货';
|
||||||
}
|
}
|
||||||
@@ -193,9 +193,9 @@ export default function ProxyOrderPage() {
|
|||||||
autoReceive: deliveryMode === 'ADDRESS' ? true : undefined,
|
autoReceive: deliveryMode === 'ADDRESS' ? true : undefined,
|
||||||
storeId: deliveryMode === 'ON_SITE_PICKUP' ? storeId : undefined,
|
storeId: deliveryMode === 'ON_SITE_PICKUP' ? storeId : undefined,
|
||||||
receiverName: receiverName.trim() || undefined,
|
receiverName: receiverName.trim() || undefined,
|
||||||
province: deliveryMode === 'ADDRESS' ? region.province : undefined,
|
province: deliveryMode === 'ADDRESS' ? region?.province : undefined,
|
||||||
city: deliveryMode === 'ADDRESS' ? region.city : undefined,
|
city: deliveryMode === 'ADDRESS' ? region?.city : undefined,
|
||||||
district: deliveryMode === 'ADDRESS' ? region.district : undefined,
|
district: deliveryMode === 'ADDRESS' ? region?.district : undefined,
|
||||||
addressDetail: deliveryMode === 'ADDRESS' ? addressDetail.trim() : undefined,
|
addressDetail: deliveryMode === 'ADDRESS' ? addressDetail.trim() : undefined,
|
||||||
productId,
|
productId,
|
||||||
quantity,
|
quantity,
|
||||||
|
|||||||
Reference in New Issue
Block a user