@@ -5,12 +5,13 @@ import Session from 'supertokens-node/recipe/session'
55import { GetServerSideProps } from 'next'
66import Page from 'components/Page'
77import style from './admin.module.css'
8- import { isUserAdmin , UserWithSupertokens } from 'services/userService'
8+ import { fetchUserWithSupertokens , isUserAdmin , UserWithSupertokens } from 'services/userService'
99import { useRouter } from 'next/router'
1010import RegisteredUsers from 'components/Admin/RegisteredUsers'
1111import TableContainer from '../../components/TableContainer/TableContainer'
1212import EyeIcon from 'assets/eye-icon.png'
1313import Image from 'next/image'
14+ import { removeUnserializableFields } from 'utils'
1415
1516export const getServerSideProps : GetServerSideProps = async ( context ) => {
1617 // this runs on the backend, so we must call init on supertokens-node SDK
@@ -29,7 +30,9 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
2930 }
3031 if ( session === undefined ) return
3132 const userId = session ?. getUserId ( )
32- const user = await supertokensNode . getUser ( userId )
33+ const user = await fetchUserWithSupertokens ( userId )
34+ removeUnserializableFields ( user . userProfile )
35+
3336 const isAdmin = await isUserAdmin ( userId )
3437 return {
3538 props : {
@@ -61,8 +64,8 @@ export default function Admin ({ user, isAdmin }: IProps): JSX.Element {
6164 useEffect ( ( ) => {
6265 void ( async ( ) => {
6366 const ok = await ( await fetch ( 'chronikStatus' ) ) . json ( )
64- const subscribedEcashAddresses = ok . ecash . map ( ( value : string ) => ( { address : value } ) )
65- const subscribedBitcoincashAddresses = ok . bitcoincash . map ( ( value : string ) => ( { address : value } ) )
67+ const subscribedEcashAddresses = ok . ecash ? .map ( ( value : string ) => ( { address : value } ) )
68+ const subscribedBitcoincashAddresses = ok . bitcoincash ? .map ( ( value : string ) => ( { address : value } ) )
6669 setEcashSubscribedAddresses ( subscribedEcashAddresses )
6770 setBitcoincashSubscribedAddresses ( subscribedBitcoincashAddresses )
6871 const ok2 = await ( await fetch ( '/api/users' ) ) . json ( )
@@ -99,9 +102,9 @@ export default function Admin ({ user, isAdmin }: IProps): JSX.Element {
99102 < h2 > Admin Dashboard</ h2 >
100103 < div className = { style . admin_ctn } >
101104 < h3 > eCash</ h3 >
102- < TableContainer columns = { columns } data = { ecashSubscribedAddresses } ssr />
105+ < TableContainer columns = { columns } data = { ecashSubscribedAddresses ?? [ ] } ssr />
103106 < h3 > Bitcoin Cash</ h3 >
104- < TableContainer columns = { columns } data = { bitcoincashSubscribedAddresses } ssr />
107+ < TableContainer columns = { columns } data = { bitcoincashSubscribedAddresses ?? [ ] } ssr />
105108 < a
106109 target = "_blank"
107110 rel = "noopener noreferrer"
0 commit comments