import React, { useState, useCallback } from 'react'; import { useTranslation } from 'next-i18next'; import { Modal, ModalHeader, ModalBody, ModalFooter, Nav, NavLink, TabContent, TabPane, } from 'reactstrap'; import { toastSuccess, toastError } from '~/client/util/toastr'; import { usePersonalSettings, useSWRxPersonalExternalAccounts } from '~/stores/personal-settings'; import { LdapAuthTest } from '../Admin/Security/LdapAuthTest'; type Props = { isOpen: boolean, onClose: () => void, } const AssociateModal = (props: Props): JSX.Element => { const { t } = useTranslation(); const { mutate: mutatePersonalExternalAccounts } = useSWRxPersonalExternalAccounts(); const { associateLdapAccount } = usePersonalSettings(); const [activeTab, setActiveTab] = useState(1); const { isOpen, onClose } = props; const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const closeModalHandler = useCallback(() => { onClose(); setUsername(''); setPassword(''); }, [onClose]); const clickAddLdapAccountHandler = useCallback(async() => { try { await associateLdapAccount({ username, password }); mutatePersonalExternalAccounts(); closeModalHandler(); toastSuccess(t('security_settings.updated_general_security_setting')); } catch (err) { toastError(err); } }, [associateLdapAccount, closeModalHandler, mutatePersonalExternalAccounts, password, t, username]); return ( { t('admin:user_management.create_external_account') }
setUsername(username)} onChangePassword={password => setPassword(password)} /> TBD TBD TBD TBD
); }; export default AssociateModal;