aboutsummaryrefslogtreecommitdiffstats
path: root/frontend/src/components/Login.tsx
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-16 19:37:50 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-16 19:40:10 -0800
commitcba29e6aae637b04ff6eaf28f74bc15b6242b9ea (patch)
tree226753a3fcd18a6d45089dafcb1ee72557140aa8 /frontend/src/components/Login.tsx
parentcb6d0c9e330c27ff85ff065c2ea6dd1a756cbf6d (diff)
downloadneko-cba29e6aae637b04ff6eaf28f74bc15b6242b9ea.tar.gz
neko-cba29e6aae637b04ff6eaf28f74bc15b6242b9ea.tar.bz2
neko-cba29e6aae637b04ff6eaf28f74bc15b6242b9ea.zip
Remove legacy V2 React frontend and update build/test scripts to focus on Vanilla JS (V3)
Diffstat (limited to 'frontend/src/components/Login.tsx')
-rw-r--r--frontend/src/components/Login.tsx67
1 files changed, 0 insertions, 67 deletions
diff --git a/frontend/src/components/Login.tsx b/frontend/src/components/Login.tsx
deleted file mode 100644
index 87694cb..0000000
--- a/frontend/src/components/Login.tsx
+++ /dev/null
@@ -1,67 +0,0 @@
-import { useState, type FormEvent } from 'react';
-import { useNavigate } from 'react-router-dom';
-import './Login.css';
-
-import { apiFetch } from '../utils';
-
-export default function Login() {
- const [username, setUsername] = useState('neko');
- const [password, setPassword] = useState('');
- const [error, setError] = useState('');
- const navigate = useNavigate();
-
- const handleSubmit = async (e: FormEvent) => {
- e.preventDefault();
- setError('');
-
- try {
- // Use URLSearchParams to send as form-urlencoded, matching backend expectation
- const params = new URLSearchParams();
- params.append('username', username);
- params.append('password', password);
-
- const res = await apiFetch('/api/login', {
- method: 'POST',
- body: params,
- });
-
- if (res.ok) {
- navigate('/');
- } else {
- const data = await res.json();
- setError(data.message || 'Login failed');
- }
- } catch (_err) {
- setError('Network error');
- }
- };
-
- return (
- <div className="login-container">
- <form onSubmit={handleSubmit} className="login-form">
- <h1>neko rss mode</h1>
- <div className="form-group">
- <label htmlFor="username">username</label>
- <input
- id="username"
- type="text"
- value={username}
- onChange={(e) => setUsername(e.target.value)}
- />
- </div>
- <div className="form-group">
- <label htmlFor="password">password</label>
- <input
- id="password"
- type="password"
- value={password}
- onChange={(e) => setPassword(e.target.value)}
- autoFocus
- />
- </div>
- {error && <div className="error-message">{error}</div>}
- <button type="submit">login</button>
- </form>
- </div>
- );
-}