Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[refactor] 폴더 구조 대규모 변경 #89

Merged
merged 25 commits into from
Aug 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8aa7ebe
[fix] 작은화면에서 글자 겹치는 것 수정
darkdulgi Aug 9, 2024
944ca40
Merge branch 'dev' of https://github.com/softeerbootcamp4th/Team6-Awe…
darkdulgi Aug 12, 2024
edef6ea
[refactor] 폴더 구조 정리
lybell-art Aug 12, 2024
10db15b
Merge branch 'refactor/88-directory' of https://github.com/softeerboo…
darkdulgi Aug 12, 2024
42e22ec
[refactor] mainPage/shared 디렉토리 위치 수정
lybell-art Aug 12, 2024
8cb22f8
[refactor] mainPage/features/comment 내 파일 경로 재지정
darkdulgi Aug 12, 2024
9ee3788
[refactor] main/features/simpleInformation 측 파일경로 재지정
lybell-art Aug 12, 2024
62ae398
[refactor] mainPage/features/detailInformation 내 파일 경로 재지정
darkdulgi Aug 12, 2024
a0b501d
[refactor] 여러 곳에서 쓰이는 서버시간관련 상태를 shared feature로 분리
lybell-art Aug 12, 2024
5ef1ec0
Merge branch 'refactor/88-directory' of https://github.com/softeerboo…
lybell-art Aug 12, 2024
96a806e
[refactor] mainPage/features/comment 다시 작업
darkdulgi Aug 12, 2024
b258e05
[refactor] mainPage/features/detailInformation 다시 작업
darkdulgi Aug 12, 2024
f43b091
[refactor] 인터랙션 섹션 폴더 경로 변경
lybell-art Aug 12, 2024
cd3d43b
[refactor] 헤더 섹션 폴더 변경
lybell-art Aug 12, 2024
e1d8f8c
Merge branch 'refactor/88-directory' of https://github.com/softeerboo…
lybell-art Aug 12, 2024
0aed8c3
[refactor] mainPage/features/fcfs 내 파일 경로 재지정
darkdulgi Aug 12, 2024
7d53ca5
Merge branch 'refactor/88-directory' of https://github.com/softeerboo…
darkdulgi Aug 12, 2024
30f4947
[build] 메인페이지 영역에 변경사항이 있을 때에만 워크플로가 동작하게 변경
lybell-art Aug 12, 2024
abc2a68
Merge branch 'refactor/88-directory' of https://github.com/softeerboo…
lybell-art Aug 12, 2024
8a416ab
[refactor] auth/authcode 부분 경로수정
lybell-art Aug 12, 2024
2caa936
[refactor] tokensaver 경로 이동
darkdulgi Aug 12, 2024
58b12f7
Merge branch 'refactor/88-directory' of https://github.com/softeerboo…
darkdulgi Aug 12, 2024
acce054
[fix] 누락된 constants 적용 - interactionAnswer에서
lybell-art Aug 12, 2024
f8d0b27
[fix] 잘못된 경로 수정
lybell-art Aug 12, 2024
2bfc8e8
[fix] 모달 닫힌 뒤 스크롤이 안 내려가는 버그 수정
lybell-art Aug 12, 2024
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
3 changes: 3 additions & 0 deletions .github/workflows/deploy_preview.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
push:
branches:
- "dev"
paths:
- "common/**"
- "mainPage/**"
jobs:
deploy-preview:
runs-on: ubuntu-latest
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/deploy_production.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
push:
branches:
- "main"
paths:
- "common/**"
- "mainPage/**"
jobs:
deploy-production:
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
</head>
<body>
<div id="root"><!--hydrate_root--></div>
<script type="module" src="/src/main-client.jsx"></script>
<script type="module" src="/src/mainPage/main-client.jsx"></script>
</body>
</html>
38 changes: 0 additions & 38 deletions src/App.jsx

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 1 addition & 7 deletions src/common/constants.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,2 @@
export const EVENT_ID = "0";
export const TOKEN_ID = "AWESOME_ORANGE_ACCESS_TOKEN";

// scroll section constants
export const INTERACTION_SECTION = 1;
export const DETAIL_SECTION = 2;
export const COMMENT_SECTION = 3;
export const FCFS_SECTION = 4;
export const TOKEN_ID = "AWESOME_ORANGE_ACCESS_TOKEN";
2 changes: 1 addition & 1 deletion src/common/dataFetch/fetchServer.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import tokenSaver from "@/auth/tokenSaver.js";
import tokenSaver from "./tokenSaver.js";

class HTTPError extends Error {
constructor(response) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { TOKEN_ID } from "@/common/constants.js";
import { TOKEN_ID } from "@common/constants.js";

class TokenSaver {
initialized = false;
Expand Down
9 changes: 6 additions & 3 deletions src/modal/modal.jsx → src/common/modal/modal.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { createContext, useCallback, useEffect, useState, useRef } from "react";
import useModalStore, { closeModal } from "./store.js";
import { delay } from "@common/utils.js";

export const ModalCloseContext = createContext(() => {
console.log("모달이 닫힙니다.");
Expand All @@ -9,10 +10,12 @@ function Modal({ layer }) {
const timeoutRef = useRef(null);
const child = useModalStore(layer);
const [opacity, setOpacity] = useState(0);
const close = useCallback(() => {
const close = useCallback(async () => {
setOpacity(0);
if (timeoutRef.current === null)
timeoutRef.current = setTimeout(() => closeModal(layer), 150);
if (timeoutRef.current === null) {
await delay(150);
closeModal(layer);
}
}, [layer]);

useEffect(() => {
Expand Down
File renamed without changes.
File renamed without changes.
4 changes: 4 additions & 0 deletions src/common/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,7 @@ export function convertSecondsToString(time) {

return `${days > 0 ? days + " : " : ""}${[hours, minutes, seconds].map(padNumber).join(" : ")}`;
}

export function delay(ms) {
return new Promise( resolve=>setTimeout(resolve, ms) );
}
40 changes: 40 additions & 0 deletions src/mainPage/App.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { useEffect } from "react";

import IntroSection from "./features/introSection";
import Header from "./features/header";
import SimpleInformation from "./features/simpleInformation";
import InteractionPage from "./features/interactions";
import DetailInformation from "./features/detailInformation";
import CommentSection from "./features/comment";
import FcfsSection from "./features/fcfs";
import QnA from "./features/qna";
import Footer from "./features/footer";

import Modal from "@common/modal/modal.jsx";
import { initLoginState } from "@main/auth/store.js";

function App() {
useEffect(() => {
window.scrollTo(0, 0);
history.scrollRestoration = "manual";
initLoginState();
}, []);

return (
<>
<IntroSection />
<Header />
<SimpleInformation />
<InteractionPage />
<DetailInformation />
<CommentSection />
<FcfsSection />
<QnA />
<Footer />
<Modal layer="interaction" />
<Modal layer="alert" />
</>
);
}

export default App;
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useState, useEffect, useRef, useCallback } from "react";
import useMountDragEvent from "@/common/useMountDragEvent";
import useMountDragEvent from "@main/hooks/useMountDragEvent";

const FRICTION_RATE = 0.1;
const MOMENTUM_THRESHOLD = 0.6;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useQuery } from "@/common/dataFetch/getQuery.js";
import { fetchServer } from "@/common/dataFetch/fetchServer.js";
import { useQuery } from "@common/dataFetch/getQuery.js";
import { fetchServer } from "@common/dataFetch/fetchServer.js";
import AutoScrollCarousel from "../autoScrollCarousel";

function mask(string) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Spinner from "@/common/Spinner.jsx";
import DelaySkeleton from "@/common/DelaySkeleton.jsx";
import Spinner from "@common/components/Spinner.jsx";
import DelaySkeleton from "@common/components/DelaySkeleton.jsx";

function CommentCarouselSkeleton() {
return (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Suspense from "@/common/Suspense.jsx";
import ErrorBoundary from "@/common/ErrorBoundary.jsx";
import Suspense from "@common/components/Suspense.jsx";
import ErrorBoundary from "@common/components/ErrorBoundary.jsx";
import CommentCarousel from "./CommentCarousel.jsx";
import CommentCarouselSkeleton from "./CommentCarouselSkeleton.jsx";
import CommentCarouselError from "./CommentCarouselError.jsx";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Button from "@/common/Button.jsx";
import Button from "@common/components/Button.jsx";

function getMessageFromButtonFetchState(state) {
if (state === "pending") return "...";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ import { useState, useEffect } from "react";
import CommentSuccessModal from "../modals/CommentSuccessModal.jsx";
import CommentNegativeModal from "../modals/CommentNegativeModal.jsx";
import CommentNoUserModal from "../modals/CommentNoUserModal.jsx";
import NoServerModal from "@/common/NoServerModal.jsx";
import NoServerModal from "@main/components/NoServerModal.jsx";
import SubmitButton from "./SubmitButton";
import useAuthState from "@/auth/store.js";
import useAuthState from "@main/auth/store.js";

import { fetchServer, handleError } from "@/common/dataFetch/fetchServer.js";
import { EVENT_ID } from "@/common/constants.js";
import openModal from "@/modal/openModal.js";
import { fetchServer, handleError } from "@common/dataFetch/fetchServer.js";
import { EVENT_ID } from "@common/constants.js";
import openModal from "@common/modal/openModal.js";

const submitCommentErrorHandle = {
400: "negative",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useRef } from "react";
import CommentCarousel from "./commentCarousel";
import CommentForm from "./commentForm";
import useSectionInitialize from "../scroll/useSectionInitialize";
import useSectionInitialize from "@main/scroll/useSectionInitialize";
import decoration from "./assets/decoration.svg";

function CommentSection() {
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useContext } from "react";
import { ModalCloseContext } from "@/modal/modal.jsx";
import Button from "@/common/Button.jsx";
import { ModalCloseContext } from "@common/modal/modal.jsx";
import Button from "@common/components/Button.jsx";

function CommentNegativeModal() {
const close = useContext(ModalCloseContext);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { useContext } from "react";
import { ModalCloseContext } from "@/modal/modal.jsx";
import Button from "@/common/Button.jsx";
import scrollTo from "@/scroll/scrollTo.js";
import { INTERACTION_SECTION } from "@/common/constants.js";
import { ModalCloseContext } from "@common/modal/modal.jsx";
import Button from "@common/components/Button.jsx";
import scrollTo from "@main/scroll/scrollTo.js";
import { INTERACTION_SECTION } from "@main/scroll/constants.js";

function CommentNoUserModal() {
const close = useContext(ModalCloseContext);

function toMoveInteraction() {
close();
async function toMoveInteraction() {
await close();
scrollTo(INTERACTION_SECTION);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useContext } from "react";
import { ModalCloseContext } from "@/modal/modal.jsx";
import Button from "@/common/Button.jsx";
import { ModalCloseContext } from "@common/modal/modal.jsx";
import Button from "@common/components/Button.jsx";

function CommentSuccessModal() {
const close = useContext(ModalCloseContext);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import useSwiperState from "@/common/useSwiperState.js";
import useSwiperState from "@main/hooks/useSwiperState.js";
import DetailItem from "./DetailItem.jsx";
import left from "./assets/left.svg";
import right from "./assets/right.svg";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import DetailSwiper from "./DetailSwiper.jsx";
import content from "./content.json";
import decoration from "./assets/decoration.svg";
import { useRef } from "react";
import useSectionInitialize from "../scroll/useSectionInitialize.js";
import useSectionInitialize from "@main/scroll/useSectionInitialize.js";

function DetailInformation() {
const SECTION_IDX = 2;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ import { useState } from "react";
import CardGameTitle from "./CardGameTitle.jsx";
import Card from "./Card.jsx";

import openModal from "@/modal/openModal.js";
import openModal from "@common/modal/openModal.js";
import FcfsWinModal from "../modals/FcfsWinModal.jsx";
import FcfsLoseModal from "../modals/FcfsLoseModal.jsx";
import FcfsInvalidModal from "../modals/FcfsInvalidModal.jsx";
import AuthModal from "@/auth/AuthModal.jsx";
import AuthModal from "@main/auth/AuthModal.jsx";

import useFcfsStore from "../store.js";
import * as Status from "../constants.js";
import { EVENT_ID } from "@/common/constants.js";
import { fetchServer, handleError } from "@/common/dataFetch/fetchServer.js";
import ResetButton from "@/common/ResetButton.jsx";
import useFcfsStore from "@main/realtimeEvent/store.js";
import * as Status from "@main/realtimeEvent/constants.js";
import { EVENT_ID } from "@common/constants.js";
import { fetchServer, handleError } from "@common/dataFetch/fetchServer.js";
import ResetButton from "@main/components/ResetButton.jsx";

function getLocked(eventStatus, isParticipated, offline) {
if (offline) return false;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import useFcfsStore from "../store.js";
import * as Status from "../constants.js";
import { convertSecondsToString } from "@/common/utils.js";
import useFcfsStore from "@main/realtimeEvent/store.js";
import * as Status from "@main/realtimeEvent/constants.js";
import { convertSecondsToString } from "@common/utils.js";

function CardGameCountdown() {
const countdown = useFcfsStore((store) => store.countdown);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useDeferredValue } from "react";
import Suspense from "@/common/Suspense.jsx";
import ErrorBoundary from "@/common/ErrorBoundary.jsx";
import useFcfsStore from "../store.js";
import useAuthStore from "@/auth/store.js";
import Suspense from "@common/components/Suspense.jsx";
import ErrorBoundary from "@common/components/ErrorBoundary.jsx";
import useFcfsStore from "@main/realtimeEvent/store.js";
import useAuthStore from "@main/auth/store.js";
import CardGame from "./CardGame.jsx";

function CardGameInitializer() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { useEffect, useRef } from "react";
import useFcfsStore from "../store.js";
import { OFFLINE } from "../constants.js";
import useFcfsStore from "@main/realtimeEvent/store.js";
import { OFFLINE } from "@main/realtimeEvent/constants.js";
import CountdownController from "./CountdownController";
import Suspense from "@/common/Suspense.jsx";
import ErrorBoundary from "@/common/ErrorBoundary.jsx";
import Suspense from "@common/components/Suspense.jsx";
import ErrorBoundary from "@common/components/ErrorBoundary.jsx";

function CountStarterDummy() {
const controller = useRef(new CountdownController(0, 0));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
import useFcfsStore from "../store.js";
import { OFFLINE } from "../constants.js";

const ONE_DAY = 24 * 60 * 60 * 1000;
function getEventDateState(currrentTimeDate, eventTimeDate) {
const currentTime = currrentTimeDate.valueOf();
const eventTime = eventTimeDate.valueOf();
const eventEndTime = eventTimeDate.valueOf() + ONE_DAY;
if (currentTime < eventTime) return "default";
if (currentTime < eventEndTime) return "active";
return "ended";
}
import useFcfsStore from "@main/realtimeEvent/store.js";
import { OFFLINE } from "@main/realtimeEvent/constants.js";
import getEventDateState from "@main/realtimeEvent/getEventDateState.js";

function DateEventPrize({ date, title, capacity, image }) {
const currentServerTime = useFcfsStore((store) => store.currentServerTime);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import EventDescriptionLayout from "@/eventDescription/EventDescriptionLayout.jsx";
import EventDescriptionLayout from "@main/eventDescription/EventDescriptionLayout.jsx";
import DateEventPrize from "./DateEventPrize.jsx";
import content from "./content.json";

Expand Down
4 changes: 2 additions & 2 deletions src/fcfs/index.jsx → src/mainPage/features/fcfs/index.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRef } from "react";
import useSectionInitialize from "@/scroll/useSectionInitialize.js";
import { FCFS_SECTION } from "@/common/constants.js";
import useSectionInitialize from "@main/scroll/useSectionInitialize.js";
import { FCFS_SECTION } from "@main/scroll/constants.js";
import CardGame from "./cardGame";
import CountStarter from "./countdown/CountStarter.jsx";
import FcfsDescription from "./description";
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useContext } from "react";
import { ModalCloseContext } from "@/modal/modal.jsx";
import Button from "@/common/Button.jsx";
import { ModalCloseContext } from "@common/modal/modal.jsx";
import Button from "@common/components/Button.jsx";

function FcfsInvalidModal() {
const close = useContext(ModalCloseContext);
Expand Down
Loading