File size: 2,435 Bytes
62e5b72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eae5239
 
 
 
62e5b72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7db43bc
 
62e5b72
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Joblin - Create Account</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="auth-page">
  <div class="auth-card">
      <a href="index.html" class="auth-brand">
        <div class="auth-brand-icon">J</div>
        <h1>Job<span>lin</span></h1>
      </a>
    <p class="subtitle">Create your account</p>
    <form id="registerForm">
      <div class="form-group">
        <label>Your Name</label>
        <input type="text" id="name" placeholder="John Doe" autocomplete="name">
      </div>
      <div class="form-group">
        <label>Email</label>
        <input type="email" id="email" placeholder="you@example.com" required autocomplete="email">
      </div>
      <div class="form-group">
        <label>Password</label>
        <div class="pwd-wrapper">
          <input type="password" id="password" placeholder="At least 6 characters" required minlength="6" autocomplete="new-password">
          <span class="pwd-toggle" onclick="togglePwd('password',this)">&#128065;</span>
        </div>
      </div>
      <button type="submit" class="btn btn-primary btn-lg" style="width:100%" id="registerBtn">Create Account</button>
    </form>
    <p class="footer-link">Already have an account? <a href="login.html">Sign in</a></p>
  </div>
</div>
<script src="app.js"></script>
<script>
const btn = document.getElementById("registerBtn");
document.getElementById("registerForm").addEventListener("submit", async (e) => {
  e.preventDefault();
  btn.disabled = true;
  btn.innerHTML = '<span class="spinner"></span> Creating account...';
  try {
    const data = await apiFetch("POST", "/api/auth/register", {
      name: document.getElementById("name").value,
      email: document.getElementById("email").value,
      password: document.getElementById("password").value,
    });
    localStorage.setItem("joblin_token", data.token);
    setCurrentUser(data.user);
    window.location.href = "dashboard.html";
  } catch (err) {
    showToast(err.message, "error");
    btn.disabled = false;
    btn.textContent = "Create Account";
  }
});
if (getToken()) window.location.href = "dashboard.html";
const params = new URLSearchParams(window.location.search);
if (params.get("email")) document.getElementById("email").value = params.get("email");
</script>
</body>
</html>