File tree Expand file tree Collapse file tree 3 files changed +21
-9
lines changed
components/pages/AddItemPage Expand file tree Collapse file tree 3 files changed +21
-9
lines changed Original file line number Diff line number Diff line change @@ -4,12 +4,13 @@ import { useState } from 'react';
44import InputField from '../../UI/InputField' ;
55import ImageUpload from '../../UI/ImageUpload' ;
66import TagInput from '../../UI/Taginput' ;
7+ import useFormatNumber from '../../../hooks/useFormatNumber' ;
78import { ColorTypes } from '../../../styles/theme' ;
89
910function AddItemPage ( ) {
1011 const [ name , setName ] = useState ( '' ) ;
1112 const [ description , setDescription ] = useState ( '' ) ;
12- const [ price , setPrice ] = useState ( '' ) ;
13+ const [ price , handlePriceChange ] = useFormatNumber ( '' ) ;
1314 const [ tags , setTags ] = useState ( [ ] ) ;
1415
1516 const isDisabled = name . trim ( ) && description . trim ( ) && price . trim ( ) && tags . length > 0 ;
@@ -47,11 +48,11 @@ function AddItemPage() {
4748 />
4849 < InputField
4950 label = "판매 가격"
50- type = "number "
51+ type = "text "
5152 placeholder = "판매 가격을 입력해주세요"
5253 isTextArea = { false }
5354 value = { price }
54- onChange = { ( e ) => setPrice ( e . target . value ) }
55+ onChange = { handlePriceChange }
5556 />
5657 < TagInput
5758 tags = { tags }
Original file line number Diff line number Diff line change 1+ import { useState } from 'react' ;
2+
3+ export default function useFormatNumber ( initialValue = '' ) {
4+ const [ value , setValue ] = useState ( initialValue ) ;
5+
6+ // 천단위 콤마 함수
7+ const formatNumber = ( value ) => {
8+ const onlyNumber = value . replace ( / [ ^ 0 - 9 ] / g, '' ) ;
9+ return onlyNumber . replace ( / \B (? = ( \d { 3 } ) + (? ! \d ) ) / g, ',' ) ;
10+ } ;
11+
12+ const handleChange = ( e ) => {
13+ setValue ( formatNumber ( e . target . value ) ) ;
14+ } ;
15+
16+ return [ value , handleChange ] ;
17+ }
Original file line number Diff line number Diff line change @@ -79,12 +79,6 @@ const GlobalStyle = createGlobalStyle`
7979 textarea {
8080 resize: none;
8181 }
82-
83- input[type='number']::-webkit-outer-spin-button,
84- input[type='number']::-webkit-inner-spin-button {
85- -webkit-appearance: none;
86- margin: 0;
87- }
8882` ;
8983
9084export default GlobalStyle ;
You can’t perform that action at this time.
0 commit comments