File size: 2,757 Bytes
db6c783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9296bbe
db6c783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Login – TrueWrite Scan</title>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-slate-950 text-white min-h-screen flex items-center justify-center">
  <div class="max-w-md w-full mx-4 bg-slate-900/70 border border-slate-800 rounded-2xl p-6 shadow-xl">
    <h1 class="text-2xl font-bold mb-1">Welcome back</h1>
    <p class="text-xs text-slate-400 mb-4">Login to continue using TrueWrite Scan.</p>

    <form id="loginForm" class="space-y-4">
      <div>
        <label class="block text-xs mb-1">Email</label>
        <input id="email" type="email" required
               class="w-full px-3 py-2 rounded-lg bg-slate-950 border border-slate-700 text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500" />
      </div>
      <div>
        <label class="block text-xs mb-1">Password</label>
        <input id="password" type="password" required
               class="w-full px-3 py-2 rounded-lg bg-slate-950 border border-slate-700 text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500" />
      </div>
      <p id="loginError" class="text-xs text-red-400 h-4"></p>
      <button type="submit"
              class="w-full py-2 rounded-lg bg-indigo-500 hover:bg-indigo-600 text-sm font-semibold">
        Login
      </button>
    </form>

    <p class="mt-4 text-xs text-slate-400 text-center">
      New to TrueWrite Scan?
      <a href="signup.html" class="text-indigo-300 underline underline-offset-2">Create account</a>
    </p>
  </div>

  <script>
    const BACKEND_URL = "https://gopalkrushnamahapatra-truewrite-scan-backend.hf.space";

    const form = document.getElementById("loginForm");
    const err = document.getElementById("loginError");

    form.addEventListener("submit", async (e) => {
      e.preventDefault();
      err.textContent = "";

      const email = document.getElementById("email").value.trim();
      const password = document.getElementById("password").value;

      try {
        const res = await fetch(`${BACKEND_URL}/api/login`, {
          method: "POST",
          headers: { "Content-Type": "application/json" },
          body: JSON.stringify({ email, password })
        });

        const data = await res.json();
        if (!res.ok) {
          err.textContent = data.detail || "Login failed";
          return;
        }

        localStorage.setItem("truewriteToken", data.token);
        localStorage.setItem("truewriteUser", JSON.stringify({
          name: data.name,
          email: data.email
        }));

        window.location.href = "dashboard.html";
      } catch (e2) {
        err.textContent = "Server error. Is backend running?";
      }
    });
  </script>
</body>
</html>