"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" import { PasswordIconSVG } from "../../../../shared/src/components/Icons/SvgIcons" interface SignUpData { email: string password: string first_name: string last_name: string username:string id_photo_url: {} hospital_id: string } interface PasswordScreenProps { onContinue: (password: string) => void onBack: () => void Data:SignUpData } const PasswordScreen: React.FC = ({ onContinue, onBack ,Data}) => { const [password, setPassword] = useState(Data.password) 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}>