+ + Skip to login form + +
+
+
+
+
+ {/* Logo/Title */} +
+
+ House of Prayer Worship Logo +
+

+ HOP Worship App +

+

+ Worship Song Database +

+
+ + {!showReset ? ( + /* Login Form */ +
+ {systemWarning && ( +
+ + System Warning: +
+ {systemWarning} + +
+ )} + + {error && ( +
+ + {error} + +
+ )} + +
+ + setUsername(e.target.value)} + onKeyDown={(e) => { + if (e.key === "Enter" && !loading) { + e.preventDefault(); + handleLogin(e); + } + }} + placeholder="Enter username" + autoFocus + autoComplete="username" + disabled={loading} + required + aria-required="true" + aria-label="Username" + aria-describedby={error ? "login-error" : undefined} + /> +
+ +
+ + setPassword(e.target.value)} + onKeyDown={(e) => { + if (e.key === "Enter" && !loading) { + e.preventDefault(); + handleLogin(e); + } + }} + placeholder="Enter password" + autoComplete="current-password" + disabled={loading} + required + aria-required="true" + aria-label="Password" + aria-describedby={error ? "login-error" : undefined} + /> +
+ + {/* Three buttons - responsive layout */} +
+ + + {biometricAvailable && ( + + )} + + +
+
+ ) : ( + /* Password Reset Form */ +
+
+ +
+ +

Reset Password

+ + {resetError && ( +
+ + {resetError} + +
+ )} + +
+ + setNewPassword(e.target.value)} + placeholder="Enter new password (min 8 characters)" + required + /> +
+ +
+ + setConfirmPassword(e.target.value)} + placeholder="Confirm new password" + required + /> +
+ + +
+ )} + + {/* Footer */} +
+

+ + Secure Access • Encrypted Storage +

+
+
+
+
+
+
+