Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
14716d9
feat: setup project environment and design system
yujinnieOhh Mar 24, 2026
e58c57f
feat: set up project directory structure
yujinnieOhh Mar 27, 2026
7a01afd
feat: setup mock data and types for Chatroom
yujinnieOhh Mar 27, 2026
2beafb2
feat: implement message rendering logic in ChatRoomPage
yujinnieOhh Mar 27, 2026
4703e26
Merge remote-tracking branch 'upstream/master' into yujinnieohh
yujinnieOhh Mar 27, 2026
bba5235
feat: refine chat bubble UI with tail and layout constraints
yujinnieOhh Mar 28, 2026
37375f4
feat: setup react-router and implement ChatHeader
yujinnieOhh Mar 28, 2026
f1cf76d
feat: implement MessageInput and responsive chat layout
yujinnieOhh Mar 28, 2026
45e3346
fix: resolve Router context error and refine route paths
yujinnieOhh Mar 28, 2026
950003a
feat: implement TimeDivider with 5-minute interval logic
yujinnieOhh Mar 28, 2026
ab040cc
fix: Vercel deploy
yujinnieOhh Mar 28, 2026
3afd497
feat: implement NoticeBar
yujinnieOhh Mar 28, 2026
ffaec77
style: update UI according to design review
yujinnieOhh Mar 31, 2026
df4b22f
feat: implement NoticePage UI
yujinnieOhh Apr 18, 2026
6491295
feat: implement messaage persistence with localStorage
yujinnieOhh Apr 20, 2026
58d740e
feat: implement conditional rendering for NavBar
yujinnieOhh Apr 20, 2026
7e042f6
feat: implement NavBar with active state styling
yujinnieOhh Apr 20, 2026
8648153
feat: add user dummy data
yujinnieOhh Apr 21, 2026
da1e717
feat: implement FriendsHeader layout structure
yujinnieOhh Apr 21, 2026
aa6a113
feat: render sorted friends list from localStorage
yujinnieOhh Apr 21, 2026
1052a52
feat: implement favorite friend toggle and list filtering
yujinnieOhh Apr 21, 2026
dc98e34
feat: add search and dropdown UI to FriendsHeader
yujinnieOhh Apr 21, 2026
882d418
feat: implement dynamic roomId routing and speaker toggle
yujinnieOhh Apr 21, 2026
90c3b3d
feat: implement auto-scroll to bottom for new messages
yujinnieOhh Apr 21, 2026
fb8f4df
feat: navigate to chatroom from Friends with auto-creation
yujinnieOhh Apr 21, 2026
91b6b10
feat: implement ChatList and set up time formatting
yujinnieOhh Apr 22, 2026
e2efb10
feat: implement unread message notification logic
yujinnieOhh Apr 22, 2026
379111c
feat: implement pinned chatroom with custom context menu
yujinnieOhh Apr 22, 2026
db7704f
feat: populate dummy chat data and implement dynamic profile images
yujinnieOhh Apr 22, 2026
b31630b
faet: implement ProfilePage
yujinnieOhh Apr 22, 2026
b405aa9
fix: Vercel error fixed
yujinnieOhh Apr 22, 2026
52e2cfd
fix: Vercel error fixed2
yujinnieOhh Apr 22, 2026
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
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

그럼 이번 과제도 파이팅입니다!! 🎉


# **과제**

## **목표**
Expand All @@ -36,25 +35,24 @@
## **Review Questions**

- 디자이너와 협업하며 전달받은 자료
(피그마 링크, 캡처본, 커뮤니케이션 과정 등)
(피그마 링크, 캡처본, 커뮤니케이션 과정 등)

- JSX / JS / TSX / TS의 개념과 각각의 차이점, 사용 이유

- TypeScript를 사용하는 이유

- SSR과 CSR의 개념 및 차이점


## **필수 구현 기능**

- 피그마 **Dev Mode**를 통해, 매칭된 디자인 파트원의 UI를 구현합니다.
- [🔗 예시 1](https://react-messenger-21th-kwondu.vercel.app/)
- [🔗 예시 2](https://react-messenger-21th-nine.vercel.app/)
- [🔗 예시 1](https://react-messenger-21th-kwondu.vercel.app/)
- [🔗 예시 2](https://react-messenger-21th-nine.vercel.app/)
- 디자인 시스템을 구축합니다.
- tailwind CSS를 사용합니다.
- 메세지를 보내면 채팅방 하단으로 스크롤을 이동시킵니다.
- 메세지에 유저 정보(프로필 사진, 이름)를 표시합니다.
- user와 message 데이터를 json 파일에 저장합니다.
- user와 message 데이터를 json 파일에 저장합니다.
- UI는 **반응형을 제외**하고 피그마파일을 따라서 진행합니다.

### **추가 구현 기능**
Expand Down Expand Up @@ -82,3 +80,4 @@
- [[영상] : 컴포넌트에 대한 이해](https://www.youtube.com/watch?v=21eiJc90ggo)
- [Tailwind CSS 장단점, 사용법](https://wonny.space/writing/dev/hello-tailwind-css)
- [ts 절대경로 설정하기](https://tesseractjh.tistory.com/232)
> > > > > > > upstream/master
23 changes: 23 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
js.configs.recommended,
tseslint.configs.recommended,
reactHooks.configs.flat.recommended,
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
},
])
13 changes: 13 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>react-messenger-23rd</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading