import { useParams } from '@gatsbyjs/reach-router'; import React, { useCallback, useEffect, useState } from 'react'; import { Utils } from '../../../utils/utils'; import { gettext } from '../../../utils/constants'; import Loading from '../../../components/loading'; import SetQuotaDialog from '../../../components/dialog/sysadmin-dialog/set-quota'; import instAdminAPI from '../api'; export default function UserInfo() { const [isLoading, setIsLoading] = useState(true); const [user, setUser] = useState(null); const [isShowEditDialog, setIsShowEditDialog] = useState(false); const params = useParams(); useEffect(() => { instAdminAPI.getInstitutionUserInfo(decodeURIComponent(params.email)).then(res => { const user = res.data; setUser(user); setIsLoading(false); }); }, [params.email]); const toggleSetQuotaDialog = useCallback(() => { setIsShowEditDialog(!isShowEditDialog); }, [isShowEditDialog]); const updateQuota = useCallback((quote) => { instAdminAPI.setInstitutionUserQuote(user.email, quote).then(res => { // convert value to mb const newUser = {...user, quota_total: quote * 1000 * 1000}; setUser(newUser); }); }, [user]); if (isLoading) { return ; } return ( <>
{gettext('Avatar')}
{user.name}
{gettext('Email')}
{user.email}
{gettext('Name')}
{user.name || '--'}
{gettext('Space Used / Quota')}
{`${Utils.bytesToSize(user.quota_usage)} / ${user.quota_total > 0 ? Utils.bytesToSize(user.quota_total) : '--'}`}
{isShowEditDialog && ( )} ); }