Changeset 0b502c2 for chapterx-frontend/src/pages/auth/LoginPage.tsx
- Timestamp:
- 06/23/26 17:20:47 (13 days ago)
- Branches:
- main
- Children:
- 99c1e45
- Parents:
- b373fea
- File:
-
- 1 edited
-
chapterx-frontend/src/pages/auth/LoginPage.tsx (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
chapterx-frontend/src/pages/auth/LoginPage.tsx
rb373fea r0b502c2 6 6 import { useUIStore } from '../../store/uiStore' 7 7 import { Button } from '../../components/ui/Button' 8 import { Avatar } from '../../components/ui/Avatar'9 import { RoleBadge } from '../../components/ui/Badge'10 11 const quickUsers = [12 { username: 'admin_alex', name: 'Alex Admin', role: 'admin' as const },13 { username: 'elena_writes', name: 'Elena Dimitrova', role: 'writer' as const },14 { username: 'boris_writer', name: 'Boris Nikolov', role: 'writer' as const },15 { username: 'sara_reader', name: 'Sara Petkovska', role: 'regular' as const },16 ]17 8 18 9 export const LoginPage: React.FC = () => { 19 10 const navigate = useNavigate() 20 const { login , switchUser} = useAuthStore()11 const { login } = useAuthStore() 21 12 const { addToast } = useUIStore() 22 13 const [email, setEmail] = useState('') … … 49 40 } 50 41 51 const handleQuickLogin = (username: string) => {52 const { allUsers } = useAuthStore.getState()53 const user = allUsers.find(u => u.username === username)54 if (user) {55 switchUser(user.user_id)56 addToast(`Signed in as ${user.name}`)57 navigate('/')58 }59 }60 61 42 return ( 62 43 <div className="min-h-[80vh] flex items-center justify-center px-4 py-12"> … … 69 50 <h1 className="font-serif text-2xl font-bold text-white">Welcome back</h1> 70 51 <p className="text-slate-400 text-sm mt-2">Sign in to your account</p> 71 </div>72 73 {/* Quick login */}74 <div className="mb-6">75 <p className="text-xs text-slate-500 text-center mb-3">Quick demo login</p>76 <div className="grid grid-cols-2 gap-2">77 {quickUsers.map(u => (78 <button79 key={u.username}80 onClick={() => handleQuickLogin(u.username)}81 className="flex items-center gap-2 p-3 bg-slate-800 border border-slate-700 rounded-xl hover:border-indigo-500/50 hover:bg-slate-700/50 transition-all group"82 >83 <Avatar name={u.name} size="sm" />84 <div className="text-left min-w-0">85 <p className="text-white text-xs font-medium truncate">{u.name}</p>86 <RoleBadge role={u.role} />87 </div>88 </button>89 ))}90 </div>91 </div>92 93 <div className="flex items-center gap-3 mb-6">94 <div className="flex-1 h-px bg-slate-700" />95 <span className="text-slate-600 text-xs">or sign in with email</span>96 <div className="flex-1 h-px bg-slate-700" />97 52 </div> 98 53
Note:
See TracChangeset
for help on using the changeset viewer.
