import { useState, useCallback } from 'react' import { useNavigate } from 'react-router-dom' import './AuthPage.css' import Toast from '../components/Toast' import { useToast } from '../hooks/useToast' import { apiCall } from '../utils/api' // ── PASSWORD STRENGTH ───────────────────────────────────────────────────── function PasswordStrength({ value }) { if (!value) return null let score = 0 if (value.length >= 8) score++ if (/[A-Z]/.test(value)) score++ if (/[0-9]/.test(value)) score++ if (/[^A-Za-z0-9]/.test(value)) score++ const colors = ['#e06060', '#e0a060', '#d4b800', '#1c8a5f'] const labels = ['Sangat Lemah', 'Lemah', 'Sedang', 'Kuat'] const color = score > 0 ? colors[score - 1] : 'var(--txt-3)' return (
Platform pemetaan terpadu untuk rumah ibadah dan{' '} rumah miskin di wilayah Pontianak — mendukung pendataan, monitoring, dan pembinaan sosial berbasis lokasi.
Akses sistem disesuaikan berdasarkan peran yang Anda pilih.
{isPengurus ? 'Masukkan kredensial akun Pengurus Anda.' : 'Masukkan email dan kata sandi Anda untuk melanjutkan.'}
{/* Role mismatch error banner */} {errors.role && (Isi data di bawah untuk membuat akun Pengguna SIPKEM.
{errors.api && (