diff --git a/README.md b/README.md index 9f785e6..7fc289b 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,9 @@ NODE_ENV=production REACT_APP_ENV=test pnpm run build ``` - `config/proxy_prod.ts` resolves targets dynamically based on the current hostname; adjust rules there if deployment hosts change. -- `config/request_prod.ts` prepends the API base URL from `ApiConfigService`, while the dev file leaves relative paths untouched. +- Request pipelines differ per mode: + - `config/request_dev.ts` keeps relative URLs so calls pass through the dev proxy setup (use when mocking/pointing to LAN services). + - `config/request_prod.ts` builds absolute URLs from `ApiConfigService` so static builds call the correct host without relying on the proxy. ## Verifying Builds diff --git a/config/proxy_prod.ts b/config/proxy_prod.ts index 5777317..cbec837 100644 --- a/config/proxy_prod.ts +++ b/config/proxy_prod.ts @@ -8,7 +8,7 @@ const getCurrentIP = () => { hostname.startsWith('192.168.') || hostname.startsWith('10.') ) { - console.log('Host name: ', hostname); + // console.log('Host name: ', hostname); return hostname; } diff --git a/config/request_dev.ts b/config/request_dev.ts index 5f22c28..76c3b50 100644 --- a/config/request_dev.ts +++ b/config/request_dev.ts @@ -47,7 +47,7 @@ export const handleRequestConfig: RequestConfig = { errorConfig: { // Error throwing errorThrower: (res: any) => { - console.log('Response from backend:', res); + // console.log('Response from backend:', res); const { success, data, errorCode, errorMessage, showType } = res; if (!success) { const error: any = new Error(errorMessage); diff --git a/config/request_prod.ts b/config/request_prod.ts index e16f082..42befd4 100644 --- a/config/request_prod.ts +++ b/config/request_prod.ts @@ -31,7 +31,7 @@ export const handleRequestConfig: RequestConfig = { errorConfig: { // Error throwing errorThrower: (res: any) => { - console.log('Response from backend:', res); + // console.log('Response from backend:', res); const { success, data, errorCode, errorMessage, showType } = res; if (!success) { const error: any = new Error(errorMessage); @@ -68,7 +68,7 @@ export const handleRequestConfig: RequestConfig = { // Request interceptors requestInterceptors: [ (url: string, options: any) => { - console.log('URL Request:', url, options); + // console.log('URL Request:', url, options); // Nếu URL không phải absolute URL, thêm base URL let finalUrl = url; diff --git a/src/models/getAlarm.ts b/src/models/getAlarm.ts index 097920e..6f034cc 100644 --- a/src/models/getAlarm.ts +++ b/src/models/getAlarm.ts @@ -8,7 +8,7 @@ export default function useAlarmModel() { setLoading(true); try { const res = await queryAlarms(); // đổi URL cho phù hợp - console.log('Alarm Data fetched:', res); + // console.log('Alarm Data fetched:', res); setAlarmData(res || []); } catch (err) { diff --git a/src/pages/Home/components/BaseMap.tsx b/src/pages/Home/components/BaseMap.tsx index 30d96e7..c95d3de 100644 --- a/src/pages/Home/components/BaseMap.tsx +++ b/src/pages/Home/components/BaseMap.tsx @@ -163,10 +163,10 @@ class MapManager { this.initZoomListener(); this.isInitialized = true; - console.log( - 'Map initialized successfully at', - new Date().toLocaleTimeString(), - ); + // console.log( + // 'Map initialized successfully at', + // new Date().toLocaleTimeString(), + // ); this.map.on('singleclick', (evt: any) => { const featuresAtPixel: { @@ -188,12 +188,12 @@ class MapManager { if (this.features.includes(feature)) { this.onFeatureClick(feature); this.onFeatureSelect(feature, evt.pixel); - console.log( - 'Feature clicked at', - new Date().toLocaleTimeString(), - ':', - feature.getProperties(), - ); + // console.log( + // 'Feature clicked at', + // new Date().toLocaleTimeString(), + // ':', + // feature.getProperties(), + // ); } } else { this.onFeaturesClick(featuresAtPixel.map((f) => f.feature)); @@ -366,7 +366,7 @@ class MapManager { strokeColor = 'rgba(255, 0, 0, 0.8)', strokeWidthBase = 0.25, } = config; - console.log('Starting animatedMarker with config:', config); + // console.log('Starting animatedMarker with config:', config); const flashGeom = feature.getGeometry()?.clone() as Point | undefined; if (!flashGeom || !this.featureLayer) { diff --git a/src/pages/Home/components/ShipInfo.tsx b/src/pages/Home/components/ShipInfo.tsx index 9f4d2ed..ca3edda 100644 --- a/src/pages/Home/components/ShipInfo.tsx +++ b/src/pages/Home/components/ShipInfo.tsx @@ -36,7 +36,7 @@ const ShipInfo: React.FC = ({ isOpen, setIsOpen }) => { const fetchShipData = async () => { try { const resp = await getShipInfo(); - console.log('Ship Info Response:', resp); + // console.log('Ship Info Response:', resp); return resp; } catch (error) { console.error('Error fetching ship data:', error); diff --git a/src/pages/Home/components/SosButton.tsx b/src/pages/Home/components/SosButton.tsx index 4b2456d..8e2cfa9 100644 --- a/src/pages/Home/components/SosButton.tsx +++ b/src/pages/Home/components/SosButton.tsx @@ -67,7 +67,7 @@ const SosButton: React.FC = ({ onRefresh }) => { console.error('Failed to delete SOS:', error); message.error(t('sos.cancelError')); } - console.log('Sending SOS without message'); + // console.log('Sending SOS without message'); } }; @@ -116,7 +116,7 @@ const SosButton: React.FC = ({ onRefresh }) => { } onFinish={async (values) => { - console.log('Form Values: ', values); + // console.log('Form Values: ', values); // Nếu chọn "Khác" thì lấy messageOther, ngược lại lấy message const finalMessage = diff --git a/src/pages/Home/components/VietNamMap.tsx b/src/pages/Home/components/VietNamMap.tsx index e5a039a..1d4e2e8 100644 --- a/src/pages/Home/components/VietNamMap.tsx +++ b/src/pages/Home/components/VietNamMap.tsx @@ -22,7 +22,7 @@ const VietNamMap: React.FC = React.memo( const mapRef = useRef(null); useEffect(() => { - console.log('useEffect in VietNamMap triggered'); + // console.log('useEffect in VietNamMap triggered'); let manager = mapManager; if (!manager) { @@ -38,10 +38,10 @@ const VietNamMap: React.FC = React.memo( manager!.mapRef = mapRef; if (!manager!.map) { manager!.initializeMap(); - console.log( - 'Initialized new MapManager instance at', - new Date().toLocaleTimeString(), - ); + // console.log( + // 'Initialized new MapManager instance at', + // new Date().toLocaleTimeString(), + // ); } } else if (retryCount < maxRetries) { console.error('mapRef.current is not ready, retrying...'); @@ -55,7 +55,7 @@ const VietNamMap: React.FC = React.memo( initialize(); return () => { - console.log('Cleanup in VietNamMap triggered'); + // console.log('Cleanup in VietNamMap triggered'); // Không gọi destroy ở đây để tránh phá hủy bản đồ không cần thiết }; }, [mapManager, onFeatureClick, onFeatureSelect, onFeaturesClick, onError]); diff --git a/src/pages/Home/index.tsx b/src/pages/Home/index.tsx index 79aec35..dac8049 100644 --- a/src/pages/Home/index.tsx +++ b/src/pages/Home/index.tsx @@ -63,12 +63,12 @@ const HomePage: React.FC = () => { const hasCenteredRef = useRef(false); const onFeatureClick = useCallback((feature: any) => { console.log('OnClick Feature: ', feature); - console.log( - 'Clicked ship at', - new Date().toLocaleTimeString(), - 'Properties:', - feature.getProperties(), - ); + // console.log( + // 'Clicked ship at', + // new Date().toLocaleTimeString(), + // 'Properties:', + // feature.getProperties(), + // ); }, []); const intl = useIntl(); const onFeaturesClick = useCallback((features: any[]) => { diff --git a/src/pages/Trip/components/CreateNewHaulOrTrip.tsx b/src/pages/Trip/components/CreateNewHaulOrTrip.tsx index 10a14d3..314a85e 100644 --- a/src/pages/Trip/components/CreateNewHaulOrTrip.tsx +++ b/src/pages/Trip/components/CreateNewHaulOrTrip.tsx @@ -38,7 +38,7 @@ const CreateNewHaulOrTrip: React.FC = ({ try { const gpsData = await getGPS(); - console.log('GPS Data:', gpsData); + // console.log('GPS Data:', gpsData); const body: API.NewFishingLogRequest = { trip_id: trips?.id || '', diff --git a/src/pages/Trip/components/CreateOrUpdateFishingLog.tsx b/src/pages/Trip/components/CreateOrUpdateFishingLog.tsx index 0e288fb..535629b 100644 --- a/src/pages/Trip/components/CreateOrUpdateFishingLog.tsx +++ b/src/pages/Trip/components/CreateOrUpdateFishingLog.tsx @@ -40,7 +40,7 @@ const CreateOrUpdateFishingLog: React.FC = ({ try { const resp = await getFishSpecies(); setFishDatas(resp); - console.log('Fetched fish species:', resp); + // console.log('Fetched fish species:', resp); } catch (error) { console.error('Error fetching fish species:', error); } @@ -48,7 +48,7 @@ const CreateOrUpdateFishingLog: React.FC = ({ useEffect(() => { getAllFish(); if (isOpen) { - console.log('Modal opened with fishingLogs:', fishingLogs); + // console.log('Modal opened with fishingLogs:', fishingLogs); if (fishingLogs?.info && fishingLogs.info.length > 0) { const dataWithKeys: FishingLogInfoWithKey[] = fishingLogs.info.map( @@ -158,8 +158,8 @@ const CreateOrUpdateFishingLog: React.FC = ({ async function createOrCreateOrUpdateFishingLog( fishingLog: FishingLogInfoWithKey[], ) { - console.log('Is finished:', isFinished); - console.log('Trip:', trip); + // console.log('Is finished:', isFinished); + // console.log('Trip:', trip); try { const gpsData = await getGPS(); @@ -167,8 +167,8 @@ const CreateOrUpdateFishingLog: React.FC = ({ if (isFinished === false) { // Tạo mẻ mới const logStatus0 = trip.fishing_logs?.find((log) => log.status === 0); - console.log('ok', logStatus0); - console.log('ok', fishingLog); + // console.log('ok', logStatus0); + // console.log('ok', fishingLog); const body: API.FishingLog = { fishing_log_id: logStatus0?.fishing_log_id || '', trip_id: trip.id, @@ -192,8 +192,8 @@ const CreateOrUpdateFishingLog: React.FC = ({ })), sync: true, }; - const resp = await updateFishingLogs(body); - console.log('Resp', resp); + await updateFishingLogs(body); + // console.log('Resp', resp); onFinished?.(true); onOpenChange(false); @@ -223,8 +223,8 @@ const CreateOrUpdateFishingLog: React.FC = ({ }; // console.log('Update body:', body); - const resp = await updateFishingLogs(body); - console.log('Resp', resp); + await updateFishingLogs(body); + // console.log('Resp', resp); onFinished?.(true); onOpenChange(false); diff --git a/src/pages/Trip/components/HaulTable.tsx b/src/pages/Trip/components/HaulTable.tsx index 29323df..23a7538 100644 --- a/src/pages/Trip/components/HaulTable.tsx +++ b/src/pages/Trip/components/HaulTable.tsx @@ -122,7 +122,7 @@ const HaulTable: React.FC = ({ hauls, trip }) => { align: 'center', hideInSearch: true, render: (_, record) => { - console.log('Rendering action column for record:', record); + // console.log('Rendering action column for record:', record); return ( {/* Nút Edit */} diff --git a/src/pages/Trip/components/TripCost.tsx b/src/pages/Trip/components/TripCost.tsx index f8c3113..b9f116e 100644 --- a/src/pages/Trip/components/TripCost.tsx +++ b/src/pages/Trip/components/TripCost.tsx @@ -15,6 +15,7 @@ const TripCostTable: React.FC = ({ tripCosts }) => { ); const trip_cost_columns: ProColumns[] = [ { + key: 'type', title: (
{intl.formatMessage({ id: 'trip.cost.type' })} @@ -34,6 +35,7 @@ const TripCostTable: React.FC = ({ tripCosts }) => { align: 'center', }, { + key: 'amount', title: (
{intl.formatMessage({ id: 'trip.cost.amount' })} @@ -43,6 +45,7 @@ const TripCostTable: React.FC = ({ tripCosts }) => { align: 'center', }, { + key: 'unit', title: (
{intl.formatMessage({ id: 'trip.cost.unit' })} @@ -52,6 +55,7 @@ const TripCostTable: React.FC = ({ tripCosts }) => { align: 'center', }, { + key: 'cost_per_unit', title: (
{intl.formatMessage({ id: 'trip.cost.price' })} @@ -62,6 +66,7 @@ const TripCostTable: React.FC = ({ tripCosts }) => { render: (val: any) => (val ? Number(val).toLocaleString() : ''), }, { + key: 'total_cost', title: (
{intl.formatMessage({ id: 'trip.cost.total' })} @@ -79,6 +84,7 @@ const TripCostTable: React.FC = ({ tripCosts }) => { ]; return ( + rowKey="trip-cost-table" columns={trip_cost_columns} dataSource={tripCosts} search={false} diff --git a/src/pages/Trip/index.tsx b/src/pages/Trip/index.tsx index 45fc127..cb9f037 100644 --- a/src/pages/Trip/index.tsx +++ b/src/pages/Trip/index.tsx @@ -44,7 +44,7 @@ const DetailTrip = () => { }, []); return ( - console.log('Rendering with tripInfo:', data), + // console.log('Rendering with tripInfo:', data), ( { { - console.log('Nhanaj dduowcj hàm, onReload:', isReload); - - // if (isReload) { - // fetchTrip(); - // } - }} /> diff --git a/src/services/controller/AuthController.ts b/src/services/controller/AuthController.ts index 3428bb2..3147c44 100644 --- a/src/services/controller/AuthController.ts +++ b/src/services/controller/AuthController.ts @@ -2,7 +2,7 @@ import { API_PATH_LOGIN } from '@/constants'; import { request } from '@umijs/max'; export async function login(body: API.LoginRequestBody) { - console.log('Login request body:', body); + // console.log('Login request body:', body); return request(API_PATH_LOGIN, { method: 'POST',