$> npm i -f
$> npm start
-
테이블 전체를 랜더링할
UserTable
안에 각 검색 결과의 데이터가 들어갈TableRow
컴포넌트가 랜더링 되도록 구현했습니다. -
검색 결과를
filter
를 이용해서 구현하였고, 가독성을 높이기 위해 각 조건을 나눠서 작성해주었습니다. -
useMemo
를 사용하여 검색어가 바뀔때마다 데이터가 바뀌도록 구현하였습니다. -
검색 결과의 개수에 따라 결과가 없음을 알려주거나 , 개수를 알려주도록 구현했습니다.
-
데이터가 없거나 데이터가 그래프에 맞지 않는 상황에는 에러 메시지를 보여주게끔 하였습니다.
src
├── assets
│ ├── imgs
│ │ ├── office.webp
│ │ └── profile.png
│ └── svgs
│ ├── error.svg
│ ├── heartbeat.svg
│ ├── home.svg
│ ├── index.ts
│ ├── logout.svg
│ └── manage_accounts.svg
├── components
│ ├── Button
│ │ ├── button.module.scss
│ │ └── index.tsx
│ ├── Layout
│ │ ├── Header.tsx
│ │ ├── LNB.tsx
│ │ ├── index.tsx
│ │ └── layout.module.scss
│ ├── SearchDate
│ │ ├── index.tsx
│ │ ├── searchDate.module.scss
│ │ └── utils
│ │ └── dateCalc.ts
│ └── index.ts
├── data
│ ├── heartRate.json
│ ├── heartrate_data
│ │ ├── heartrate_136_0226_____1_.json
│ │ ├── heartrate_136_0308_____1_.json
│ │ ├── heartrate_136_0419_____1_.json
│ │ ├── heartrate_328_0416_____2_.json
│ │ ├── heartrate_328_0419_____2_.json
│ │ ├── heartrate_328_0420_____2_.json
│ │ ├── heartrate_380_0417_____3_.json
│ │ ├── heartrate_380_0418_____3_.json
│ │ └── heartrate_380_0419_____3_.json
│ ├── stepCount.json
│ ├── step_data
│ │ ├── step_136_0226_____1_.json
│ │ ├── step_136_0308_____1_.json
│ │ ├── step_136_0419_____1_.json
│ │ ├── step_328_0416_____2_.json
│ │ ├── step_328_0419_____2_.json
│ │ ├── step_328_0420_____2_.json
│ │ ├── step_380_0417_____3_.json
│ │ ├── step_380_0418_____3_.json
│ │ └── step_380_0419_____3_.json
│ ├── userLoginData.json
│ └── userdata.json
├── global.d.ts
├── hooks
│ └── index.ts
├── index.tsx
├── react-app-env.d.ts
├── reportWebVitals.ts
├── routes
│ ├── Dashboard
│ │ └── index.tsx
│ ├── Details
│ │ ├── HeartRateChart
│ │ │ ├── Chart.tsx
│ │ │ ├── heartRateChart.module.scss
│ │ │ └── index.tsx
│ │ ├── NeedForDate
│ │ │ ├── index.tsx
│ │ │ └── needMoreDate.module.scss
│ │ ├── StepCountChart
│ │ │ ├── Chart.tsx
│ │ │ ├── index.tsx
│ │ │ └── stepCountChart.module.scss
│ │ ├── UserInfo
│ │ │ ├── index.tsx
│ │ │ └── userInfo.module.scss
│ │ ├── detail.module.scss
│ │ └── index.tsx
│ ├── Login
│ │ ├── LoginAside
│ │ │ ├── index.tsx
│ │ │ └── loginAside.module.scss
│ │ ├── index.tsx
│ │ └── login.module.scss
│ ├── LoginCheck.tsx
│ ├── Manage
│ │ ├── UserSearch
│ │ │ ├── index.tsx
│ │ │ └── userSearch.module.scss
│ │ ├── UserTable
│ │ │ ├── TableRow.tsx
│ │ │ ├── index.tsx
│ │ │ └── userTable.module.scss
│ │ └── index.tsx
│ └── index.tsx
├── setupTests.ts
├── states
│ ├── currentUserState.ts
│ ├── index.ts
│ ├── searchedUserInfoState.ts
│ ├── userDataState.ts
│ └── userLoginDataState.ts
├── styles
│ ├── base
│ │ ├── _fonts.scss
│ │ ├── _more.scss
│ │ └── _reset.scss
│ ├── constants
│ │ ├── _colors.scss
│ │ ├── _levels.scss
│ │ └── _sizes.scss
│ ├── global.scss
│ ├── index.scss
│ ├── index.ts
│ └── mixins
│ ├── _animation.scss
│ ├── _flexbox.scss
│ ├── _position.scss
│ └── _responsive.scss
└── types
└── types.d.ts
🌅 고은채 | 🌇 김형석 | 🌃 김하늘 | 🎇 양한별 | 🌠 엄강우 | 🌉 이근영 | 🏙 최지윤 |
---|