diff --git a/client/src/components/ListItemLink.js b/client/src/components/ListItemLink.js
index c72a268..8080de2 100644
--- a/client/src/components/ListItemLink.js
+++ b/client/src/components/ListItemLink.js
@@ -1,4 +1,4 @@
-import { useMemo, forwardRef } from 'react'
+import { useMemo, forwardRef } from 'react';
 import PropTypes from 'prop-types';
 import ListItem from '@mui/material/ListItem';
 import ListItemIcon from '@mui/material/ListItemIcon';
@@ -6,20 +6,23 @@
 import { Link as RouterLink } from 'react-router-dom';
 
 function ListItemLink(props) {
-  const { icon, primary, secondary, to, account } = props
+  const { icon, primary, secondary, to, account } = props;
 
   const renderLink = useMemo(
-    () => forwardRef((itemProps, ref) => {
-    console.log("LIST ITEM LINK: ", account, itemProps)
-    return <RouterLink to={to} ref={ref} {...itemProps} state={account}/>}),
-    [to])
+    () =>
+      forwardRef((itemProps, ref) => {
+        console.log('LIST ITEM LINK: ', account, itemProps);
+        return <RouterLink to={to} ref={ref} {...itemProps} state={account} />;
+      }),
+    [to]
+  );
 
   return (
     <ListItem button component={renderLink}>
       {icon ? <ListItemIcon>{icon}</ListItemIcon> : null}
       <ListItemText primary={primary} secondary={secondary} />
     </ListItem>
-  )
+  );
 }
 
 ListItemLink.propTypes = {
@@ -27,7 +30,7 @@
   primary: PropTypes.string.isRequired,
   secondary: PropTypes.string,
   to: PropTypes.string.isRequired,
-  account: PropTypes.object
-}
+  account: PropTypes.object,
+};
 
-export default ListItemLink
\ No newline at end of file
+export default ListItemLink;
