Skip to content

Commit

Permalink
Merge pull request #102 from heonq/react-함헌규-sprint6
Browse files Browse the repository at this point in the history
[함헌규] sprint6
  • Loading branch information
kimjong95 authored Nov 9, 2024
2 parents 5a7ccb5 + 2bac93d commit ae52028
Show file tree
Hide file tree
Showing 56 changed files with 1,178 additions and 344 deletions.
39 changes: 39 additions & 0 deletions docs/sprint6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# 요구사항

## 기본 요구사항

### 랜딩 페이지

- [x] HTML과 CSS로 구현한 랜딩페이지를 React로 마이그레이션하세요.
- [x] 랜딩 페이지 url path는 "/"로 설정하세요.

### 중고마켓 페이지

- [x] 중고마켓 페이지 url path를 "/items"으로 설정하세요.
- [x] 페이지 주소가 "/items" 일 때 상단내비게이션바의 "중고마켓" 버튼의 색상은 "3692FF"입니다.
- [x] 중고마켓 페이지 판매 중인 상품은 본인이 만든 GET 메서드를 사용해 주세요.
- [x] 다만 좋아요 순 정렬 기능은 제외해 주세요.
- [x] 사진은 디폴트 이미지로 프론트엔드에서 처리해주세요.
- [x] 베스트 상품 목록 조회는 구현하지 않습니다.
- [x] '상품 등록하기' 버튼을 누르면 "/registration" 로 이동합니다. ( 빈 페이지 )

### 상품 등록 페이지

- [x] PC, Tablet, Mobile 디자인에 해당하는 상품 등록 페이지를 만들어 주세요.
- [x] 상품 등록 url path는 "/registration"입니다.
- [x] 상품 등록은 본인이 만든 POST 메서드를 사용해 주세요.
- [x] 등록 성공 시, 해당 상품 상세 페이지로 이동합니다. (빈페이지)

## 심화 요구사항

### 상품 등록 페이지

- [x] 모든 입력 input box에 빈 값이 있을 경우, 등록 버튼이 비활성화됩니다.
- [x] 태그를 입력한 후 엔터키를 누르면, 그 태그가 칩 형태로 쌓입니다.
- [ ] 상품명, 상품 소개, 판매 가격, 태그에 대한 유효성 검사 Custom Hook을 만들어주세요. 유효성 검사를 통과하지 않을 경우, 각 input에 빨간색 테두리와, 각각의 Input 아래에 빨간색 에러 메시지를 보여주세요.

- 유효한 조건
- 상품명: 1자 이상, 10자 이내
- 상품 소개: 10자 이상, 100자 이내
- 판매 가격: 1자 이상, 숫자
- 태그: 5글자 이내
41 changes: 14 additions & 27 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,25 @@
import js from '@eslint/js'
import globals from 'globals'
import react from 'eslint-plugin-react'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
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";

export default [
{ ignores: ['dist'] },
export default tseslint.config(
{ ignores: ["dist"] },
{
files: ['**/*.{js,jsx}'],
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ["**/*.{ts,tsx}"],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
settings: { react: { version: '18.3' } },
plugins: {
react,
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
"react-hooks": reactHooks,
"react-refresh": reactRefresh,
},
rules: {
...js.configs.recommended.rules,
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
...reactHooks.configs.recommended.rules,
'react/jsx-no-target-blank': 'off',
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
},
},
]
}
);
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading

0 comments on commit ae52028

Please sign in to comment.