| src/robotaxi/pages/begin-route/hooks/use-page-restore.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/robotaxi/pages/begin-route/index.tsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/robotaxi/pages/begin-route/hooks/use-page-restore.ts
@@ -1,4 +1,5 @@ import Taro from '@tarojs/taro'; import Taro from '@tarojs/taro'; import { useRef } from 'react'; import { showToast } from '../../../components/toast'; import wsManager from '../../../../utils/websocket'; import { mapOrderStatusToTripStatus, clearOrderTripStorage } from '../../../../utils/Robotaxi-public-method'; @@ -83,6 +84,8 @@ * 页面恢复与初始化编排:负责缓存恢复、订单同步、定位初始化与 socket 准备。 */ export default function usePageRestore(deps: Deps) { const hasShownActiveTripToastRef = useRef(false); // 同一页面实例内只提示一次,避免回前台重复闪 toast /** * 清理已选优惠券缓存。 */ @@ -479,7 +482,13 @@ const isModifyDestinationSessionActive = !!Taro.getStorageSync(MODIFY_DESTINATION_SESSION_KEY)?.active; // 修改目的地返回链路不提示“已有进行中订单” const isModifyDestinationReturn = String(fromModifyDestination || '') === '1'; const shouldShowPendingSameSiteToast = isModifyDestinationReturn && !!Taro.getStorageSync(MODIFY_DESTINATION_PENDING_SAME_SITE_TOAST_KEY); if (skipPageFlag && hasActiveTripOrderInStorage() && !isModifyDestinationReturn && !isModifyDestinationSessionActive) { const shouldShowActiveTripToast = Boolean(skipPageFlag) && !hasShownActiveTripToastRef.current && hasActiveTripOrderInStorage() && !isModifyDestinationReturn && !isModifyDestinationSessionActive; if (shouldShowActiveTripToast) { hasShownActiveTripToastRef.current = true; showToast({ title: getActiveTripOrderToastTitle(Taro.getStorageSync('tripStatus')), icon: 'none', src/robotaxi/pages/begin-route/index.tsx
@@ -1243,6 +1243,20 @@ updatePickupRouteChangeEligibleOrder }); // 页面恢复与初始化编排 const router = Taro.useRouter(); const didShowRouteParamsRef = useRef<{ skipPageFlag?: string; fromModifyDestination?: string; }>({ skipPageFlag: router.params?.skipPageFlag, fromModifyDestination: router.params?.fromModifyDestination }); // begin-route 路由参数只消费一次,避免回前台时重复触发“已有订单”提示 const didShowRouteParamsRef = useRef<{ skipPageFlag?: string; fromModifyDestination?: string; }>({ skipPageFlag: router.params?.skipPageFlag, fromModifyDestination: router.params?.fromModifyDestination }); // begin-route 路由参数只消费一次,避免回前台时重复触发“已有订单”提示 const tripRuntime = useTripRuntime({ waitingTimerStartKey: WAITING_TIMER_START_KEY, waitingTimerElapsedKey: WAITING_TIMER_ELAPSED_KEY, @@ -1902,7 +1916,12 @@ updateMapViewportPadding(); return; } handleDidShow(router.params?.skipPageFlag, router.params?.fromModifyDestination); const didShowRouteParams = didShowRouteParamsRef.current; handleDidShow(didShowRouteParams.skipPageFlag, didShowRouteParams.fromModifyDestination); didShowRouteParamsRef.current = { skipPageFlag: undefined, fromModifyDestination: undefined }; updateMapViewportPadding(); // 完成态下隐藏小程序再恢复时,受控中心点可能与原生地图实际中心脱钩,主动触发一次 // order_detail includePoints 纠偏,避免路线被压在底部支付卡片附近。