fix(partner): guard null region on proxy order preview
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:
2026-07-28 00:10:47 +08:00
parent b59d4484ec
commit aa9d689c76
+7 -7
View File
@@ -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,