diff --git a/components/dashboard/src/admin/UserDetail.tsx b/components/dashboard/src/admin/UserDetail.tsx index c7264776a19d39..2d763f4057af0f 100644 --- a/components/dashboard/src/admin/UserDetail.tsx +++ b/components/dashboard/src/admin/UserDetail.tsx @@ -21,7 +21,6 @@ export default function UserDetail(p: { user: User }) { const [activity, setActivity] = useState(false); const [user, setUser] = useState(p.user); const [accountStatement, setAccountStatement] = useState(); - const [viewAccountStatement, setViewAccountStatement] = useState(false); const [isStudent, setIsStudent] = useState(); const [editFeatureFlags, setEditFeatureFlags] = useState(false); const [editRoles, setEditRoles] = useState(false); @@ -86,6 +85,23 @@ export default function UserDetail(p: { user: User }) { const flags = getFlags(user, updateUser); const rop = getRopEntries(user, updateUser); + const downloadAccountStatement = async () => { + if (!accountStatement) { + return; + } + try { + const blob = new Blob([JSON.stringify(accountStatement)], { type: 'application/json' }); + const fileDownloadUrl = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = fileDownloadUrl; + link.setAttribute('download', 'AccountStatement.json'); + document.body.appendChild(link); + link.click(); + } catch (error) { + console.error(`Error downloading account statement `, error); + } + } + return <>
@@ -106,8 +122,8 @@ export default function UserDetail(p: { user: User }) { setViewAccountStatement(true) + label: 'Download Account Statement', + onClick: () => downloadAccountStatement() }, { label: 'Grant 20 Extra Hours', onClick: async () => { @@ -176,15 +192,6 @@ export default function UserDetail(p: { user: User }) { }
- setViewAccountStatement(false)} title="Edit Roles" buttons={[ - - ]}> -
- { - JSON.stringify(accountStatement, null, ' ') - } -
-
; }