Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
14 commits
Select commit Hold shift + click to select a range
25a4646
[UNI-82] feat : 불편한 길 제보 페이지 생성 및 지도 생성
dgfh0450 Feb 3, 2025
0073dda
[UNI-82] feat : 지도 Mock 데이터 (경로, 위험 주의 마커) 생성
dgfh0450 Feb 3, 2025
c13cf7c
[UNI-85] feat : 사용자 선 터치 시, 인접 간선 탐색 후 제보 마커 생성 로직 적용
dgfh0450 Feb 3, 2025
bd2b24f
[UNI-85] feat : 선택 마커 관리 State (reportMarker) 생성 및 MarkerTypesWithEle…
dgfh0450 Feb 3, 2025
bf5ee1d
[UNI-85] feat : 기존 마커 수정을 위한 선택 (state 변경, Marker 컨텐츠 변경) 적용
dgfh0450 Feb 3, 2025
e0d8e5d
[UNI-85] feat : 지도 터치 시, 선택된 마커 초기화 (state 초기화, Marker 컨텐트 초기화) 적용
dgfh0450 Feb 3, 2025
92a1dea
[UNI-85] feat : Marker 초기화 중복 로직 함수 분리
dgfh0450 Feb 3, 2025
a0a0b89
[UNI-85] feat : 선택된 마커 존재 시, 버튼 생성 및 Form 페이지 이동
dgfh0450 Feb 3, 2025
7d3d0d4
[UNI-82] fix : 누락된 경로 초기 마커 생성
dgfh0450 Feb 3, 2025
a1dbc4e
[UNI-83] feat : 상단 안내메세지 추가 및 애니메이션 적용
dgfh0450 Feb 3, 2025
bbb837d
[UNI-85] feat : 위험 주의 요소 제보 global State 선언 (제보 타입 (생성, 수정), 간선 시작 노드…
dgfh0450 Feb 3, 2025
addf28f
[UNI-83] feat : 제보 마커 생성 애니메이션, CTA 버튼 애니메이션 적용
dgfh0450 Feb 3, 2025
aeaf582
[UNI-19] feat : 메세지 Enum 수정 및 Lint 적용
dgfh0450 Feb 3, 2025
b2c8c21
[UNI-101] chore : Backoffice deploy 설정
dgfh0450 Feb 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 52 additions & 52 deletions .github/workflows/fe-deploy.yml
Original file line number Diff line number Diff line change
@@ -1,66 +1,66 @@
name: FE CI / CD

on:
push:
branches:
- fe
push:
branches:
- fe

jobs:
CI:
runs-on: ubuntu-latest
CI:
runs-on: ubuntu-latest

env:
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
IMAGE_NAME: uniro-fe
IMAGE_TAG: ${{ github.sha }}
env:
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
IMAGE_NAME: uniro-fe
IMAGE_TAG: ${{ github.sha }}

steps:
- name: 코드 체크아웃
uses: actions/checkout@v4
steps:
- name: 코드 체크아웃
uses: actions/checkout@v4

- name: Google Cloud SDK 설정
uses: "google-github-actions/auth@v2"
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Google Cloud SDK 설정
uses: "google-github-actions/auth@v2"
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}

- name: Docker를 위한 gcloud 인증 설정
run: gcloud auth configure-docker --quiet
- name: Docker를 위한 gcloud 인증 설정
run: gcloud auth configure-docker --quiet

- name: Create .env from secret
run: |
echo "${{ secrets.FE_ENV }}" > uniro_frontend/.env
- name: Create .env from secret
run: |
echo "${{ secrets.FE_ENV }}" > uniro_frontend/.env

- name: Docker 이미지 빌드 및 푸시
run: |
docker build -t gcr.io/${{ env.GCP_PROJECT_ID }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} -f uniro_frontend/Dockerfile .
docker push gcr.io/${{ env.GCP_PROJECT_ID }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
- name: Docker 이미지 빌드 및 푸시
run: |
docker build -t gcr.io/${{ env.GCP_PROJECT_ID }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} -f uniro_frontend/Dockerfile .
docker push gcr.io/${{ env.GCP_PROJECT_ID }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}

CD:
runs-on: ubuntu-latest
needs: CI
CD:
runs-on: ubuntu-latest
needs: CI

env:
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
IMAGE_NAME: uniro-fe
IMAGE_TAG: ${{ github.sha }}
DEPLOY_PATH: ${{ secrets.DEPLOY_SERVER_PATH }}
env:
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
IMAGE_NAME: uniro-fe
IMAGE_TAG: ${{ github.sha }}
DEPLOY_PATH: ${{ secrets.DEPLOY_SERVER_PATH }}

steps:
- name: 배포 서버에 SSH로 연결하여 배포
uses: appleboy/ssh-action@v0.1.5
with:
host: ${{ secrets.DEPLOY_SERVER_HOST }}
username: ${{ secrets.DEPLOY_SERVER_USER }}
key: ${{ secrets.DEPLOY_SSH_KEY }}
envs: GCP_PROJECT_ID, IMAGE_NAME, IMAGE_TAG, DEPLOY_PATH, TEST
script: |
cd ${DEPLOY_PATH}
sudo docker ps -a --format '{{.ID}} {{.Names}}' \
| grep -v 'nginx-container' \
| awk '{print $1}' \
| xargs -r sudo docker stop || true
sudo docker rm $(sudo docker ps -a -q) || true
sudo docker login -u _json_key --password-stdin https://gcr.io <<< '${{ secrets.GCP_SA_KEY }}'
sudo docker pull gcr.io/${GCP_PROJECT_ID}/${IMAGE_NAME}:${IMAGE_TAG}
sudo docker run -d --name ${IMAGE_NAME} -p 3000:3000 gcr.io/${GCP_PROJECT_ID}/${IMAGE_NAME}:${IMAGE_TAG}
sudo docker network connect nginx_app-network ${IMAGE_NAME}
steps:
- name: 배포 서버에 SSH로 연결하여 배포
uses: appleboy/ssh-action@v0.1.5
with:
host: ${{ secrets.DEPLOY_SERVER_HOST }}
username: ${{ secrets.DEPLOY_SERVER_USER }}
key: ${{ secrets.DEPLOY_SSH_KEY }}
envs: GCP_PROJECT_ID, IMAGE_NAME, IMAGE_TAG, DEPLOY_PATH, TEST
script: |
cd ${DEPLOY_PATH}
sudo docker ps -a --format '{{.ID}} {{.Names}}' \
| egrep -v 'nginx-container|uniro-backoffice' \
| awk '{print $1}' \
| xargs -r sudo docker stop || true
sudo docker rm $(sudo docker ps -a -q) || true
sudo docker login -u _json_key --password-stdin https://gcr.io <<< '${{ secrets.GCP_SA_KEY }}'
sudo docker pull gcr.io/${GCP_PROJECT_ID}/${IMAGE_NAME}:${IMAGE_TAG}
sudo docker run -d --name ${IMAGE_NAME} -p 3000:3000 gcr.io/${GCP_PROJECT_ID}/${IMAGE_NAME}:${IMAGE_TAG}
sudo docker network connect nginx_app-network ${IMAGE_NAME}
4 changes: 3 additions & 1 deletion uniro_frontend/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import BuildingSearchPage from "./pages/buildingSearch";
import NavigationResultPage from "./pages/navigationResult";
import ReportRoutePage from "./pages/reportRoute";
import ReportForm from "./pages/reportForm";
import ReportHazardPage from "./pages/reportHazard";

function App() {
return (
Expand All @@ -19,7 +20,8 @@ function App() {
<Route path="/map" element={<MapPage />} />
<Route path="/form" element={<ReportForm />} />
<Route path="/result" element={<NavigationResultPage />} />
<Route path="/report" element={<ReportRoutePage />} />
<Route path="/report/route" element={<ReportRoutePage />} />
<Route path="/report/hazard" element={<ReportHazardPage />} />
</Routes>
);
}
Expand Down
20 changes: 20 additions & 0 deletions uniro_frontend/src/assets/markers/report.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions uniro_frontend/src/constant/enum/markerEnum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ export const enum Markers {
SELECTED_BUILDING = "selectedBuilding",
WAYPOINT = "waypoint",
NUMBERED_WAYPOINT = "numberedWayPoint",
REPORT = "report",
}
6 changes: 6 additions & 0 deletions uniro_frontend/src/constant/enum/messageEnum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export enum ReportHazardMessage {
DEFAULT = "선 위를 눌러 제보할 지점을 선택하세요",
CREATE = "이 지점으로 새로운 제보를 진행할까요?",
UPDATE = "이 지점에 제보된 기존 정보를 바꿀까요?",
ERROR = "선 위에서만 선택 가능해요",
}
8 changes: 7 additions & 1 deletion uniro_frontend/src/data/types/marker.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,10 @@ export type MarkerTypes =
| Markers.ORIGIN
| Markers.NUMBERED_WAYPOINT
| Markers.WAYPOINT
| Markers.SELECTED_BUILDING;
| Markers.SELECTED_BUILDING
| Markers.REPORT;

export type MarkerTypesWithElement = {
type: MarkerTypes;
element: AdvancedMarker;
};
22 changes: 22 additions & 0 deletions uniro_frontend/src/hooks/useReportHazard.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { create } from "zustand";

interface ReportedHazardEdge {
reportType: "CREATE" | "UPDATE" | undefined;
setReportType: (type: "CREATE" | "UPDATE") => void;
startNode: google.maps.LatLng | google.maps.LatLngLiteral | undefined;
endNode: google.maps.LatLng | google.maps.LatLngLiteral | undefined;
setNode: (
point1: google.maps.LatLng | google.maps.LatLngLiteral,
point2: google.maps.LatLng | google.maps.LatLngLiteral,
) => void;
}

const useReportHazard = create<ReportedHazardEdge>((set) => ({
reportType: undefined,
setReportType: (newType) => set(() => ({ reportType: newType })),
startNode: undefined,
endNode: undefined,
setNode: (point1, point2) => set(() => ({ startNode: point1, endNode: point2 })),
}));

export default useReportHazard;
5 changes: 5 additions & 0 deletions uniro_frontend/src/pages/reportForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Button from "../components/customButton";

import useScrollControl from "../hooks/useScrollControl";
import useModal from "../hooks/useModal";
import useReportHazard from "../hooks/useReportHazard";

const ReportForm = () => {
useScrollControl();
Expand All @@ -28,7 +29,11 @@ const ReportForm = () => {
const [FailModal, isFailOpen, openFail, closeFail] = useModal();
const [SuccessModal, isSuccessOpen, openSuccess, closeSuccess] = useModal();

const { reportType, startNode, endNode } = useReportHazard();

useEffect(() => {
console.log(reportType, startNode, endNode);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 원하던 데이터 형식인데 감사합니다!!


setTimeout(() => {
setReportMode("update");
}, 2000);
Expand Down
Loading