localstorage 에 유저 정보가 있느냐 여부에 따라서 새로고침 하면 input form 이 뜰지 말지
결정 할 것이다. 유저가 정보를 입력하면, localstorage 에 저장되고, input 은 hide 된다.
input 이 hide 처리 되면 paintGreeting() 을 통해 Hello username 이 화면에 출력된다.
<body>
<form class="hidden" id="login-form">
<input
required
maxlength="15"
type="text"
placeholder="what is your name?" />
<button>Log In</button>
</form>
<h1 id="greeting" class="hidden"></h1>
</body>
const loginForm = document.querySelector("#login-form");
const loginInput = document.querySelector("#login-form input");
const greeting = document.querySelector("#greeting");
const HIDDEN_CLASSNAME = "hidden";
const USERNAME_KEY = "username"
function onLoginSubmit(event) {
event.preventDefault();
const username = loginInput.value;
localStorage.setItem(USERNAME_KEY, username)
loginForm.classList.add(HIDDEN_CLASSNAME);
paintGreeting()
}
function paintGreeting() {
const username = localStorage.getItem(USERNAME_KEY);
greeting.innerText = `Hello ${username}`
greeting.classList.remove(HIDDEN_CLASSNAME);
}
const savedUsername = localStorage.getItem(USERNAME_KEY);
if(savedUsername === null) {
loginForm.classList.remove(HIDDEN_CLASSNAME);
loginForm.addEventListener("submit", onLoginSubmit)
} else {
paintGreeting()
}