-
Notifications
You must be signed in to change notification settings - Fork 121
Open
Labels
ReactReact 관련 내용React 관련 내용html / css / jsjavascript 관련 내용javascript 관련 내용question질문으로 사용될 이슈질문으로 사용될 이슈
Milestone
Description
import './New.css';
import {useCounterContext} from "./CounterContext";
import Header from "./Header";
import {useNavigate} from "react-router-dom";
import React, {useState} from "react";
function New() {
const {addMenu, menus, loginStatus} = useCounterContext();
const [enteredNum, setEnterdNum] = useState("");
const changeEnteredNum = (e) => {
const value: string = e.target.value;
const removedCharacterValue = value.replace(/[^0-9]/g, '');
const removedCommaValue: number = Number(removedCharacterValue.replaceAll(",", ""));
setEnterdNum(removedCommaValue.toLocaleString());
};
const navigate = useNavigate();
const Goout = () => {
navigate("/stores/1");
};
const addbutton = () => {
const inputName = document.getElementById('name').value;
const inputType = document.getElementById('typeselect').value;
const inputImage = document.getElementById('image').value;
const inputDes = document.getElementById('description').value;
if (inputName === "" || enteredNum === ""|| inputType=== "") {
alert("빼먹은 부분이 없느지 확인해주세요");
} else {
let isexist = menus.some((menu)=>menu.name===inputName);
if (isexist === false) {
if (inputName.length <= 20) {
if (Number(enteredNum.replaceAll(",", ""))>=100 && Number(enteredNum.replaceAll(",", ""))<=1000000) {
addMenu(inputName, enteredNum, inputImage, inputType, inputDes);
Goout();
}
else {
alert("가격이 범위에 맞지 않습니다. (100<price<1000000)");
}
}
else {
alert("이름이 너무 깁니다.");
}
}
else {
alert("동일한 이름의 제품이 이미 존재합니다.");
}
}
};
if (loginStatus === true)
{
return 1;
}
else
{
alert("GoOut");
navigate(-1);
return 0;
}
{/*return (
<>
<Header/>
<section className="Newsection">
<div className="title">새 메뉴 추가</div>
<div className="nameadd-str">이름</div>
<input type="text" placeholder="맛있는와플" id="name" className="nameadd-box"/>
<div className="typeadd-str">종류</div>
<select id="typeselect" className="typeadd-box">
<option value='' selected>상품의 종류를 선택하세요</option>
<option value='coffee'>커피</option>
<option value='waffle'>와플</option>
<option value='beverage'>음료</option>
</select>
<div className="priceadd-str">가격</div>
<input type="text" value={enteredNum} onChange={changeEnteredNum} placeholder="5,000"
className="priceadd-box"/>
<span className="unit">원</span>
<div className="imageadd-str">상품 이미지</div>
<input type="text" placeholder="이미지 주소를 입력해주세요" id="image" className="imageadd-box"/>
<div className="desadd-str">설명</div>
<textarea placeholder="상품에 대한 자세한 설명을 입력해주세요" id="description" className="desadd-box"></textarea>
</section>
<button className="add" onClick={addbutton}>
추가
</button>
<button className="close" onClick={Goout}>
취소
</button>
</>
);*/}
}
export default New;
menus/new에 loginstatus가 false면 접근하지 못하게 하려고 합니다.
일단 new 다 만들어두었고 그 기능만 추가하면 됩니다.
하지만 테스트하는 과정에서 alert는 두번 뜨고 navigate(-1)은 작동을 안하는 것을 확인했습니다.
어떻게 고쳐야하나요?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ReactReact 관련 내용React 관련 내용html / css / jsjavascript 관련 내용javascript 관련 내용question질문으로 사용될 이슈질문으로 사용될 이슈