diff --git a/client/homebrew/pages/userPage/userPage.jsx b/client/homebrew/pages/userPage/userPage.jsx
index d6fe25b30..f6fae639d 100644
--- a/client/homebrew/pages/userPage/userPage.jsx
+++ b/client/homebrew/pages/userPage/userPage.jsx
@@ -1,12 +1,11 @@
const React = require('react');
-const createClass = require('create-react-class');
-const _ = require('lodash');
+const { useState } = React;
+const _ = require('lodash');
const ListPage = require('../basePages/listPage/listPage.jsx');
const Nav = require('naturalcrit/nav/nav.jsx');
const Navbar = require('../../navbar/navbar.jsx');
-
const RecentNavItem = require('../../navbar/recent.navitem.jsx').both;
const Account = require('../../navbar/account.navitem.jsx');
const NewBrew = require('../../navbar/newbrew.navitem.jsx');
@@ -14,69 +13,48 @@ const HelpNavItem = require('../../navbar/help.navitem.jsx');
const ErrorNavItem = require('../../navbar/error-navitem.jsx');
const VaultNavitem = require('../../navbar/vault.navitem.jsx');
-const UserPage = createClass({
- displayName : 'UserPage',
- getDefaultProps : function() {
- return {
- username : '',
- brews : [],
- query : '',
- error : null
- };
- },
- getInitialState : function() {
- const usernameWithS = this.props.username + (this.props.username.endsWith('s') ? `’` : `’s`);
+const UserPage = (props)=>{
+ props = {
+ username : '',
+ brews : [],
+ query : '',
+ ...props
+ };
- const brews = _.groupBy(this.props.brews, (brew)=>{
- return (brew.published ? 'published' : 'private');
- });
+ const [error, setError] = useState(null);
- const brewCollection = [
- {
- title : `${usernameWithS} published brews`,
- class : 'published',
- brews : brews.published
- }
- ];
- if(this.props.username == global.account?.username){
- brewCollection.push(
- {
- title : `${usernameWithS} unpublished brews`,
- class : 'unpublished',
- brews : brews.private
- }
- );
- }
+ const usernameWithS = props.username + (props.username.endsWith('s') ? `’` : `’s`);
+ const groupedBrews = _.groupBy(props.brews, (brew)=>brew.published ? 'published' : 'private');
- return {
- brewCollection : brewCollection
- };
- },
- errorReported : function(error) {
- this.setState({
- error
- });
- },
+ const brewCollection = [
+ {
+ title : `${usernameWithS} published brews`,
+ class : 'published',
+ brews : groupedBrews.published || []
+ },
+ ...(props.username === global.account?.username ? [{
+ title : `${usernameWithS} unpublished brews`,
+ class : 'unpublished',
+ brews : groupedBrews.private || []
+ }] : [])
+ ];
- navItems : function() {
- return
+ const navItems = (
+
- {this.state.error ?
- :
- null
- }
+ {error && ()}
-
+
- ;
- },
+
+ );
- render : function(){
- return ;
- }
-});
+ return (
+ setError(err)} />
+ );
+};
module.exports = UserPage;