import { Button, Checkbox, DatePicker, FormContainer, FormItem, Input, Notification, Select, Tabs, toast, } from '@/components/ui' import Dialog from '@/components/ui/Dialog' import DateTimepicker from '@/components/ui/DatePicker/DateTimepicker' import Table from '@/components/ui/Table' import TBody from '@/components/ui/Table/TBody' import Td from '@/components/ui/Table/Td' import Th from '@/components/ui/Table/Th' import THead from '@/components/ui/Table/THead' import Tr from '@/components/ui/Table/Tr' import TabContent from '@/components/ui/Tabs/TabContent' import TabList from '@/components/ui/Tabs/TabList' import TabNav from '@/components/ui/Tabs/TabNav' import { deleteClaimUser, getUserDetail, postClaimUser, putUserDetail, putUserLookout, } from '@/services/identity.service' import { useLocalization } from '@/utils/hooks/useLocalization' import dayjs from 'dayjs' import { Field, FieldArray, FieldProps, Form, Formik, FormikHelpers } from 'formik' import { useEffect, useState } from 'react' import { Helmet } from 'react-helmet' import { FaLockOpen, FaUser, FaFileAlt, FaTrashAlt } from 'react-icons/fa' import { useParams } from 'react-router-dom' import * as Yup from 'yup' import { SelectBoxOption } from '@/types/shared' import { ConfirmDialog, Container } from '@/components/shared' import { AssignedClaimViewModel, UserInfoViewModel } from '@/proxy/admin/models' import { APP_NAME } from '@/constants/app.constant' export interface ClaimTypeDto { claimType: string claimValue: string } function UserDetails() { const { userId } = useParams() const { translate } = useLocalization() const [userDetails, setUserDetails] = useState() const [loading, setLoading] = useState(true) const [open, setOpen] = useState(false) const [confirmDeleteClaim, setConfirmDeleteClaim] = useState(null) const getUser = async () => { const { data } = await getUserDetail(userId || '') setUserDetails(data) } useEffect(() => { getUser() }, []) const scheme = Yup.object().shape({ claimType: Yup.string().required(), claimValue: Yup.string().required(), }) const handleSubmit = async ( values: ClaimTypeDto, { setSubmitting }: FormikHelpers, ) => { setLoading(true) setSubmitting(true) try { await postClaimUser({ userId, claimType: values.claimType, claimValue: values.claimValue }) toast.push( {translate('::Kaydet')} , { placement: 'top-end', }, ) setOpen(false) getUser() } catch (error) { toast.push( {'Hata'} , { placement: 'top-end', }, ) } finally { setLoading(false) setSubmitting(false) } } return userDetails ? ( <> }> {translate('::Abp.Identity.User.UserInformation')} }> {translate('::Abp.Identity.User.LockoutManagement')} }> {translate('::Abp.Identity.User.ClaimTypes')}
{ setSubmitting(true) await putUserDetail({ ...values }) toast.push( {translate('Kaydet')} , { placement: 'top-end', }, ) getUser() setSubmitting(false) }} > {({ isSubmitting, values }) => { const roles = values.roles const branches = values.branches return (
{/* Personal Information */}
{/* Şube Management */}
{translate('::Abp.Identity.User.UserInformation.BranchManagement')}
{({ form, remove, push }) => (
{branches && branches.length > 0 ? branches.map((_, index: number) => (
)) : null}
)}
{/* Role Management */}
{translate('::Abp.Identity.User.UserInformation.RoleManagement')}
{({ form, remove, push }) => (
{roles && roles.length > 0 ? roles.map((_, index: number) => (
)) : null}
)}
{/* Contact Information */}
{translate( '::Abp.Identity.User.UserInformation.ContactInformation', )}
{/* Account Timestamps */}
{translate('::Abp.Identity.User.UserInformation.AccountTimestamps')}
{({ field, form }: FieldProps) => ( { form.setFieldValue( field.name, date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss') : null, ) }} /> )} {({ field, form }: FieldProps) => ( )} {({ field, form }: FieldProps) => ( )}
) }}
{ setSubmitting(true) await putUserLookout({ ...values }) toast.push( {'Lockout bilgileri kaydedildi.'} , { placement: 'top-end', }, ) getUser() setSubmitting(false) }} > {({ isSubmitting, values }) => { const workHours = values.workHours const workHourOptions: SelectBoxOption[] = workHours.map((workHour) => ({ value: workHour.name, label: workHour.name, })) return (
{/* Account Status */}
{translate('::Abp.Identity.User.LockoutManagement.AccountStatus')}
{/* Login & Lockout Settings */}
{translate( '::Abp.Identity.User.LockoutManagement.LoginAndLockoutSettings', )}
{({ field, form }: FieldProps) => ( option.value === values.claimType)} onChange={(option) => form.setFieldValue(field.name, option?.value)} /> )}
) }} setConfirmDeleteClaim(null)} onConfirm={async () => { if (confirmDeleteClaim) { await deleteClaimUser(confirmDeleteClaim.id, userId) toast.push( {translate('::Abp.Identity.User.ClaimDeleted')} , { placement: 'top-end' }, ) setConfirmDeleteClaim(null) getUser() } }} >

{confirmDeleteClaim?.claimType} claim silmek istediğinize emin misiniz?

) : ( <> ) } export default UserDetails