
import React, { useState } from 'react';
import type { Page } from '../types';
import { LoginIcon } from '../components/Icons';

interface LoginPageProps {
  handleLogin: (mobile: string, password: string) => boolean;
  navigateTo: (page: Page) => void;
}

const LoginPage: React.FC<LoginPageProps> = ({ handleLogin, navigateTo }) => {
    const [mobile, setMobile] = useState('');
    const [password, setPassword] = useState('');
    const [error, setError] = useState('');

    const onSubmit = (e: React.FormEvent) => {
        e.preventDefault();
        setError('');
        const success = handleLogin(mobile, password);
        if (success) {
            navigateTo('userDashboard');
        } else {
            setError('আপনার মোবাইল নম্বর অথবা পাসওয়ার্ড সঠিক নয়।');
        }
    };

    return (
        <div className="flex items-center justify-center min-h-[calc(100vh-160px)] bg-gray-50 py-12 px-4 sm:px-6 lg:px-8">
            <div className="max-w-md w-full space-y-8">
                <div>
                    <h2 className="mt-6 text-center text-3xl font-extrabold text-gray-900">আপনার অ্যাকাউন্টে লগইন করুন</h2>
                </div>
                <form className="mt-8 space-y-6 bg-white p-8 rounded-lg shadow-lg" onSubmit={onSubmit}>
                    <div className="rounded-md shadow-sm -space-y-px">
                        <div>
                            <label htmlFor="mobile" className="sr-only">মোবাইল নম্বর</label>
                            <input id="mobile" name="mobile" type="tel" required value={mobile} onChange={(e) => setMobile(e.target.value)} className="appearance-none rounded-none relative block w-full px-3 py-3 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-t-md focus:outline-none focus:ring-green-500 focus:border-green-500 focus:z-10 sm:text-sm" placeholder="মোবাইল নম্বর" />
                        </div>
                        <div>
                            <label htmlFor="password"className="sr-only">পাসওয়ার্ড</label>
                            <input id="password" name="password" type="password" required value={password} onChange={(e) => setPassword(e.target.value)} className="appearance-none rounded-none relative block w-full px-3 py-3 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-green-500 focus:border-green-500 focus:z-10 sm:text-sm" placeholder="পাসওয়ার্ড" />
                        </div>
                    </div>

                    {error && <p className="text-sm text-red-600 text-center">{error}</p>}
                    
                    <div>
                        <button type="submit" className="group relative w-full flex justify-center py-3 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500">
                            <span className="absolute left-0 inset-y-0 flex items-center pl-3">
                                <LoginIcon className="h-5 w-5 text-green-500 group-hover:text-green-400" />
                            </span>
                            লগইন করুন
                        </button>
                    </div>

                    <div className="text-center">
                        <p className="text-sm text-gray-600">
                            অ্যাকাউন্ট নেই?{' '}
                            <a onClick={() => navigateTo('register')} className="font-medium text-green-600 hover:text-green-500 cursor-pointer">
                                নিবন্ধন করুন
                            </a>
                        </p>
                    </div>
                </form>
            </div>
        </div>
    );
};

export default LoginPage;
