refactor(robotaxi): 重构代码结构,统一导入路径并抽离通用资源
抽离分散在各页面的行程状态枚举、埋点配置、站点状态管理等代码到统一的constants、hooks与components目录,新增公共TipPopup弹窗组件,修正所有关联的导入路径。
| | |
| | | import { View, Text, Image } from '@tarojs/components'; |
| | | import OrderStatusCard from './order-status-card'; |
| | | import { TripStatus } from '../../../../robotaxi/pages/begin-route/constants/trip-status'; |
| | | import { TripStatus } from '../../../../robotaxi/constants/trip-status'; |
| | | import { safeParse } from '../../../../utils/Robotaxi-public-method'; |
| | | |
| | | type Props = { |
| | |
| | | import { View, Image } from '@tarojs/components'; |
| | | import { safeParse } from '../../../../../utils/Robotaxi-public-method'; |
| | | import { TripStatus } from '../../../../../robotaxi/pages/begin-route/constants/trip-status'; |
| | | import { TripStatus } from '../../../../../robotaxi/constants/trip-status'; |
| | | |
| | | type HomeTripStatus = TripStatus | 0; |
| | | |
| | |
| | | import { submitAgreement } from '../../../../../robotaxi/api/home' |
| | | import { getNormalizedLoginAgreementList, type LoginAgreementItem } from '../../../../../robotaxi/utils/login-agreement' |
| | | import { reportEvent } from '../../../../../utils/Robotaxi-public-method' |
| | | import { PROTOCOL_CLICK_EVENT_ID } from '../../../../../robotaxi/pages/begin-route/constants/report-events' |
| | | import { PROTOCOL_CLICK_EVENT_ID } from '../../../../../robotaxi/constants/report-events' |
| | | |
| | | type Props = { |
| | | show?: boolean; |
| | |
| | | import { TripStatus } from '../../../robotaxi/pages/begin-route/constants/trip-status'; |
| | | import { TripStatus } from '../../../robotaxi/constants/trip-status'; |
| | | |
| | | /** 首页地图实例 ID。 */ |
| | | export const HOME_MAP_ID = 'map'; |
| | |
| | | import Taro from '@tarojs/taro'; |
| | | import { useEffect, useRef, useState } from 'react'; |
| | | import { TripStatus } from '../../../../robotaxi/pages/begin-route/constants/trip-status'; |
| | | import { TripStatus } from '../../../../robotaxi/constants/trip-status'; |
| | | |
| | | type HomeTripStatus = TripStatus | 0; |
| | | |
| | |
| | | import Taro from '@tarojs/taro'; |
| | | import wsManager from '../../../../utils/websocket'; |
| | | import { mapOrderStatusToTripStatus } from '../../../../utils/Robotaxi-public-method'; |
| | | import { SocketOrderStatus, TripStatus, toTripStatus } from '../../../../robotaxi/pages/begin-route/constants/trip-status'; |
| | | import { SocketOrderStatus, TripStatus, toTripStatus } from '../../../../robotaxi/constants/trip-status'; |
| | | import { |
| | | clearHomeStartSiteDisplayState, |
| | | consumeRetainManualSelectedHomeStartSiteOnNextHome, |
| | |
| | | resolveHomeStartSiteDisplaySite, |
| | | shouldRetainManualSelectedHomeStartSiteOnNextHome, |
| | | writeHomeStartSiteDisplayState |
| | | } from './use-home-start-site-display'; |
| | | } from '../../../../robotaxi/hooks/use-home-start-site-display'; |
| | | import useStationScaleFocus from '../../../../robotaxi/hooks/use-station-scale-focus'; |
| | | |
| | | type HomeTripStatus = TripStatus | 0; |
| | |
| | | isManualSelectedHomeStartSiteDisplayState, |
| | | readHomeStartSiteDisplayState, |
| | | shouldRetainManualSelectedHomeStartSiteOnNextHome |
| | | } from './use-home-start-site-display'; |
| | | } from '../../../../robotaxi/hooks/use-home-start-site-display'; |
| | | |
| | | type Deps = { |
| | | mapState: any; |
| | |
| | | RIDE_HOME_EDIT_DROPOFF_EVENT_ID, |
| | | RIDE_HOME_EDIT_PICKUP_EVENT_ID, |
| | | SEARCH_CLICK_EVENT_ID |
| | | } from '../../../../robotaxi/pages/begin-route/constants/report-events'; |
| | | } from '../../../../robotaxi/constants/report-events'; |
| | | import { |
| | | createReportStationPayload, |
| | | createReportUserCurrentLocationPayload |
| | | } from '../../../../robotaxi/pages/begin-route/constants/report-structures'; |
| | | } from '../../../../robotaxi/constants/report-structures'; |
| | | import { |
| | | RECOMMENDED_CONFIRM_RIDE_SOURCE_TYPE, |
| | | writeConfirmRideSiteSourceType |
| | | } from '../../../../robotaxi/pages/begin-route/constants/confirm-ride-report'; |
| | | import { resolveHomeStartSiteDisplaySite } from './use-home-start-site-display'; |
| | | } from '../../../../robotaxi/constants/confirm-ride-report'; |
| | | import { resolveHomeStartSiteDisplaySite } from '../../../../robotaxi/hooks/use-home-start-site-display'; |
| | | |
| | | type Deps = { |
| | | /** 是否未登录 */ |
| | |
| | | import { useEffect, useRef } from 'react'; |
| | | import wsManager from '../../../../utils/websocket'; |
| | | import { TripStatus, toTripStatus } from '../../../../robotaxi/pages/begin-route/constants/trip-status'; |
| | | import { TripStatus, toTripStatus } from '../../../../robotaxi/constants/trip-status'; |
| | | |
| | | type HomeTripStatus = TripStatus | 0; |
| | | |
| | |
| | | RECOMMENDED_CONFIRM_RIDE_SOURCE_TYPE, |
| | | completeConfirmRideSelectionSession, |
| | | writeConfirmRideSiteSourceType |
| | | } from '../../../../robotaxi/pages/begin-route/constants/confirm-ride-report'; |
| | | } from '../../../../robotaxi/constants/confirm-ride-report'; |
| | | |
| | | type CapsuleSite = { |
| | | id: string | number; |
| | |
| | | import { |
| | | HOME_START_SITE_SOURCE_MANUAL_SELECTED, |
| | | writeHomeStartSiteDisplayState |
| | | } from './use-home-start-site-display'; |
| | | } from '../../../../robotaxi/hooks/use-home-start-site-display'; |
| | | |
| | | type Deps = { |
| | | mapState: any; |
| | |
| | | import { |
| | | RECOMMENDED_CONFIRM_RIDE_SOURCE_TYPE, |
| | | writeConfirmRideSiteSourceType |
| | | } from '../../../../robotaxi/pages/begin-route/constants/confirm-ride-report'; |
| | | } from '../../../../robotaxi/constants/confirm-ride-report'; |
| | | |
| | | /** |
| | | * 站点与吸附状态管理:统一吸附判断与逆地理地址回填。 |
| | |
| | | import { DEFAULT_TEMPERATURE_UNIT } from '../../../utils/weather'; |
| | | import { _ROBOTAXI_WS_HOST } from '../../../constants/api'; |
| | | import { DEFAULT_LATITUDE, DEFAULT_LONGITUDE, FIRST_ENTER_KEY } from '../../../robotaxi/constants/map'; |
| | | import { TripStatus } from '../../../robotaxi/pages/begin-route/constants/trip-status'; |
| | | import { TripStatus } from '../../../robotaxi/constants/trip-status'; |
| | | import { |
| | | getBannerList, |
| | | getAgreement, |
| | |
| | | HOME_START_SITE_SOURCE_MANUAL_SELECTED, |
| | | resolveHomeStartSiteDisplaySite, |
| | | writeHomeStartSiteDisplayState |
| | | } from './hooks/use-home-start-site-display'; |
| | | } from '../../../robotaxi/hooks/use-home-start-site-display'; |
| | | import { |
| | | ensureConfirmRideSelectionStartedAt, |
| | | RECOMMENDED_CONFIRM_RIDE_SOURCE_TYPE, |
| | | resetConfirmRideSelectionContext, |
| | | writeConfirmRideSiteSourceType |
| | | } from '../../../robotaxi/pages/begin-route/constants/confirm-ride-report'; |
| | | import { RIDE_HOME_PAGE_VIEW_EVENT_ID } from '../../../robotaxi/pages/begin-route/constants/report-events'; |
| | | } from '../../../robotaxi/constants/confirm-ride-report'; |
| | | import { RIDE_HOME_PAGE_VIEW_EVENT_ID } from '../../../robotaxi/constants/report-events'; |
| | | import { |
| | | createReportStationPayload, |
| | | createReportUserCurrentLocationPayload |
| | | } from '../../../robotaxi/pages/begin-route/constants/report-structures'; |
| | | } from '../../../robotaxi/constants/report-structures'; |
| | | |
| | | type HomeTripStatus = TripStatus | 0; |
| | | type UserCurrentLocation = { |
| File was renamed from src/robotaxi/pages/select-map-site/components/css-folder/tip-popup.less |
| | |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | } |
| | | } |
| File was renamed from src/robotaxi/pages/select-map-site/components/tip-popup.tsx |
| | |
| | | import Taro from '@tarojs/taro'; |
| | | import { View, Text, Image } from '@tarojs/components'; |
| | | import { useEffect, useState } from 'react'; |
| | | import './css-folder/tip-popup.less' |
| | | import './index.less' |
| | | |
| | | type Props = { |
| | | show?: boolean; |
| | |
| | | </View> |
| | | </View> |
| | | ) |
| | | } |
| | | } |
| | |
| | | import OverRoute from './over-route'; |
| | | import PassengerNotice from './passenger-notice'; |
| | | import EvaluatePopup from './evaluate-popup'; |
| | | import TipPopup from '../../select-map-site/components/tip-popup'; |
| | | import TipPopup from '../../../components/tip-popup'; |
| | | import AuthBluetoothPopup from './auth-bluetooth-popup'; |
| | | import PrivacyPopup from '../../../../pages/robotaxi/home/components/privacy-popup'; |
| | | import { useBeginRouteViewContext } from './begin-route-view-context'; |
| | |
| | | import { |
| | | HOME_START_SITE_SOURCE_MANUAL_SELECTED, |
| | | writeHomeStartSiteDisplayState |
| | | } from '../../../../pages/robotaxi/home/hooks/use-home-start-site-display'; |
| | | } from '../../../hooks/use-home-start-site-display'; |
| | | |
| | | type Deps = { |
| | | tripStatus: TripStatus; |
| | |
| | | import { View, Map, Text, Image, ScrollView } from '@tarojs/components'; |
| | | import CustomerServicePopup from '../../../components/customer-service'; |
| | | import TipPopup from '../components/tip-popup'; |
| | | import TipPopup from '../../../components/tip-popup'; |
| | | import { formatTripDistance, formatTripDurationFromSeconds } from '../../../../utils/Robotaxi-public-method'; |
| | | |
| | | type Deps = { |
| | |
| | | MODIFY_DESTINATION_CANDIDATE_KEY, |
| | | MODIFY_DESTINATION_SKIP_AC_QUERY_ON_RETURN_KEY, |
| | | MODIFY_DESTINATION_SESSION_KEY |
| | | } from '../../begin-route/constants/modify-destination'; |
| | | } from '../../../constants/modify-destination'; |
| | | import { |
| | | CONFIRM_MAP_DROPOFF_BUTTON_EVENT_ID, |
| | | CONFIRM_MAP_PICKUP_BUTTON_EVENT_ID |
| | | } from '../../begin-route/constants/report-events'; |
| | | import { createReportStationPayload } from '../../begin-route/constants/report-structures'; |
| | | } from '../../../constants/report-events'; |
| | | import { createReportStationPayload } from '../../../constants/report-structures'; |
| | | import { |
| | | HOME_START_SITE_SOURCE_MANUAL_SELECTED, |
| | | writeHomeStartSiteDisplayState |
| | | } from '../../../../pages/robotaxi/home/hooks/use-home-start-site-display'; |
| | | } from '../../../hooks/use-home-start-site-display'; |
| | | import { |
| | | MAP_CONFIRM_RIDE_SOURCE_TYPE, |
| | | completeConfirmRideSelectionSession, |
| | | writeConfirmRideSiteSourceType |
| | | } from '../../begin-route/constants/confirm-ride-report'; |
| | | } from '../../../constants/confirm-ride-report'; |
| | | |
| | | const AUTO_SCALE_MAX = 17; // 自动缩放最大等级 |
| | | const AUTO_SCALE_MIN = 11; // 自动缩放最小等级 |
| | |
| | | import { |
| | | MAP_SELECT_DROPOFF_PAGE_VIEW_EVENT_ID, |
| | | PIN_PICKUP_LOCATION_PAGE_VIEW_EVENT_ID |
| | | } from '../begin-route/constants/report-events'; |
| | | } from '../../constants/report-events'; |
| | | import { withRobotaxiWhitelist } from '../../../utils/whitelist'; |
| | | |
| | | /** |
| | |
| | | import { View, Image, Map } from '@tarojs/components'; |
| | | import { formatDurationDisplay, safeParse } from '../../../../utils/Robotaxi-public-method'; |
| | | import { TripStatus } from '../../begin-route/constants/trip-status'; |
| | | import { TripStatus } from '../../../constants/trip-status'; |
| | | |
| | | type Props = { |
| | | isExpired: boolean; |
| | |
| | | import Taro from "@tarojs/taro"; |
| | | import { useEffect, useRef, useState } from "react"; |
| | | import { TripStatus } from "../../begin-route/constants/trip-status"; |
| | | import { TripStatus } from "../../../constants/trip-status"; |
| | | |
| | | type Deps = { |
| | | tripStatus: TripStatus; |
| | |
| | | import Taro from "@tarojs/taro"; |
| | | import { useCallback, useEffect, useRef, useState } from "react"; |
| | | import { computeAdaptiveBottomPadding } from "../../../../utils/Robotaxi-public-method"; |
| | | import { TripStatus } from "../../begin-route/constants/trip-status"; |
| | | import { TripStatus } from "../../../constants/trip-status"; |
| | | |
| | | type Deps = { |
| | | tripStatus: TripStatus; |
| | |
| | | import { useEffect, useRef, useState } from "react"; |
| | | import { TripStatus } from "../../begin-route/constants/trip-status"; |
| | | import { TripStatus } from "../../../constants/trip-status"; |
| | | |
| | | type Deps = { |
| | | isAndroid: boolean; |
| | |
| | | import { mapOrderStatusToTripStatus } from '../../../../utils/Robotaxi-public-method'; |
| | | import { queryOrderTrajectory, shareQueryOrderInfo, shareQueryOrderRoute } from '../../../api/begin-route'; |
| | | import { normalizeDistanceKm, normalizeDurationSeconds } from '../../../utils/format'; |
| | | import { TripStatus } from '../../begin-route/constants/trip-status'; |
| | | import { TripStatus } from '../../../constants/trip-status'; |
| | | |
| | | type LocationPoint = { latitude: number; longitude: number }; |
| | | |
| | |
| | | import { CoverImage, CoverView, Image, View } from "@tarojs/components"; |
| | | import { formatDurationDisplay } from "../../../../utils/Robotaxi-public-method"; |
| | | import { TripStatus } from "../../begin-route/constants/trip-status"; |
| | | import { TripStatus } from "../../../constants/trip-status"; |
| | | |
| | | type Deps = { |
| | | isAndroid: boolean; |
| | |
| | | import useViewDelegates from './hooks/use-view-delegates'; |
| | | import useShareTripRuntime from './hooks/use-share-trip-runtime'; |
| | | import ShareTripView from './components/share-trip-view'; |
| | | import { TripStatus } from '../begin-route/constants/trip-status'; |
| | | import { TripStatus } from '../../constants/trip-status'; |
| | | import { isWhiteList } from '../../api/home'; |
| | | import { subscribeShareTripByTap } from '../../../utils/subscribe'; |
| | | import { checkOtp } from '../../../utils/tools'; |
| | |
| | | import { getDistance, reportEvent, toUnixSeconds } from '../../../utils/Robotaxi-public-method'; |
| | | import { getOrderDistance } from '../../api/select-map-site'; |
| | | import { checkOtp } from '../../../utils/tools'; |
| | | import TipPopup from '../select-map-site/components/tip-popup'; |
| | | import TipPopup from '../../components/tip-popup'; |
| | | import SiteListItem from './components/site-list-item'; |
| | | import FavoritePopup from './components/favorite-popup'; |
| | | import useSiteSearch from './hooks/use-site-search'; |
| | |
| | | MODIFY_DESTINATION_CANDIDATE_KEY, |
| | | MODIFY_DESTINATION_SKIP_AC_QUERY_ON_RETURN_KEY, |
| | | MODIFY_DESTINATION_SESSION_KEY |
| | | } from '../begin-route/constants/modify-destination'; |
| | | } from '../../constants/modify-destination'; |
| | | import { |
| | | RECOMMENDED_DROPOFF_STATION_ITEM_EVENT_ID, |
| | | SEARCH_DROPOFF_RESULT_ITEM_EVENT_ID, |
| | |
| | | SELECT_DROPOFF_LOCATION_MAP_SELECT_BUTTON_EVENT_ID, |
| | | SELECT_PICKUP_LOCATION_HISTORY_PICKUP_ITEM_EVENT_ID, |
| | | SELECT_PICKUP_LOCATION_PIN_PICKUP_LOCATION_BUTTON_EVENT_ID |
| | | } from '../begin-route/constants/report-events'; |
| | | } from '../../constants/report-events'; |
| | | import { |
| | | createIndexedStationSelectionPayload, |
| | | createReportStationPayload, |
| | | createReportUserCurrentLocationPayload |
| | | } from '../begin-route/constants/report-structures'; |
| | | } from '../../constants/report-structures'; |
| | | import { |
| | | HOME_START_SITE_SOURCE_MANUAL_SELECTED, |
| | | writeHomeStartSiteDisplayState |
| | | } from '../../../pages/robotaxi/home/hooks/use-home-start-site-display'; |
| | | } from '../../hooks/use-home-start-site-display'; |
| | | import { |
| | | HISTORY_CONFIRM_RIDE_SOURCE_TYPE, |
| | | RECOMMENDED_CONFIRM_RIDE_SOURCE_TYPE, |
| | |
| | | UNKNOWN_CONFIRM_RIDE_SOURCE_TYPE, |
| | | completeConfirmRideSelectionSession, |
| | | writeConfirmRideSiteSourceType |
| | | } from '../begin-route/constants/confirm-ride-report'; |
| | | } from '../../constants/confirm-ride-report'; |
| | | import { withRobotaxiWhitelist } from '../../../utils/whitelist'; |
| | | |
| | | /** |