55063367ea
ksh-v2-work의 POP 화면 디자이너 기능을 main에 병합한다. [병합 내용] - pop-card-list-v2: 슬롯 기반 CSS Grid 카드 컴포넌트 (12종 셀 타입) - pop-status-bar: 독립 상태 칩 컴포넌트 (카운트 순환 문제 해결) - pop-scanner: 바코드/QR 스캐너 + 멀티필드 파싱 - pop-profile: 사용자 프로필/PC전환/로그아웃 컴포넌트 - pop-button: 설정 패널 UX 전면 개선 + 제어 실행 기능 - pop-search: 날짜 입력 타입 + 연결 탭 일관성 통합 - POP 모드 네비게이션: PC <-> POP 양방향 전환 + 로그인 POP 모드 토글 - 타임라인 범용화 + 상태 값 매핑 동적 배열 전환 - 다중 액션 체이닝 + 외부 테이블 선택 + 카드 클릭 모달 [충돌 해결 4건] - authController.ts: 양쪽 통합 (스마트공장 로그 + POP 랜딩 경로) - AppLayout.tsx: 양쪽 통합 (메뉴 드래그 + POP 모드 메뉴, 리디자인 UI + POP 모드 항목) - ConnectionEditor.tsx: ksh-v2-work 선택 (하위 테이블 필터 구조) + CSS 변수 적용 - pop-button.tsx: ksh-v2-work 선택 (자연어 UX + 제어 실행) + CSS 변수 스타일 유지
43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
"use client";
|
|
|
|
import { useLogin } from "@/hooks/useLogin";
|
|
import { LoginHeader } from "@/components/auth/LoginHeader";
|
|
import { LoginForm } from "@/components/auth/LoginForm";
|
|
import { LoginFooter } from "@/components/auth/LoginFooter";
|
|
|
|
export default function LoginPage() {
|
|
const {
|
|
formData,
|
|
isLoading,
|
|
error,
|
|
showPassword,
|
|
isPopMode,
|
|
handleInputChange,
|
|
handleLogin,
|
|
togglePasswordVisibility,
|
|
togglePopMode,
|
|
} = useLogin();
|
|
|
|
return (
|
|
<div className="flex min-h-screen flex-col items-center justify-center bg-muted/40 p-4">
|
|
<div className="w-full max-w-md space-y-6">
|
|
<LoginHeader />
|
|
|
|
<LoginForm
|
|
formData={formData}
|
|
isLoading={isLoading}
|
|
error={error}
|
|
showPassword={showPassword}
|
|
isPopMode={isPopMode}
|
|
onInputChange={handleInputChange}
|
|
onSubmit={handleLogin}
|
|
onTogglePassword={togglePasswordVisibility}
|
|
onTogglePop={togglePopMode}
|
|
/>
|
|
|
|
<LoginFooter />
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|