Login_20250812094252.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // entrypoints/popup/pages/Login.tsx
  2. import React, { useState } from 'react';
  3. import { useNavigate } from 'react-router-dom';
  4. import { Button } from '@alifd/next';
  5. export default function Login({ setIsLoggedIn }: { setIsLoggedIn: (loggedIn: boolean) => void }) {
  6. const [username, setUsername] = useState('');
  7. const [password, setPassword] = useState('');
  8. const navigate = useNavigate();
  9. const handleLogin = (e: React.FormEvent) => {
  10. e.preventDefault();
  11. // 这里添加实际的登录逻辑
  12. if (username && password) {
  13. // 模拟登录成功
  14. // 你可以在这里保存用户信息到 localStorage 或 Chrome storage
  15. localStorage.setItem('isLoggedIn', 'true');
  16. setIsLoggedIn(true);
  17. // 跳转到首页
  18. navigate('/');
  19. }
  20. };
  21. return (
  22. <div className="p-4">
  23. <Button type="primary">Fusion Design Button</Button>
  24. <h1 className="text-xl mb-4">登录</h1>
  25. <form onSubmit={handleLogin}>
  26. <div className="mb-3">
  27. <input
  28. type="text"
  29. placeholder="用户名"
  30. className="w-full p-2 border rounded"
  31. value={username}
  32. onChange={(e) => setUsername(e.target.value)}
  33. />
  34. </div>
  35. <div className="mb-3">
  36. <input
  37. type="password"
  38. placeholder="密码"
  39. className="w-full p-2 border rounded"
  40. value={password}
  41. onChange={(e) => setPassword(e.target.value)}
  42. />
  43. </div>
  44. <button
  45. type="submit"
  46. className="w-full bg-blue-500 text-white p-2 rounded hover:bg-blue-600"
  47. >
  48. 登录
  49. </button>
  50. </form>
  51. </div>
  52. );
  53. }