"use client" /* * File: PasswordScreen.tsx * Description: Password creation screen with gradient background and shared components. * Design & Developed by Tech4Biz Solutions * Copyright (c) Spurrin Innovations. All rights reserved. */ import type React from "react" import { useState } from "react" import { View, Text, StyleSheet, TextInput, TouchableOpacity } from "react-native" import { Button } from "../../../../shared/src/components/Button" import OnboardingContainer from "./OnboardingContainer" import IconContainer from "./IconContainer" import { Colors, Spacing, Typography } from "../../../../shared/src/theme" import { showError } from "../../../../shared/src/utils/helpers/Toast" import Icon from "react-native-vector-icons/Feather" interface PasswordScreenProps { onContinue: (password: string) => void onBack: () => void } const PasswordScreen: React.FC = ({ onContinue, onBack }) => { const [password, setPassword] = useState("") const [confirmPassword, setConfirmPassword] = useState("") const [isPasswordVisible, setPasswordVisible] = useState(false) const [isConfirmPasswordVisible, setConfirmPasswordVisible] = useState(false) const [loading, setLoading] = useState(false) const validatePassword = (pwd: string): boolean => { return pwd.length >= 8 } const handleContinue = () => { if (!password.trim() || !confirmPassword.trim()) { showError("Validation Error", "Both password fields are required.") return } if (!validatePassword(password)) { showError("Validation Error", "Password must be at least 8 characters long.") return } if (password !== confirmPassword) { showError("Validation Error", "Passwords do not match.") return } setLoading(true) setTimeout(() => { setLoading(false) onContinue(password) }, 1000) } return ( Create a password Password must be at least 8 characters setPasswordVisible(!isPasswordVisible)} style={styles.eyeIcon}> setConfirmPasswordVisible(!isConfirmPasswordVisible)} style={styles.eyeIcon}>