WEB/JavaScript

[크롬 앱 만들기]#4.6 Loading Username | localStorage

Harimad 2022. 1. 17. 16:20

Window.localStorage

https://developer.mozilla.org/ko/docs/Web/API/Window/localStorage

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Momentum App</title>
  <link rel="stylesheet" href="style.css">
  <style>
    .hidden { display: none;  }
  </style>
</head>
<body>
    <form class="hidden" id="login-form">
      <input required maxlength="15" type="text" placeholder="What is your name?"/>
      <input class="btn" type="submit" value="Log In" />
    </form>
    <h1 id="greeting" class="hidden"></h1>

  <script>
    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();

      loginForm.classList.add(HIDDEN_CLASSNAME);
      const username = loginInput.value;
      localStorage.setItem(USERNAME_KEY, username);
      paintGeetings(username);
    }
    
    function paintGeetings(username) {
      greeting.classList.remove(HIDDEN_CLASSNAME);
      greeting.innerText = `hello ${username}`;
    }
    
    const savedUsername = localStorage.getItem(USERNAME_KEY);

    if (savedUsername === null) { // show the form
      loginForm.classList.remove(HIDDEN_CLASSNAME);
      loginForm.addEventListener('submit', onLoginSubmit);
    } else { // show the greetings
      paintGeetings(savedUsername);
    }
  </script>
</body>
</html>