diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx index 1b3ad0608..e09296388 100644 --- a/client/homebrew/pages/homePage/homePage.jsx +++ b/client/homebrew/pages/homePage/homePage.jsx @@ -22,26 +22,27 @@ const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx'); const { DEFAULT_BREW } = require('../../../../server/brewDefaults.js'); const HomePage =(props)=>{ - const { - brew = DEFAULT_BREW, - ver = '0.0.0' - } = props; + props = { + brew : DEFAULT_BREW, + ver : '0.0.0', + ...props + }; - const [brew , setBrew] = useState(brew); - const [welcomeText , setWelcomeText] = useState(brew.text); + const [brew , setBrew] = useState(props.brew); + const [welcomeText , setWelcomeText] = useState(props.brew.text); const [error , setError] = useState(undefined); const [currentEditorViewPageNum , setCurrentEditorViewPageNum] = useState(1); const [currentEditorCursorPageNum, setCurrentEditorCursorPageNum] = useState(1); const [currentBrewRendererPageNum, setCurrentBrewRendererPageNum] = useState(1); const [themeBundle , setThemeBundle] = useState({}); - editor : React.createRef(null), + const editorRef = useRef(null); - componentDidMount : function() { - fetchThemeBundle(this, this.props.brew.renderer, this.props.brew.theme); - }, + useEffect(()=>{ + fetchThemeBundle(setError, setThemeBundle, brew.renderer, brew.theme); + }, []); - const handleSave ()=>{ + const handleSave = ()=>{ request.post('/api') .send(this.state.brew) .end((err, res)=>{ @@ -53,24 +54,24 @@ const HomePage =(props)=>{ window.location = `/edit/${brew.editId}`; }); }; - - const handleSplitMove ()=>{ + + const handleSplitMove = ()=>{ this.editor.current.update(); }; - const handleEditorViewPageChange (pageNumber)=>{ + const handleEditorViewPageChange = (pageNumber)=>{ this.setState({ currentEditorViewPageNum: pageNumber }); }; - const handleEditorCursorPageChange (pageNumber)=>{ + const handleEditorCursorPageChange = (pageNumber)=>{ this.setState({ currentEditorCursorPageNum: pageNumber }); }; - const handleBrewRendererPageChange (pageNumber)=>{ + const handleBrewRendererPageChange = (pageNumber)=>{ this.setState({ currentBrewRendererPageNum: pageNumber }); }; - const handleTextChange (text)=>{ + const handleTextChange = (text)=>{ this.setState((prevState)=>({ brew : { ...prevState.brew, text: text }, })); @@ -97,33 +98,33 @@ const HomePage =(props)=>{ {renderNavbar()}
- +
-
+
Save current
diff --git a/shared/helpers.js b/shared/helpers.js index e09b0bdc4..3f91583d6 100644 --- a/shared/helpers.js +++ b/shared/helpers.js @@ -116,27 +116,21 @@ const printCurrentBrew = ()=>{ } }; -const fetchThemeBundle = async (obj, renderer, theme)=>{ +const fetchThemeBundle = async (setError, setThemeBundle, renderer, theme)=>{ if(!renderer || !theme) return; const res = await request .get(`/api/theme/${renderer}/${theme}`) .catch((err)=>{ - obj.setState({ error: err }); + setError(err) }); if(!res) { - obj.setState((prevState)=>({ - ...prevState, - themeBundle : {} - })); + setThemeBundle({}); return; } const themeBundle = res.body; themeBundle.joinedStyles = themeBundle.styles.map((style)=>``).join('\n\n'); - obj.setState((prevState)=>({ - ...prevState, - themeBundle : themeBundle, - error : null - })); + setThemeBundle(themeBundle); + setError(null); }; const debugTextMismatch = (clientTextRaw, serverTextRaw, label) => {