Skip to content

Commit c6d71c5

Browse files
authored
[UNI-128] feat : API 공통 타입 선언 및 fetch 디렉토리 정리 (#57)
1 parent fb10722 commit c6d71c5

File tree

13 files changed

+72
-70
lines changed

13 files changed

+72
-70
lines changed

uniro_frontend/src/App.tsx

+23-23
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,29 @@ import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
2020
const queryClient = new QueryClient();
2121

2222
function App() {
23-
const { location, fallback } = useDynamicSuspense();
24-
useNetworkStatus();
25-
return (
26-
<QueryClientProvider client={queryClient}>
27-
<Suspense key={location.key} fallback={fallback}>
28-
<Routes>
29-
<Route path="/demo" element={<Demo />} />
30-
<Route path="/" element={<LandingPage />} />
31-
<Route path="/university" element={<UniversitySearchPage />} />
32-
<Route path="/building" element={<BuildingSearchPage />} />
33-
<Route path="/map" element={<MapPage />} />
34-
<Route path="/form" element={<ReportForm />} />
35-
<Route path="/result" element={<NavigationResultPage />} />
36-
<Route path="/report/route" element={<ReportRoutePage />} />
37-
<Route path="/report/hazard" element={<ReportHazardPage />} />
38-
/** 에러 페이지 */
39-
<Route path="/error" element={<ErrorPage />} />
40-
<Route path="/error/offline" element={<OfflinePage />} />
41-
</Routes>
42-
</Suspense>
43-
<ReactQueryDevtools initialIsOpen={false} />
44-
</QueryClientProvider>
45-
);
23+
const { location, fallback } = useDynamicSuspense();
24+
useNetworkStatus();
25+
return (
26+
<QueryClientProvider client={queryClient}>
27+
<Suspense key={location.key} fallback={fallback}>
28+
<Routes>
29+
<Route path="/demo" element={<Demo />} />
30+
<Route path="/" element={<LandingPage />} />
31+
<Route path="/university" element={<UniversitySearchPage />} />
32+
<Route path="/building" element={<BuildingSearchPage />} />
33+
<Route path="/map" element={<MapPage />} />
34+
<Route path="/form" element={<ReportForm />} />
35+
<Route path="/result" element={<NavigationResultPage />} />
36+
<Route path="/report/route" element={<ReportRoutePage />} />
37+
<Route path="/report/hazard" element={<ReportHazardPage />} />
38+
/** 에러 페이지 */
39+
<Route path="/error" element={<ErrorPage />} />
40+
<Route path="/error/offline" element={<OfflinePage />} />
41+
</Routes>
42+
</Suspense>
43+
<ReactQueryDevtools initialIsOpen={false} />
44+
</QueryClientProvider>
45+
);
4646
}
4747

4848
export default App;

uniro_frontend/src/components/navigation/route/routeCard.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import StraightIcon from "../../../assets/route/straight.svg?react";
44
import RightIcon from "../../../assets/route/right.svg?react";
55
import LeftIcon from "../../../assets/route/left.svg?react";
66
import CautionText from "../../../assets/icon/cautionText.svg?react";
7-
import { RouteEdge } from "../../../data/types/edge";
7+
import { RouteEdge } from "../../../data/types/route";
88
import { Building } from "../../../data/types/node";
99

1010
const NumberIcon = ({ index }: { index: number }) => {

uniro_frontend/src/components/navigation/route/routeList.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Fragment } from "react";
2-
import { RouteEdge } from "../../../data/types/edge";
2+
import { RouteEdge } from "../../../data/types/route";
33
import { Building } from "../../../data/types/node";
44
import { RouteCard } from "./routeCard";
55

uniro_frontend/src/data/factory/edgeFactory.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Direction, HazardEdge, RouteEdge } from "../types/edge";
1+
import { Direction, HazardEdge, RouteEdge } from "../types/route";
22
import { CautionFactor, DangerFactor } from "../types/factor";
33
import { CustomNode } from "../types/node";
44

uniro_frontend/src/data/factory/navigationFactory.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { hanyangBuildings } from "../mock/hanyangBuildings";
2-
import { RouteEdge } from "../types/edge";
2+
import { RouteEdge } from "../types/route";
33
import { NavigationRoute } from "../types/route";
44

55
// TODO: Distance를 m-> km로 자동 변환해주는 util

uniro_frontend/src/data/mock/hanyangHazardEdge.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { createHazardEdge } from "../factory/edgeFactory";
22
import { createNode } from "../factory/nodeFactory";
3-
import { HazardEdge } from "../types/edge";
3+
import { HazardEdge } from "../types/route";
44
import { CustomNode } from "../types/node";
55

66
const nodes: CustomNode[] = [

uniro_frontend/src/data/mock/hanyangRoute.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createHazardEdge, createRouteEdges } from "../factory/edgeFactory";
22
import { createNavigationRoute } from "../factory/navigationFactory";
33
import { createNode } from "../factory/nodeFactory";
4-
import { HazardEdge } from "../types/edge";
4+
import { HazardEdge } from "../types/route";
55
import { CustomNode } from "../types/node";
66

77
const nodes: CustomNode[] = [
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export type Coord = google.maps.LatLngLiteral;

uniro_frontend/src/data/types/edge.d.ts

-22
This file was deleted.
+8-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
export interface CustomNode {
2-
id: string;
3-
lng: number;
4-
lat: number;
5-
isCore?: boolean;
1+
import { Coord } from "./coord";
2+
3+
export type NodeId = number;
4+
5+
export interface Node extends Coord {
6+
nodeId: NodeId;
67
}
78

8-
// 건물 노드의 정보를 담고 있음
9-
export interface Building extends CustomNode {
9+
export interface Building extends Node {
1010
buildingName: string;
11-
buildingImageUrl?: string;
11+
buildingImageUrl: string;
1212
phoneNumber: string;
1313
address: string;
1414
}
+32-9
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,39 @@
1-
import { RoutePoint } from "../../constant/enum/routeEnum";
2-
import { Building } from "./node";
1+
import { CautionIssueType, DangerIssueType } from "../../constant/enum/reportEnum";
2+
import { Coord } from "./coord";
3+
import { Node } from "./node";
34

4-
export interface Route {
5-
route: RouteEdge[];
5+
export type RouteId = number;
6+
7+
export type Route = {
8+
routeId: RouteId;
9+
startNode: Node;
10+
endNode: Node;
11+
};
12+
13+
export type Direction = "origin" | "right" | "straight" | "left" | "uturn" | "destination" | "caution";
14+
15+
export interface CautionRoute extends Route {
16+
cautionTypes: CautionIssueType[];
17+
}
18+
19+
export interface DangerRoute extends Route {
20+
dangerTypes: DangerIssueType[];
621
}
722

823
export interface NavigationRoute extends Route {
24+
cautionTypes: CautionIssueType[];
25+
}
26+
27+
export type RouteDetail = {
28+
dist: number;
29+
directionType: Direction;
30+
coordinates: Coord;
31+
};
32+
33+
export type NavigationRouteList = {
934
hasCaution: boolean;
1035
totalDistance: number;
1136
totalCost: number;
12-
originBuilding: Building;
13-
destinationBuilding: Building;
14-
}
15-
16-
export type RoutePointType = RoutePoint.ORIGIN | RoutePoint.DESTINATION;
37+
routes: NavigationRoute[];
38+
routeDetails: RouteDetail[];
39+
};

uniro_frontend/src/pages/reportHazard.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import useMap from "../hooks/useMap";
33
import { mockNavigationRoute } from "../data/mock/hanyangRoute";
44
import createAdvancedMarker from "../utils/markers/createAdvanedMarker";
55
import createMarkerElement from "../components/map/mapMarkers";
6-
import { RouteEdge } from "../data/types/edge";
6+
import { RouteEdge } from "../data/types/route";
77
import { Markers } from "../constant/enum/markerEnum";
88
import { mockHazardEdges } from "../data/mock/hanyangHazardEdge";
99
import { ClickEvent } from "../data/types/event";

uniro_frontend/src/pages/reportRoute.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useEffect, useRef, useState } from "react";
22
import createMarkerElement from "../components/map/mapMarkers";
33
import { Markers } from "../constant/enum/markerEnum";
4-
import { RouteEdge } from "../data/types/edge";
4+
import { RouteEdge } from "../data/types/route";
55
import useMap from "../hooks/useMap";
66
import createAdvancedMarker from "../utils/markers/createAdvanedMarker";
77
import { mockNavigationRoute } from "../data/mock/hanyangRoute";

0 commit comments

Comments
 (0)