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

카카오 로그인 완료 #19

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
6f7d492
README 에 마이페이지 API 명세서 초안 작성
sssssubin Sep 27, 2024
dfd67b7
Merge pull request #2 from sssssubin/feature/my-page
sssssubin Sep 27, 2024
374ff27
update: 레이아웃 중간 배포
SoRaang Sep 27, 2024
4237018
update: 레이아웃 중간 배포
SoRaang Sep 27, 2024
f3e43ac
update: 레이아웃 중간 배포
SoRaang Sep 27, 2024
ca91be6
feat: 레이아웃 반응형 작업
sssssubin Sep 27, 2024
6232c61
feat: 레이아웃 반응형 사이드바 수정
sssssubin Sep 27, 2024
b7f6989
Merge remote-tracking branch 'origin/develop' into feature/home
SoRaang Sep 28, 2024
61a0b3a
Merge remote-tracking branch 'origin/feature/layout' into feature/home
SoRaang Sep 28, 2024
5b5ef1f
update: 레이아웃 중간 배표
SoRaang Sep 28, 2024
db1bc37
update: 레이아웃 중간 배포
SoRaang Sep 28, 2024
88d5636
update: 모달생성(스타일 아직)
Sep 29, 2024
120eb02
update: 라우터 지정+knowledge 페이지 생성
Sep 29, 2024
6b4739c
update: knowledge 페이지 디자인 완성
Sep 29, 2024
fbb5cb5
update: product 페이지 디자인 완성
Sep 29, 2024
fab1fdc
update: 대소문자 구별
Sep 29, 2024
17ab2d5
update: 대소문자 구별
Sep 29, 2024
4731dca
update: 레이아웃 중간 배포
SoRaang Sep 29, 2024
5dbf22e
update: 레이아웃 중간 배포
SoRaang Sep 30, 2024
896787b
Merge remote-tracking branch 'origin/feature/my-page' into feature/home
SoRaang Sep 30, 2024
a80ccb3
Merge remote-tracking branch 'origin/feature/create-post' into featur…
SoRaang Sep 30, 2024
7908f6e
update: 중간 저장
SoRaang Sep 30, 2024
cfb3e33
update: 카드 아이템
SoRaang Sep 30, 2024
8bd746c
feat: 마이페이지 기능 요구사항 구현
sssssubin Sep 30, 2024
3837bbc
회원가입&로그인중간점검
tree0000 Sep 30, 2024
b670ea1
Merge remote-tracking branch 'origin/feature/my-page' into feature/home
SoRaang Sep 30, 2024
22394e9
update: 라우터 적용 가능
SoRaang Sep 30, 2024
3578904
update: 이미지 업로드 기능 및 나눔분류선택할때 URL 변경, 지식 유명라벨의 나무수설정
Sep 30, 2024
140e803
update: 일부 코드 정리, App.jsx 내에 있던 코드 복원
SoRaang Oct 1, 2024
b97b767
patch: scss 구문 오류
SoRaang Oct 1, 2024
b2c6dff
Merge pull request #13 from prgrms-fe-devcourse/feature/home
sssssubin Oct 1, 2024
f194bbc
Merge pull request #14 from prgrms-fe-devcourse/feature/full-function…
sssssubin Oct 1, 2024
fc1db18
feat: 공통 레이아웃 설정 및 사이드바, 브레드크럼 상태 관리 추가
sssssubin Oct 1, 2024
d43a80b
Merge pull request #15 from prgrms-fe-devcourse/feature/my-page
sssssubin Oct 1, 2024
b873c01
중간 저장 네이버 API
tree0000 Oct 1, 2024
43a90ca
develop 병합
tree0000 Oct 1, 2024
879fec7
병합 충돌 해결
tree0000 Oct 1, 2024
3d0036d
feat: 로그인, 회원가입 기능 일부 통합
sssssubin Oct 1, 2024
6f5a902
아이디& 비밀번호 수정, 로그인 버튼 및 로그아웃 수정
tree0000 Oct 2, 2024
56d8071
카카오톡 연동완료
tree0000 Oct 2, 2024
e94af2d
카카오 구현
tree0000 Oct 2, 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
Binary file modified .DS_Store
Binary file not shown.
426 changes: 210 additions & 216 deletions README.md

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion shareliving-front/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,16 @@

<link rel="preload" as="font" type="font/woff2" crossorigin="" href="./assets/fonts/SUIT-Variable.woff2">
<link rel="stylesheet" href="./assets/css/style.css">
<script
type="text/javascript"
src="https://static.nid.naver.com/js/naveridlogin_js_sdk_2.0.0.js"
charset="utf-8"
></script>
</head>

<body>
<div id="root"></div>

<script type="module" src="/src/main.jsx"></script>
</body>
</html>
</html>
432 changes: 327 additions & 105 deletions shareliving-front/package-lock.json

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions shareliving-front/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@
"axios": "^1.7.7",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.26.2"
"react-query": "^3.39.3",
"react-router-dom": "^6.26.2",
"swiper": "^11.1.14"
},
"devDependencies": {
"@eslint/js": "^9.9.0",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.1",
"@vitejs/plugin-react": "^4.3.2",
"css-loader": "^7.1.2",
"eslint": "^9.9.0",
"eslint-plugin-react": "^7.35.0",
Expand Down
Empty file.
Empty file.
162 changes: 144 additions & 18 deletions shareliving-front/src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,24 +1,150 @@
import { createBrowserRouter, RouterProvider } from 'react-router-dom';
import React from 'react';
import { Routes, Route } from 'react-router-dom';
import Header from './components/Header';
import Home from './components/Home';
import './assets/css/style.css';

import Layout from './components/layouts/Layout';
import LandingPage from './components/LandingPage';
import ProductWrite from './pages/ProductWrite';
import KnowledgeWrite from './pages/KnowledgeWrite';
import MyPage from './pages/MyPage';
import EditProfile from './pages/EditProfile';
import MessagesPage from './pages/MessagesPage';
import MessageDetail from './components/MessageDetail';
import ReplyMessage from './pages/ReplyMessage';
import NoticeList from './components/NoticeList';
import NoticeDetail from './components/NoticeDetail';
import ShareHistory from './pages/ShareHistory';
import ProductDetail from './pages/ProductDetail';
import KnowledgeDetail from './pages/KnowledgeDetail';
import { AppProvider } from './context/AppContext'; // Context import
import Login from './components/authentication/component/Login';
import Signup from './components/authentication/component/Signup';
import FindAccountInfo from './components/authentication/component/FindAccountInfoPopup';
function App() {
return (
<>
<Header />
<Routes>
<Route path="/" element={<Home />} />
<Route path="/login" element={<Login />} />
<Route path="/auth/kakao/callback" element={<Login />} />
<Route path="/signup" element={<Signup />} />
<Route path="/find-account-info" element={<FindAccountInfo />} />
{/* 다른 라우트들을 여기에 추가하세요 */}
</Routes>
</>
);
}
import KakaoCallback from './components/authentication/utils/service/kakaoCallback';
/*
주석 규칙

- 404 오류 처리:
모든 페이지에서 발생할 수 있는 404 오류는
errorElement로 처리하여 사용자에게 안내합니다.

- CRUD 관련 오류 메시지 (상황에 따라 커스텀):
- R (조회 실패):
데이터를 불러오는 데 실패했습니다.

- U (업데이트 실패):
업데이트에 실패했습니다.

- C (생성 실패):
추가에 실패했습니다.

- D (삭제 실패):
삭제에 실패했습니다.
*/

const baseRouter = createBrowserRouter([
{
path: '/',
element: <Layout />,
errorElement: <div>404 페이지를 찾을 수 없습니다.</div>,
children: [
{
path: '/',
element: <LandingPage />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/mypage',
element: <MyPage />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/edit-profile',
element: <EditProfile />,
errorElement: <div>업데이트에 실패했습니다.</div>,
},
{
path: '/messages',
element: <MessagesPage />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/messages/:messageId',
element: <MessageDetail />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/messages/:messageId/reply',
element: <ReplyMessage />,
errorElement: <div>메시지 전송에 실패했습니다.</div>,
},
{
path: '/notices',
element: <NoticeList />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/notices/:noticeId',
element: <NoticeDetail />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/share-history',
element: <ShareHistory />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/product/:id',
element: <ProductDetail />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/knowledge/:id',
element: <KnowledgeDetail />,
errorElement: <div>데이터를 불러오는 데 실패했습니다.</div>,
},
{
path: '/add-product',
element: <ProductWrite />,
errorElement: <div>제품 등록에 실패했습니다.</div>,
},
{
path: '/add-knowledge',
element: <KnowledgeWrite />,
errorElement: <div>지식 등록에 실패했습니다.</div>,
},
{
path: '/login',
element: <Login />,
errorElement: <div>로그인에 실패했습니다.</div>,
},
{
path: '/auth/kakao/callback',
element: <KakaoCallback />,
errorElement: <div>로그인에 실패했습니다.</div>,
},
{
path: '/signup',
element: <Signup />,
errorElement: <div>회원가입에 실패했습니다.</div>,
},
{
path: '/find-account-info',
element: <FindAccountInfo />,
errorElement: <div>회원가입에 실패했습니다.</div>,
},

// 필요한 경로를 추가
],
},
]);

const App = () => {
return (
<AppProvider>
<RouterProvider router={baseRouter} />
</AppProvider>
);
};

export default App;
Empty file added shareliving-front/src/api.js
Empty file.
4 changes: 2 additions & 2 deletions shareliving-front/src/assets/css/base/_default.scss
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
--opaq: 1; // 투명도 글로벌 픽스, 텍스트 투명도 조정이 필요할 때 사용

--fnt-title-xl: 2.4rem;
--fnt-title-lg: 1.8rem;
--fnt-title-md: 1.5rem;
--fnt-title-lg: 1.5rem;
--fnt-title-md: 1.2rem;
--fnt-title-sm: 1rem;

--fnt-xl: .9rem;
Expand Down
74 changes: 74 additions & 0 deletions shareliving-front/src/assets/css/components/_MainSideBar.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/* _MainSideBar.scss */

#sideBarMain { // 메인 사이드바
display: flex;
flex-flow: column nowrap;
gap: .6rem;
width: 16rem;
}

#sideBanner { // 사이드바 이용 안내 배너
height: 6rem;
}

#sideNews { // 사이드바 최신 공지사항

}

.sidebar-news-title {
display: flex;
align-items: center;
padding: .8rem;
font-weight: 900;

> .icons {
width: .8rem;
}
}

.sidebar-news-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: .6rem;
padding-inline: .8rem;
padding-block-end: .8rem;
}

.sidebar-news-item {
padding: .8rem;
aspect-ratio: 1 / 1;
border: 1px solid rgb(var(--clr-text) / .15);
border-radius: .4rem;

&:nth-child(3n + 1) {
background-color: rgb(var(--clr-tint-50));
color: rgb(var(--clr-text-on-tint));
}

> a {
display: flex;
flex-flow: column nowrap;
justify-content: space-between;
height: 100%;
}

.icons {
margin-inline-start: auto;
}
}

@media screen and (max-width: 70rem) { // 1400px부터 사이드바 숨김 처리, 버튼 클릭시 사이드에서 나오도록 표시
#sideBarMain {
display: none;
position: fixed;
inset-block: 0;
inset-inline-end: 0;
margin-inline-start: auto;

&.open {
display: initial;
}
}
}

/* _MainSideBar.scss */
38 changes: 38 additions & 0 deletions shareliving-front/src/assets/css/components/_buttons.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,41 @@
/* _buttons.scss */

button {
padding: 0;
border: 0;
background-color: transparent;
outline: 0;
cursor: pointer;
}

#btnSideLogin { // 공통 요소 적용 안된 임시 로그인 버튼
display: flex;
justify-content: center;
align-items: center;
gap: .4rem;
width: 100%;
height: 3.6rem;
border-radius: .8rem;
background-color: rgb(var(--clr-theme)); // 임시
color: rgb(var(--clr-min));
font-size: 1.2rem;
font-weight: 900;
}

#btnTotalSearch {
display: flex;
justify-content: center;
align-items: center;
height: 1.6rem;
aspect-ratio: 1 / 1;
border: 1px solid rgb(var(--clr-theme) / .5);
border-radius: .2rem;
background-color: rgb(var(--clr-theme));
color: rgb(var(--clr-text-on-tint));

> .icons {
width: .8rem;
}
}

/* _buttons.scss */
Loading