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