-
Notifications
You must be signed in to change notification settings - Fork 51
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
경북대 FE_이정민_1주차 과제 Step2,3 #76
Open
userjmmm
wants to merge
23
commits into
kakao-tech-campus-2nd-step2:userjmmm
Choose a base branch
from
userjmmm:step2-userjmmm
base: userjmmm
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
a259afb
docs: README.md에 구현할 기능 목록 정리
8ca9231
chore: Create React App을 기반으로 프로젝트를 생성
8a73823
chore: 절대경로로 import 할 수 있도록 CRA의 기본 WebPack 설정 수정
3ddb012
docs: alias를 설정하기 위해 tsconfig 항목 설정 동시에 변경
c519c5a
chore: ESLint, Prettier 추가 및 airbnb rule 세팅
b95223f
feat: emotion 스타일 라이브러리 추가 및 reset.css 적용
fb7ebd0
chore: gitignore 코드 추가 및 불필요한 코드 정리
382f543
docs: README.md에 구현한 기능 완료 상태 변경
2d97688
docs: README.md 제목 오탈자 수정
ada8069
docs: 2단계 - Storybook을 사용하여 재사용 가능한 컴포넌트 구현에 필요한 기능 목록 정리
a07037a
chore: Storybook 추가
2be0de5
chore: config-overrides.js에서 사용 중인 alias 설정을 Storybook의 Webpack 설정에 추가
cbb34b7
feat: Theme Props에 따라 버튼의 컬러와 디자인이 변경되도록 추가
1704a7d
feat: Size Props에 따라 버튼의 size가 변경되도록 구현
b3da6f6
feat: Input 컴포넌트 구현 및 Size Props에 따라 버튼의 Size가 변경되도록 구현
982f237
feat: disabled Props에 따라 Input이 비활성화 되고, UI에서 투명도로 구분하도록 구현
ccda2c7
feat: invalid Props 에 따라 Input의 값이 잘못되었음을 UI에서 인지 가능하도록 구현
6e4de4b
feat: Img Element의 기본 속성들을 모두 사용 가능하도록 구현
1c8a50f
feat: ratio Props에 따라 이미지 비율을 설정 - 16/9와 square로 설정한 경우
88fe066
feat: radius Props에 따라 모서리가 둥글게 구현 - value가 number/circle인 경우
c482b9c
feat: GoodsItem 컴포넌트 - Dafault, Ranking 형태가 공통 Props를 넘겨받도록 구현
fb4578c
feat: rankingIndex 값에 따라 랭킹 뱃지 색 변경되도록 구현
88306f2
feat: Grid, Container 컴포넌트 구현
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,36 @@ | ||
# react-gift-react-foundation | ||
FE 카카오 선물하기 1주차 과제: React 기초 | ||
|
||
### 2단계 - Storybook을 사용하여 재사용 가능한 컴포넌트 구현 | ||
|
||
#### Requirements | ||
- [x] Storybook 추가<br> | ||
공통 컴포넌트에 아래와 같은 컴포넌트를 구현하고, Storybook에서 확인 할 수 있도록 구현 | ||
- Button 컴포넌트 구현 | ||
- [x] Theme Props에 따라 버튼의 컬러와 디자인이 변경되도록 구현 | ||
- [x] Size Props에 따라 버튼의 size가 변경되도록 구현 | ||
- [x] Size Props 예외 - value가 responsive인 경우 미디어 쿼리에 따라 사이즈가 변경되도록 구현 | ||
- [x] Button element의 기본 속성을 모두 사용 가능하도록 구현 | ||
|
||
- Input 컴포넌트 구현 | ||
- [x] disabled Props에 따라 Input이 비활성화 되고, UI에서도 비활성화 됨을 인지 가능하도록 구현 | ||
- [x] invalid Props 에 따라 Input의 값이 잘 못되었음을 UI에서 인지 가능하도록 구현 | ||
- [x] Size Props에 따라 버튼의 size가 변경되도록 구현 | ||
- [x] Size Props 예외 - value가 responsive인 경우 미디어 쿼리에 따라 사이즈가 변경되도록 구현 | ||
- [x] Input Element의 기본 속성들을 모두 사용 가능하도록 구현 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 아쉽게도 요것은 달성하지 못했습니다! |
||
|
||
- Image 컴포넌트 구현 | ||
- [x] ratio Props에 따라 이미지 비율을 설정 - value가 number로 16/9로 넘겨진 경우 | ||
- [x] ratio Props에 따라 이미지 비율을 설정 - value가 square로 설정한 경우 | ||
- [x] radius Props에 따라 모서리가 둥글게 구현 - value가 number인 경우 | ||
- [x] radius Props에 따라 모서리가 둥글게 구현 - value가 circle인 경우 | ||
- [x] Img Element의 기본 속성들을 모두 사용 가능하도록 구현 | ||
|
||
- GoodsItem 컴포넌트 구현 | ||
- [x] Default 형태와 Ranking 형태의 컴포넌트를 각각 구현 | ||
- [x] 공통 Props: imageSrc, subtitle, title, amount 넘겨받도록 구현 | ||
- 랭킹 형태의 경우 rankingIndex Props를 받도록 구현 | ||
- [x] rankingIndex가 1~3이면 분홍색 랭킹 배지가 보이도록 구현 | ||
- [x] rankingIndex가 1~3이 아니면 회색 랭킹 배지가 보이도록 구현 | ||
|
||
- [x] Grid, Container 컴포넌트 구현 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
module.exports = { | ||
parser: '@typescript-eslint/parser', | ||
plugins: ['@typescript-eslint', 'prettier'], | ||
extends: ['airbnb', 'plugin:import/errors', 'plugin:import/warnings', 'plugin:prettier/recommended', 'plugin:@typescript-eslint/recommended', 'prettier', 'plugin:storybook/recommended'], | ||
rules: { | ||
'linebreak-style': 0, | ||
'import/prefer-default-export': 0, | ||
'prettier/prettier': 0, | ||
'import/extensions': 0, | ||
'no-use-before-define': 0, | ||
'import/no-unresolved': 0, | ||
'import/no-extraneous-dependencies': 0, | ||
'no-shadow': 0, | ||
'react/prop-types': 0, | ||
'react/jsx-filename-extension': [2, { extensions: ['.js', '.jsx', '.ts', '.tsx'] }], | ||
'jsx-a11y/no-noninteractive-element-interactions': 0, | ||
'react/require-default-props': 'off', | ||
'react/function-component-definition': 'off', | ||
'react/jsx-props-no-spreading': 'off', | ||
'react/no-unescaped-entities': 'off', | ||
'@typescript-eslint/explicit-module-boundary-types': 'off', | ||
'@typescript-eslint/no-explicit-any': 'off', | ||
"react/react-in-jsx-scope": "off", | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# dependencies | ||
/node_modules | ||
/.pnp | ||
.pnp.js | ||
|
||
# testing | ||
/coverage | ||
|
||
# production | ||
/build | ||
|
||
# misc | ||
.DS_Store | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# Log files | ||
*.log | ||
*storybook.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"singleQuote": true, | ||
"semi": true, | ||
"useTabs": false, | ||
"tabWidth": 2, | ||
"trailingComma": "all", | ||
"printWidth": 100, | ||
"arrowParens": "always" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
import type { StorybookConfig } from '@storybook/react-webpack5'; | ||
import path from 'path'; | ||
|
||
const config: StorybookConfig = { | ||
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], | ||
addons: [ | ||
'@storybook/preset-create-react-app', | ||
'@storybook/addon-onboarding', | ||
'@storybook/addon-links', | ||
'@storybook/addon-essentials', | ||
'@chromatic-com/storybook', | ||
'@storybook/addon-interactions', | ||
], | ||
framework: { | ||
name: '@storybook/react-webpack5', | ||
options: {}, | ||
}, | ||
staticDirs: ['../public'], | ||
webpackFinal: async (config) => { | ||
if (!config.resolve) { | ||
config.resolve = {}; | ||
} | ||
if (!config.resolve.alias) { | ||
config.resolve.alias = {}; | ||
} | ||
config.resolve.alias = { | ||
...config.resolve.alias, | ||
'@components': path.resolve(__dirname, '../src/components'), | ||
'@utils': path.resolve(__dirname, '../src/utils'), | ||
'@styles': path.resolve(__dirname, '../src/styles'), | ||
}; | ||
return config; | ||
}, | ||
}; | ||
|
||
export default config; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import type { Preview } from '@storybook/react'; | ||
|
||
const preview: Preview = { | ||
parameters: { | ||
controls: { | ||
matchers: { | ||
color: /(background|color)$/i, | ||
date: /Date$/i, | ||
}, | ||
}, | ||
}, | ||
}; | ||
|
||
export default preview; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# react-gift-react-foundation | ||
FE 카카오 선물하기 1주차 과제: React 기초 | ||
|
||
### Requirements | ||
- [x] Create React App을 기반으로 프로젝트를 생성 | ||
- [x] Typescript로 프로젝트가 동작되게 세팅하고, 절대 경로로 Import 할 수 있게 alias를 설정 | ||
- [x] tsconfig에 어떤 항목들로 구성되어 있는지 살펴보고, 필요하다 생각되는 설정들이 있다면 자유롭게 설정 | ||
- [x] ESLint, Prettier를 추가하고 본인만의 Lint 룰을 세팅 | ||
- [x] emotion 스타일 라이브러리를 추가하고, reset css를 적용 | ||
- [x] gitignore를 추가하고, 프로젝트에 불필요한 코드들은 정리 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
const { override, addWebpackAlias } = require('customize-cra'); | ||
const path = require('path'); | ||
|
||
module.exports = override( | ||
addWebpackAlias({ | ||
'@components': path.resolve(__dirname, 'src/components'), | ||
'@utils': path.resolve(__dirname, 'src/utils'), | ||
'@styles': path.resolve(__dirname, 'src/styles') | ||
}) | ||
); |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아쉽게도 요것은 달성하지 못했습니다!