diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..b620e7f --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "k-eum2023" + } +} diff --git a/.github/workflows/firebase-hosting-merge.yml b/.github/workflows/firebase-hosting-merge.yml new file mode 100644 index 0000000..8e95fac --- /dev/null +++ b/.github/workflows/firebase-hosting-merge.yml @@ -0,0 +1,43 @@ +# This file was auto-generated by the Firebase CLI +# https://github.com/firebase/firebase-tools + +name: Deploy to Firebase Hosting on merge +on: + push: + branches: + - main + +jobs: + build_and_deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: .env setting + run: | + echo "REACT_APP_GOOGLE_CLIENT_ID=${{ secrets.REACT_APP_GOOGLE_CLIENT_ID }}" >> .env + echo "REACT_APP_FIREBASE_API_KEY=${{ secrets.REACT_APP_FIREBASE_API_KEY }}" >> .env + echo "REACT_APP_FIREBASE_AUTH_DOMAIN=${{ secrets.REACT_APP_FIREBASE_AUTH_DOMAIN }}" >> .env + echo "REACT_APP_PROJECT_ID=${{ secrets.REACT_APP_PROJECT_ID }}" >> .env + echo "REACT_APP_FIREBASE_STORAGE_BUCKET=${{ secrets.REACT_APP_FIREBASE_STORAGE_BUCKET }}" >> .env + echo "REACT_APP_FIREBASE_MESSAGING_SENDER_ID=${{ secrets.REACT_APP_FIREBASE_MESSAGING_SENDER_ID }}" >> .env + echo "REACT_APP_FIREBASE_APP_ID=${{ secrets.REACT_APP_FIREBASE_APP_ID }}" >> .env + echo "RREACT_APP_FIREBASE_MEASUREMENTID=${{ secrets.REACT_APP_FIREBASE_MEASUREMENTID }}" >> .env + echo "REACT_APP_CHAT_API_BASE_URL=${{ secrets.REACT_APP_CHAT_API_BASE_URL }}" >> .env + echo "REACT_APP_CHAT_API_PORT=${{ secrets.REACT_APP_CHAT_API_PORT }}" >> .env + echo "REACT_APP_CHAT_WS_BASE_URL=${{ secrets.REACT_APP_CHAT_WS_BASE_URL}}" >> .env + echo "REACT_APP_KAKAO_REST_API_KEY=${{ secrets.REACT_APP_KAKAO_REST_API_KEY }}" >> .env + echo "REACT_APP_KAKAO_REDIRECT_URI=${{ secrets.REACT_APP_KAKAO_REDIRECT_URI }}" >> .env + echo "REACT_APP_KAKAO_CLIENT_SECRET=${{ secrets.REACT_APP_KAKAO_CLIENT_SECRET }}" >> .env + echo "REACT_APP_API_BASE_URL=${{ secrets.REACT_APP_API_BASE_URL }}" >> .env + echo "REACT_APP_API_PORT=${{ secrets.REACT_APP_API_PORT }}" >> .env + echo "REACT_APP_TEST_TOKEN=${{ secrets.REACT_APP_TEST_TOKEN }}" >> .env + + - run: npm ci && npm run build + + - uses: FirebaseExtended/action-hosting-deploy@v0 + with: + repoToken: ${{ secrets.GITHUB_TOKEN }} + firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_K_EUM2023 }} + channelId: live + projectId: k-eum2023 diff --git a/.github/workflows/firebase-hosting-pull-request.yml b/.github/workflows/firebase-hosting-pull-request.yml new file mode 100644 index 0000000..47a3b62 --- /dev/null +++ b/.github/workflows/firebase-hosting-pull-request.yml @@ -0,0 +1,43 @@ +# This file was auto-generated by the Firebase CLI +# https://github.com/firebase/firebase-tools + +name: Deploy to Firebase Hosting on PR +on: pull_request +permissions: + checks: write + contents: read + pull-requests: write +jobs: + build_and_preview: + if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: .env setting + run: | + echo "REACT_APP_GOOGLE_CLIENT_ID=${{ secrets.REACT_APP_GOOGLE_CLIENT_ID }}" >> .env + echo "REACT_APP_FIREBASE_API_KEY=${{ secrets.REACT_APP_FIREBASE_API_KEY }}" >> .env + echo "REACT_APP_FIREBASE_AUTH_DOMAIN=${{ secrets.REACT_APP_FIREBASE_AUTH_DOMAIN }}" >> .env + echo "REACT_APP_PROJECT_ID=${{ secrets.REACT_APP_PROJECT_ID }}" >> .env + echo "REACT_APP_FIREBASE_STORAGE_BUCKET=${{ secrets.REACT_APP_FIREBASE_STORAGE_BUCKET }}" >> .env + echo "REACT_APP_FIREBASE_MESSAGING_SENDER_ID=${{ secrets.REACT_APP_FIREBASE_MESSAGING_SENDER_ID }}" >> .env + echo "REACT_APP_FIREBASE_APP_ID=${{ secrets.REACT_APP_FIREBASE_APP_ID }}" >> .env + echo "RREACT_APP_FIREBASE_MEASUREMENTID=${{ secrets.REACT_APP_FIREBASE_MEASUREMENTID }}" >> .env + echo "REACT_APP_CHAT_API_BASE_URL=${{ secrets.REACT_APP_CHAT_API_BASE_URL }}" >> .env + echo "REACT_APP_CHAT_API_PORT=${{ secrets.REACT_APP_CHAT_API_PORT }}" >> .env + echo "REACT_APP_CHAT_WS_BASE_URL=${{ secrets.REACT_APP_CHAT_WS_BASE_URL}}" >> .env + echo "REACT_APP_KAKAO_REST_API_KEY=${{ secrets.REACT_APP_KAKAO_REST_API_KEY }}" >> .env + echo "REACT_APP_KAKAO_REDIRECT_URI=${{ secrets.REACT_APP_KAKAO_REDIRECT_URI }}" >> .env + echo "REACT_APP_KAKAO_CLIENT_SECRET=${{ secrets.REACT_APP_KAKAO_CLIENT_SECRET }}" >> .env + echo "REACT_APP_API_BASE_URL=${{ secrets.REACT_APP_API_BASE_URL }}" >> .env + echo "REACT_APP_API_PORT=${{ secrets.REACT_APP_API_PORT }}" >> .env + echo "REACT_APP_TEST_TOKEN=${{ secrets.REACT_APP_TEST_TOKEN }}" >> .env + + - run: npm ci && npm run build + + - uses: FirebaseExtended/action-hosting-deploy@v0 + with: + repoToken: ${{ secrets.GITHUB_TOKEN }} + firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_K_EUM2023 }} + projectId: k-eum2023 diff --git a/.gitignore b/.gitignore index b718753..6a7f18d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ # production /build +/.firebase # misc .DS_Store diff --git a/firebase.json b/firebase.json index 2ce3648..c7b32bd 100644 --- a/firebase.json +++ b/firebase.json @@ -1,13 +1,19 @@ { "hosting": { - "public": "public", - "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], - "redirects": [ + "public": "build", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ], + "rewrites": [ { - "source": "__/auth/handler", - "destination": "/auth/google", - "type": 301 + "source": "**", + "destination": "/index.html" } + ], + "predeploy": [ + "npm run build" ] } } diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..829eda8 --- /dev/null +++ b/public/404.html @@ -0,0 +1,33 @@ + + + + + + Page Not Found + + + + +
+

404

+

Page Not Found

+

The specified file was not found on this website. Please check the URL for mistakes and try again.

+

Why am I seeing this?

+

This page was generated by the Firebase Command-Line Interface. To modify it, edit the 404.html file in your project's configured public directory.

+
+ + diff --git a/public/icons/logo-192.png b/public/icons/logo-192.png new file mode 100644 index 0000000..c0a89cb Binary files /dev/null and b/public/icons/logo-192.png differ diff --git a/public/icons/logo-192.svg b/public/icons/logo-192.svg new file mode 100644 index 0000000..30df345 --- /dev/null +++ b/public/icons/logo-192.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/icons/logo-512.png b/public/icons/logo-512.png new file mode 100644 index 0000000..b7d3816 Binary files /dev/null and b/public/icons/logo-512.png differ diff --git a/public/icons/logo-512.svg b/public/icons/logo-512.svg new file mode 100644 index 0000000..60b0df1 --- /dev/null +++ b/public/icons/logo-512.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/icons/thumb.png b/public/icons/thumb.png new file mode 100644 index 0000000..8e2ad87 Binary files /dev/null and b/public/icons/thumb.png differ diff --git a/public/icons/thumb.svg b/public/icons/thumb.svg new file mode 100644 index 0000000..464ffe5 --- /dev/null +++ b/public/icons/thumb.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/screenshot1.jpg b/public/images/screenshot1.jpg new file mode 100644 index 0000000..fa1cfbf Binary files /dev/null and b/public/images/screenshot1.jpg differ diff --git a/public/images/screenshot2.png b/public/images/screenshot2.png new file mode 100644 index 0000000..93bbdc6 Binary files /dev/null and b/public/images/screenshot2.png differ diff --git a/public/index.html b/public/index.html index 0a28932..5b1e297 100644 --- a/public/index.html +++ b/public/index.html @@ -2,21 +2,26 @@ - + + - - - + + + + + + + + + - - - 한마을 + 정릉이음 @@ -41,5 +46,12 @@ To begin the development, run `npm start` or `yarn start`. To create a production bundle, use `npm run build` or `yarn build`. --> + diff --git a/public/manifest.json b/public/manifest.json index 3488a65..cb60292 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,25 +1,64 @@ { - "short_name": "한마을", - "name": "한마을", + "shortcuts": [ + { + "name": "정릉이음", + "short_name": "정릉이음", + "description": "동네 주민들과 도움을 주고 받아요", + "url": "/", + "icons": [{ "src": "./icons/thumb.svg", "sizes": "192x192" }] + } + ], + "short_name": "정릉이음", + "name": "정릉이음", + "description": "동네 주민들과 도움을 주고 받아요", "icons": [ { - "src": "sun.svg", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" + "src": "./icons/thumb.png", + "sizes": "192x131", + "type": "image/png", + "purpose": "any maskable" }, { - "src": "sun.svg", - "type": "image/png", - "sizes": "192x192" + "src": "./icons/logo-192.png", + "sizes": "192x192", + "type": "image/png" }, { - "src": "sun.svg", + "src": "./icons/logo-192.png", + "sizes": "192x192", "type": "image/png", - "sizes": "512x512" + "purpose": "any maskable" + }, + { + "src": "./icons/logo-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "./icons/logo-512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "screenshots": [ + { + "src": "images/screenshot1.jpg", + "sizes": "1080x1920", + "form_factor": "narrow", + "platform": "windows", + "label": "KMU" + }, + { + "src": "images/screenshot2.png", + "sizes": "2400x1600", + "form_factor": "wide", + "platform": "windows", + "label": "KMU" } ], - "start_url": ".", + "start_url": "/", "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" + "theme_color": "#253659", + "background_color": "#253659", + "orientation": "portrait" } diff --git a/public/offline.html b/public/offline.html new file mode 100644 index 0000000..450eedb --- /dev/null +++ b/public/offline.html @@ -0,0 +1,18 @@ + + + + + + No Internet Connection + + + +

⚠️ 인터넷 연결 상태가 좋지 않습니다 ⚠️

+ + diff --git a/public/pwabuilder-sw.js b/public/pwabuilder-sw.js new file mode 100644 index 0000000..20be015 --- /dev/null +++ b/public/pwabuilder-sw.js @@ -0,0 +1,48 @@ +// This is the "Offline page" service worker + +importScripts( + "https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js", +); + +const CACHE = "pwabuilder-page"; + +const offlineFallbackPage = "offline.html"; + +self.addEventListener("message", (event) => { + if (event.data && event.data.type === "SKIP_WAITING") { + self.skipWaiting(); + } +}); + +self.addEventListener("install", async (event) => { + event.waitUntil( + caches.open(CACHE).then((cache) => cache.add(offlineFallbackPage)), + ); +}); + +if (workbox.navigationPreload.isSupported()) { + workbox.navigationPreload.enable(); +} + +self.addEventListener("fetch", (event) => { + if (event.request.mode === "navigate") { + event.respondWith( + (async () => { + try { + const preloadResp = await event.preloadResponse; + + if (preloadResp) { + return preloadResp; + } + + const networkResp = await fetch(event.request); + return networkResp; + } catch (error) { + const cache = await caches.open(CACHE); + const cachedResp = await cache.match(offlineFallbackPage); + return cachedResp; + } + })(), + ); + } +}); diff --git a/public/sun.svg b/public/sun.svg deleted file mode 100644 index 839ec1e..0000000 --- a/public/sun.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/api/chat-api.tsx b/src/api/chat-api.tsx index a76cd8f..47b9844 100644 --- a/src/api/chat-api.tsx +++ b/src/api/chat-api.tsx @@ -1,9 +1,7 @@ -import axios, { AxiosResponse } from "axios"; +import axios from "axios"; -import Instance from "./axios-instance"; import { ChatFinalResponse, - ChatListItemType, ChatListResponse, ChatMakeRequest, ChatMakeRoom, diff --git a/src/components/chat/chat-app-bar.tsx b/src/components/chat/chat-app-bar.tsx index b1095d9..5572adc 100644 --- a/src/components/chat/chat-app-bar.tsx +++ b/src/components/chat/chat-app-bar.tsx @@ -20,7 +20,7 @@ export const ChatAppBar = ({ postId, setErrorModal, }: ChatAppBarType) => { - const [lastTransfer, setLastTransfer] = useRecoilState(lastTransferState); + const [lastTransfer] = useRecoilState(lastTransferState); const navigate = useNavigate(); useEffect(() => { diff --git a/src/components/chat/chat-list.tsx b/src/components/chat/chat-list.tsx index 0ff6e11..7c484cf 100644 --- a/src/components/chat/chat-list.tsx +++ b/src/components/chat/chat-list.tsx @@ -4,7 +4,6 @@ import { ChatListItem } from "./chat-list-item"; import { ChatRoomItemType } from "./type"; import { ChatListItemType } from "@/api/types/chat-type"; -import { useGetPostDetail } from "@/hooks/queries/useGetPostDetail"; export const ChatList = ({ chatList }: { chatList: ChatListItemType[] }) => { return ( diff --git a/src/components/chat/type.ts b/src/components/chat/type.ts index 6a7f260..d300b78 100644 --- a/src/components/chat/type.ts +++ b/src/components/chat/type.ts @@ -1,4 +1,4 @@ -import React, { ChangeEvent } from "react"; +import React from "react"; export type MyChatType = { children?: React.ReactNode; diff --git a/src/components/common/common-input.tsx b/src/components/common/common-input.tsx index 720db3d..3e8419c 100644 --- a/src/components/common/common-input.tsx +++ b/src/components/common/common-input.tsx @@ -1,5 +1,5 @@ import { motion } from "framer-motion"; -import { ChangeEvent, useEffect, useState } from "react"; +import { ChangeEvent, useEffect } from "react"; import { styled } from "styled-components"; import { InputInnerProps, InputWrapperProps } from "./type"; diff --git a/src/components/common/profile-modal.tsx b/src/components/common/profile-modal.tsx index a40771c..c609b28 100644 --- a/src/components/common/profile-modal.tsx +++ b/src/components/common/profile-modal.tsx @@ -1,5 +1,5 @@ import { useState } from "react"; -import styled from "styled-components"; +import { styled } from "styled-components"; import { ProfileModalType } from "./type"; diff --git a/src/components/layout/global-layout.tsx b/src/components/layout/global-layout.tsx index 1fc5e7f..aa8bb3f 100644 --- a/src/components/layout/global-layout.tsx +++ b/src/components/layout/global-layout.tsx @@ -1,4 +1,4 @@ -import { useEffect, useLayoutEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { Outlet, useLocation, useNavigate } from "react-router-dom"; import { BottomNavigationBar } from "@/components/common/bottom-navigation-bar"; diff --git a/src/components/layout/profile-layout.tsx b/src/components/layout/profile-layout.tsx index 6331e59..0a0a36e 100644 --- a/src/components/layout/profile-layout.tsx +++ b/src/components/layout/profile-layout.tsx @@ -7,7 +7,7 @@ import { useGetProfile } from "@/hooks/queries/useGetProfile"; export const ProfileContext = createContext(null); export const ProfileLayout = ({ children }: { children: ReactNode }) => { - const [profile, setProfile] = useState({ + const [_, setProfile] = useState({ userId: 0, nickName: "", gender: "", diff --git a/src/components/login/google-button.tsx b/src/components/login/google-button.tsx index c081b5f..f3d2082 100644 --- a/src/components/login/google-button.tsx +++ b/src/components/login/google-button.tsx @@ -1,10 +1,6 @@ -import { - GoogleAuthProvider, - signInWithRedirect, - User as FirebaseUser, -} from "@firebase/auth"; +import { GoogleAuthProvider, signInWithRedirect } from "@firebase/auth"; import { getRedirectResult } from "firebase/auth"; -import { Dispatch, SetStateAction, useEffect, useState } from "react"; +import { Dispatch, SetStateAction, useEffect } from "react"; import { ReactComponent as GoogleLoginButtonSVG } from "@/assets/icons/google-login-button.svg"; import { useSignIn } from "@/hooks/queries/useSignIn"; @@ -15,7 +11,6 @@ export const GoogleButton = ({ }: { setIsLoading: Dispatch>; }) => { - const [user, setUser] = useState(null); const { mutateAsync: signInBack } = useSignIn(); const signIn = async () => { @@ -25,19 +20,23 @@ export const GoogleButton = ({ await signInWithRedirect(auth, provider); }; - // Not yet - const signOut = async () => { - setIsLoading(true); - await auth.signOut().then(() => console.log("logout!", user)); - setIsLoading(false); - }; + // // Not yet + // const signOut = async () => { + // setIsLoading(true); + // await auth.signOut().then(() => console.log("logout!")); + // setIsLoading(false); + // }; useEffect(() => { - getRedirectResult(auth) + void getRedirectResult(auth) .then(async function (result) { if (result?.user) { const token = await result.user.getIdToken(); + console.log("IdToken", token); await signInBack({ type: "firebase", token }); + } else { + setIsLoading(false); + sessionStorage.removeItem("isLoading"); } }) .catch(function (error) { diff --git a/src/components/mypage/mypage-list.tsx b/src/components/mypage/mypage-list.tsx index 9ea22a5..cbef156 100644 --- a/src/components/mypage/mypage-list.tsx +++ b/src/components/mypage/mypage-list.tsx @@ -1,4 +1,4 @@ -import styled from "styled-components"; +import { styled } from "styled-components"; import { PostListItem } from "@/components/post/post-list-item"; import { useGetMypostList } from "@/hooks/queries/useGetMypostList"; diff --git a/src/components/mypage/mypage-up-button.tsx b/src/components/mypage/mypage-up-button.tsx index f9a81f1..f7f6501 100644 --- a/src/components/mypage/mypage-up-button.tsx +++ b/src/components/mypage/mypage-up-button.tsx @@ -1,12 +1,9 @@ -import { useNavigate } from "react-router-dom"; -import styled from "styled-components"; +import { styled } from "styled-components"; import UpArrowSVG from "@/assets/images/up-arrow.svg"; import { colorTheme } from "@/style/color-theme"; export const MypageUpButton = ({ onHandler }: { onHandler: () => void }) => { - const navigate = useNavigate(); - return ( { diff --git a/src/components/post/post-list-item.tsx b/src/components/post/post-list-item.tsx index 49e882b..239eb8a 100644 --- a/src/components/post/post-list-item.tsx +++ b/src/components/post/post-list-item.tsx @@ -1,5 +1,5 @@ import { useNavigate } from "react-router-dom"; -import styled from "styled-components"; +import { styled } from "styled-components"; import { PostListItemProps } from "./type"; diff --git a/src/components/post/post-posting-button-mini.tsx b/src/components/post/post-posting-button-mini.tsx index f6af111..357f182 100644 --- a/src/components/post/post-posting-button-mini.tsx +++ b/src/components/post/post-posting-button-mini.tsx @@ -1,5 +1,5 @@ import { useNavigate } from "react-router-dom"; -import styled from "styled-components"; +import { styled } from "styled-components"; import PlusWhiteSVG from "@/assets/icons/plus-white.svg"; import { colorTheme } from "@/style/color-theme"; diff --git a/src/components/post/post-posting-button.tsx b/src/components/post/post-posting-button.tsx index 66e7ea6..71b194b 100644 --- a/src/components/post/post-posting-button.tsx +++ b/src/components/post/post-posting-button.tsx @@ -1,5 +1,5 @@ import { useNavigate } from "react-router-dom"; -import styled from "styled-components"; +import { styled } from "styled-components"; import PlusWhiteSVG from "@/assets/icons/plus-white.svg"; import { colorTheme } from "@/style/color-theme"; diff --git a/src/components/posting/posting-date-picker.tsx b/src/components/posting/posting-date-picker.tsx index 01d61a6..29c80d4 100644 --- a/src/components/posting/posting-date-picker.tsx +++ b/src/components/posting/posting-date-picker.tsx @@ -1,4 +1,4 @@ -import { addMonths, startOfMonth, isBefore, Locale, format } from "date-fns"; +import { addMonths, format } from "date-fns"; import { ko } from "date-fns/locale/ko"; import DatePicker from "react-datepicker"; import { styled } from "styled-components"; diff --git a/src/components/profile/input.tsx b/src/components/profile/input.tsx index 9724fc9..f1d1525 100644 --- a/src/components/profile/input.tsx +++ b/src/components/profile/input.tsx @@ -1,4 +1,4 @@ -import { forwardRef, InputHTMLAttributes, LegacyRef } from "react"; +import { forwardRef, InputHTMLAttributes } from "react"; import { styled } from "styled-components"; type InputProps = Omit, "type">; diff --git a/src/components/transfer/transfer-detail-member.tsx b/src/components/transfer/transfer-detail-member.tsx index 2c3cb92..d65b57a 100644 --- a/src/components/transfer/transfer-detail-member.tsx +++ b/src/components/transfer/transfer-detail-member.tsx @@ -11,7 +11,7 @@ import { transferState } from "@/recoil/atoms/transfer-state"; import { colorTheme } from "@/style/color-theme"; export const TransferDetailMember = ({ setScreen }: TransferDetailProps) => { - const [transfer, setTransfer] = useRecoilState(transferState); + const [transfer] = useRecoilState(transferState); const [lastTransfer, setLastTransfer] = useRecoilState(lastTransferState); const handleAllSelect = () => { diff --git a/src/components/transfer/transfer-detail-password.tsx b/src/components/transfer/transfer-detail-password.tsx index 97d64af..3536846 100644 --- a/src/components/transfer/transfer-detail-password.tsx +++ b/src/components/transfer/transfer-detail-password.tsx @@ -1,4 +1,4 @@ -import { ChangeEvent, useEffect, useRef, useState } from "react"; +import { ChangeEvent, useEffect, useState } from "react"; import { useRecoilState } from "recoil"; import { styled } from "styled-components"; @@ -19,9 +19,9 @@ export const TransferDetailPassword = ({ const [lastTransfer, setLastTransfer] = useRecoilState(transferState); const [password, setPassword] = useState(""); const [isError, setIsError] = useState(false); - const [status, setStatus] = useState<"INITIAL" | "CONFIRM" | "MISMATCH">( - "INITIAL", - ); + // const [status, setStatus] = useState<"INITIAL" | "CONFIRM" | "MISMATCH">( + // "INITIAL", + // ); const { mutate: postTransfer } = usePostChatTransfer(); const onChange = (e: ChangeEvent) => { diff --git a/src/components/transfer/transfer-detail.tsx b/src/components/transfer/transfer-detail.tsx index 651ab0f..2199de9 100644 --- a/src/components/transfer/transfer-detail.tsx +++ b/src/components/transfer/transfer-detail.tsx @@ -8,7 +8,7 @@ import { lastTransferState } from "@/recoil/atoms/last-transfet-state"; import { colorTheme } from "@/style/color-theme"; export const TransferDetail = ({ setScreen }: TransferDetailProps) => { - const [lastTransfer, setLastTransfer] = useRecoilState(lastTransferState); + const [lastTransfer] = useRecoilState(lastTransferState); return ( diff --git a/src/components/transfer/transfer-finish.tsx b/src/components/transfer/transfer-finish.tsx index dae03a3..223d5ef 100644 --- a/src/components/transfer/transfer-finish.tsx +++ b/src/components/transfer/transfer-finish.tsx @@ -1,21 +1,20 @@ -import { useRecoilState, useResetRecoilState } from "recoil"; +import { useRecoilState } from "recoil"; import { styled } from "styled-components"; import { BottomFixed } from "@/components/common/bottom-fixed"; import { lastTransferState } from "@/recoil/atoms/last-transfet-state"; -import { transferState } from "@/recoil/atoms/transfer-state"; import { colorTheme } from "@/style/color-theme"; export const TransferFinish = ({ onClick }: { onClick: () => void }) => { - const resetLastTransferRecoil = useResetRecoilState(lastTransferState); - const resetTransferRecoil = useResetRecoilState(transferState); + // const resetLastTransferRecoil = useResetRecoilState(lastTransferState); + // const resetTransferRecoil = useResetRecoilState(transferState); - const [lastTransfer, setLastTransfer] = useRecoilState(lastTransferState); + const [lastTransfer] = useRecoilState(lastTransferState); - const handleClick = () => { - resetLastTransferRecoil(); - resetTransferRecoil(); - }; + // const handleClick = () => { + // resetLastTransferRecoil(); + // resetTransferRecoil(); + // }; return ( diff --git a/src/components/transfer/transfer-one-person-detail.tsx b/src/components/transfer/transfer-one-person-detail.tsx index 86b0a56..cd25eb4 100644 --- a/src/components/transfer/transfer-one-person-detail.tsx +++ b/src/components/transfer/transfer-one-person-detail.tsx @@ -8,7 +8,7 @@ import { lastTransferState } from "@/recoil/atoms/last-transfet-state"; import { colorTheme } from "@/style/color-theme"; export const TransferOnePersonDetail = ({ setScreen }: TransferDetailProps) => { - const [lastTransfer, setLastTransfer] = useRecoilState(lastTransferState); + const [lastTransfer] = useRecoilState(lastTransferState); return ( diff --git a/src/hooks/chat/useChatDataSetting.tsx b/src/hooks/chat/useChatDataSetting.tsx index 3fe7c85..8e4ba31 100644 --- a/src/hooks/chat/useChatDataSetting.tsx +++ b/src/hooks/chat/useChatDataSetting.tsx @@ -1,11 +1,7 @@ import { useEffect } from "react"; import { useSetRecoilState } from "recoil"; -import { - ChatListItemType, - ChatMakeRoom, - ChatRoomMember, -} from "@/api/types/chat-type"; +import { ChatMakeRoom, ChatRoomMember } from "@/api/types/chat-type"; import { useGetBankData } from "@/hooks/queries/useGetBankData"; import { useGetChatRoomData } from "@/hooks/queries/useGetChatRoomData"; import { lastTransferState } from "@/recoil/atoms/last-transfet-state"; diff --git a/src/hooks/queries/useGetPostDetail.ts b/src/hooks/queries/useGetPostDetail.ts index 6a58377..6eeaf89 100644 --- a/src/hooks/queries/useGetPostDetail.ts +++ b/src/hooks/queries/useGetPostDetail.ts @@ -1,7 +1,6 @@ import { useQuery } from "@tanstack/react-query"; import PostApi from "@/api/post-api"; -import { PostDetailType } from "@/api/types/post-type"; const CACHE_KEY = "post-detail"; diff --git a/src/hooks/queries/usePostApply.tsx b/src/hooks/queries/usePostApply.tsx index 0495a9e..d0f62d6 100644 --- a/src/hooks/queries/usePostApply.tsx +++ b/src/hooks/queries/usePostApply.tsx @@ -1,7 +1,6 @@ import { useMutation } from "@tanstack/react-query"; import { ApplyApi } from "@/api/apply-api"; -import PostApi from "@/api/post-api"; import { queryClient } from "@/index"; export function usePostApply(postId: string) { diff --git a/src/hooks/queries/usePostMakeChat.tsx b/src/hooks/queries/usePostMakeChat.tsx index 9424e37..41eabb6 100644 --- a/src/hooks/queries/usePostMakeChat.tsx +++ b/src/hooks/queries/usePostMakeChat.tsx @@ -1,5 +1,4 @@ import { useMutation } from "@tanstack/react-query"; -import { useNavigate } from "react-router-dom"; import ChatApi from "@/api/chat-api"; import { ChatMakeRequest } from "@/api/types/chat-type"; diff --git a/src/pages/chat/chat-room.tsx b/src/pages/chat/chat-room.tsx index 9dc7c6d..03aa1f4 100644 --- a/src/pages/chat/chat-room.tsx +++ b/src/pages/chat/chat-room.tsx @@ -1,18 +1,12 @@ import { Stomp, CompatClient } from "@stomp/stompjs"; import { useEffect, useRef, useState } from "react"; import { useLocation, useNavigate } from "react-router-dom"; -import { useRecoilState, useSetRecoilState } from "recoil"; -import SockJS from "sockjs-client"; +import { useRecoilState } from "recoil"; import { styled } from "styled-components"; -import { allMsg, tempList } from "./dummy"; import { ChatRoomSubMessage } from "./type"; -import { - ChatListItemType, - ChatMakeRoom, - ChatRoomMessage, -} from "@/api/types/chat-type"; +import { ChatMakeRoom } from "@/api/types/chat-type"; import { ChatAppBar } from "@/components/chat/chat-app-bar"; import { ChatInput } from "@/components/chat/chat-input"; import { ChatItem } from "@/components/chat/chat-item"; @@ -31,7 +25,7 @@ export const ChatRoom = () => { const location = useLocation(); const state = location.state as ChatMakeRoom; - const [transfer, setTransfer] = useRecoilState(transferState); + const [transfer] = useRecoilState(transferState); const [newRoomMsgs, setNewRoomMsgs] = useState([]); const roomMsgs = useChatDataSetting(state); diff --git a/src/pages/mypage/mypage.tsx b/src/pages/mypage/mypage.tsx index 5543d01..5d5b4e1 100644 --- a/src/pages/mypage/mypage.tsx +++ b/src/pages/mypage/mypage.tsx @@ -1,5 +1,5 @@ import { useEffect, useRef, useState } from "react"; -import styled from "styled-components"; +import { styled } from "styled-components"; import { AppBar } from "@/components/common/app-bar"; import { MypageList } from "@/components/mypage/mypage-list"; diff --git a/src/pages/post/applicant-list.tsx b/src/pages/post/applicant-list.tsx index 8f9ea13..0900f9a 100644 --- a/src/pages/post/applicant-list.tsx +++ b/src/pages/post/applicant-list.tsx @@ -1,4 +1,4 @@ -import { MouseEvent, useEffect, useState } from "react"; +import { MouseEvent, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; import { styled } from "styled-components"; @@ -9,7 +9,6 @@ import { AppBar } from "@/components/common/app-bar"; import { BottomFixed } from "@/components/common/bottom-fixed"; import { Modal } from "@/components/common/modal"; import { DefaultLayout } from "@/components/layout/default-layout"; -import { useCheckChatMake } from "@/hooks/chat/useChatMake"; import { useChangeStatus } from "@/hooks/queries/useChangeStatus"; import { useGetApplyList } from "@/hooks/queries/useGetApplyList"; import { usePostApplyAccept } from "@/hooks/queries/usePostApplyAccept"; diff --git a/src/pages/post/post-detail.tsx b/src/pages/post/post-detail.tsx index 4597dd1..8cc499e 100644 --- a/src/pages/post/post-detail.tsx +++ b/src/pages/post/post-detail.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; import { useSetRecoilState } from "recoil"; -import { css, styled } from "styled-components"; +import { styled } from "styled-components"; import { PostType } from "@/api/types/post-type"; import BackBlackSVG from "@/assets/icons/back-black.svg"; diff --git a/src/pages/post/post-list.tsx b/src/pages/post/post-list.tsx index 0de1fdb..f49df26 100644 --- a/src/pages/post/post-list.tsx +++ b/src/pages/post/post-list.tsx @@ -1,5 +1,5 @@ import { useEffect, useRef, useState } from "react"; -import styled from "styled-components"; +import { styled } from "styled-components"; import { PostListItem } from "@/components/post/post-list-item"; import { PostPostingButton } from "@/components/post/post-posting-button"; diff --git a/src/pages/profile/name.tsx b/src/pages/profile/name.tsx index 08730e9..5a0e7bc 100644 --- a/src/pages/profile/name.tsx +++ b/src/pages/profile/name.tsx @@ -3,7 +3,6 @@ import { useSetRecoilState } from "recoil"; import { styled } from "styled-components"; import { BottomFixed } from "@/components/common/bottom-fixed"; -import { Description } from "@/components/profile/description"; import { Header } from "@/components/profile/header"; import { Input } from "@/components/profile/input"; import { profileState } from "@/recoil/atoms/profile-state"; diff --git a/src/pages/splash/splash.tsx b/src/pages/splash/splash.tsx index e5bf45f..303d0d3 100644 --- a/src/pages/splash/splash.tsx +++ b/src/pages/splash/splash.tsx @@ -1,6 +1,5 @@ -import { async } from "@firebase/util"; import { motion } from "framer-motion"; -import { useEffect, useState } from "react"; +import { useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { styled } from "styled-components";