import Button from '@/components/ui/Button' import { FormContainer } from '@/components/ui/Form' import Input from '@/components/ui/Input' import Notification from '@/components/ui/Notification' import toast from '@/components/ui/toast' import { changePassword } from '@/proxy/account/account.service' import { useLocalization } from '@/utils/hooks/useLocalization' import FormDesription from '@/views/shared/FormDesription' import FormRow from '@/views/shared/FormRow' import { Field, Form, Formik } from 'formik' import { HiOutlineDesktopComputer, HiOutlineDeviceMobile, HiOutlineDeviceTablet, } from 'react-icons/hi' import * as Yup from 'yup' type LoginHistory = { type: string deviceName: string time: number location: string } type PasswordFormModel = { password: string newPassword: string confirmNewPassword: string } const LoginHistoryIcon = ({ type }: { type: string }) => { switch (type) { case 'Desktop': return case 'Mobile': return case 'Tablet': return default: return } } const validationSchema = Yup.object().shape({ password: Yup.string().required('Password Required'), newPassword: Yup.string() .required('Enter your new password') .min(6, 'Too Short!') .matches( /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{6,})/, 'Must Contain Uppercase, Lowercase, Number and Special Character', ), confirmNewPassword: Yup.string().oneOf([Yup.ref('newPassword'), ''], 'Password not match'), }) const Password = ({ data }: { data?: LoginHistory[] }) => { const onFormSubmit = async ( values: PasswordFormModel, setSubmitting: (isSubmitting: boolean) => void, ) => { const resp = await changePassword(values.password, values.newPassword) if (resp.status === 204) { toast.push(, { placement: 'top-center', }) } else { toast.push(, { placement: 'top-center', }) } setSubmitting(false) } const { translate } = useLocalization() return ( <> { setSubmitting(true) setTimeout(() => { onFormSubmit(values, setSubmitting) }, 1000) }} > {({ touched, errors, isSubmitting, resetForm }) => { const validatorProps = { touched, errors } return (
) }}
{/*
{data && (
{data.map((log, index) => (
{log.deviceName}
{index === 0 && ( Current )}
{log.location} • {dayjs.unix(log.time).format('DD-MMM-YYYY, hh:mm A')}
))}
)}
*/} ) } export default Password