feat: Add CI/CD pipeline and code quality improvements
- Add GitHub Actions workflow for automated CI/CD - Configure Node.js 18.x and 20.x matrix testing - Add TypeScript type checking step - Add ESLint code quality checks with enhanced rules - Add Prettier formatting verification - Add production build validation - Upload build artifacts for deployment - Set up automated testing on push/PR - Replace console.log with environment-aware logger - Add pre-commit hooks for code quality - Exclude archive folder from linting 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -15,12 +15,10 @@ const Login = () => {
|
||||
isSettingUpTables,
|
||||
loginError,
|
||||
setLoginError,
|
||||
handleLogin
|
||||
handleLogin,
|
||||
} = useLogin();
|
||||
const navigate = useNavigate();
|
||||
const {
|
||||
user
|
||||
} = useAuth();
|
||||
const { user } = useAuth();
|
||||
|
||||
// 이미 로그인된 경우 메인 페이지로 리다이렉트
|
||||
useEffect(() => {
|
||||
@@ -28,24 +26,44 @@ const Login = () => {
|
||||
navigate("/");
|
||||
}
|
||||
}, [user, navigate]);
|
||||
return <div className="min-h-screen flex flex-col items-center justify-center p-6 bg-neuro-background">
|
||||
return (
|
||||
<div className="min-h-screen flex flex-col items-center justify-center p-6 bg-neuro-background">
|
||||
<div className="w-full max-w-md">
|
||||
<div className="text-center mb-8">
|
||||
<h1 className="text-3xl font-bold text-neuro-income mb-2">젤리의 적자탈출</h1>
|
||||
<p className="text-gray-500">계정에 로그인하여 예산 관리를 시작하세요</p>
|
||||
<h1 className="text-3xl font-bold text-neuro-income mb-2">
|
||||
젤리의 적자탈출
|
||||
</h1>
|
||||
<p className="text-gray-500">
|
||||
계정에 로그인하여 예산 관리를 시작하세요
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<LoginForm email={email} setEmail={setEmail} password={password} setPassword={setPassword} showPassword={showPassword} setShowPassword={setShowPassword} isLoading={isLoading} isSettingUpTables={isSettingUpTables} loginError={loginError} handleLogin={handleLogin} />
|
||||
|
||||
|
||||
<LoginForm
|
||||
email={email}
|
||||
setEmail={setEmail}
|
||||
password={password}
|
||||
setPassword={setPassword}
|
||||
showPassword={showPassword}
|
||||
setShowPassword={setShowPassword}
|
||||
isLoading={isLoading}
|
||||
isSettingUpTables={isSettingUpTables}
|
||||
loginError={loginError}
|
||||
handleLogin={handleLogin}
|
||||
/>
|
||||
|
||||
<div className="text-center mb-4">
|
||||
<p className="text-gray-500">
|
||||
계정이 없으신가요?{" "}
|
||||
<Link to="/register" className="text-neuro-income font-medium hover:underline">
|
||||
<Link
|
||||
to="/register"
|
||||
className="text-neuro-income font-medium hover:underline"
|
||||
>
|
||||
회원가입
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>;
|
||||
</div>
|
||||
);
|
||||
};
|
||||
export default Login;
|
||||
export default Login;
|
||||
|
||||
Reference in New Issue
Block a user