diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less index 4b3751ca3..d091f636f 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less @@ -145,8 +145,8 @@ box-shadow : 0 4px 5px 0 #333333; .text { min-height : 54px; + padding-left : 5px; h2 { margin-bottom : 5px; } - .description { padding-left : 5px; } } .info { padding-left : 5px; } .links { @@ -398,7 +398,7 @@ } .storage { display : none; } } - .brewItem { + .brewItem { h2 { width : 200px; font-size : 1em; @@ -426,7 +426,7 @@ } .info { display : grid; - grid-template-areas : + grid-template-areas : 'tags pages views views' 'authors update update storage'; grid-template-columns : 2fr 1fr 1fr 20px; @@ -440,7 +440,7 @@ a, button { margin : 0; } } - } + } } } @container (max-width : 650px) { diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 802c3a14a..8b5da0997 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -1,6 +1,6 @@ /*eslint max-lines: ["warn", {"max": 300, "skipBlankLines": true, "skipComments": true}]*/ import './listPage.less'; -import React, { useEffect, useState, useRef, useMemo } from 'react'; +import React, { useEffect, useState, useMemo } from 'react'; import moment from 'moment'; import _ from 'lodash'; @@ -26,24 +26,7 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI const [layoutMode, setLayoutMode] = useState(DEFAULT_LAYOUT_MODE); const [themeMode, setThemeMode] = useState(DEFAULT_THEME_MODE); - const groupVisibilityRef = useRef(groupVisibility); - const sortTypeRef = useRef(sortType); - const sortDirRef = useRef(sortDir); - useEffect(()=>{ - groupVisibilityRef.current = groupVisibility; - }, [groupVisibility]); - - useEffect(()=>{ - sortTypeRef.current = sortType; - }, [sortType]); - - useEffect(()=>{ - sortDirRef.current = sortDir; - }, [sortDir]); - - useEffect(()=>{ - window.onbeforeunload = saveToLocalStorage; if(typeof window === 'undefined') return; const newSortType = sortType ?? (localStorage.getItem(USERPAGE_SORT_TYPE) || DEFAULT_SORT_TYPE); @@ -63,20 +46,8 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI setSortDir(newSortDir); setLayoutMode(newLayoutMode); setThemeMode(newThemeMode); - - return ()=>{ - window.onbeforeunload = null; - }; }, []); - const saveToLocalStorage = ()=>{ - brewCollection.forEach((brewGroup)=>{ - localStorage.setItem(`${USERPAGE_GROUP_VISIBILITY_PREFIX}_${brewGroup.class}`, `${groupVisibilityRef.current[brewGroup.class]}`); - }); - localStorage.setItem(USERPAGE_SORT_TYPE, sortTypeRef.current); - localStorage.setItem(USERPAGE_SORT_DIR, sortDirRef.current); - }; - const renderBrews = (brews)=>{ if(!brews || !brews.length) return
No Brews.
; @@ -108,6 +79,8 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI const handleSortOptionChange = (event)=>{ updateUrl(filterString, event.target.value, sortDir); setSortType(event.target.value); + localStorage.setItem(USERPAGE_SORT_TYPE, event.target.value); + return; }; const handleSortDirChange = (event)=>{ @@ -115,6 +88,8 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI updateUrl(filterString, sortType, newDir); setSortDir(newDir); + localStorage.setItem(USERPAGE_SORT_DIR, newDir); + return; }; const renderSortOption = (sortTitle, sortValue)=>{ @@ -187,7 +162,7 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI if(filterTags?.length == 0) return; return (
- Tags: + Tags: {_.map(filterTags, (tag, idx)=>{ const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/); return ( @@ -198,7 +173,7 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI updateUrl(filterString, sortType, sortDir, tag); }}> {matches[2]} - + ); })}
@@ -257,7 +232,13 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI }, [brewCollection, filterString, filterTags, sortType, sortDir]); const toggleBrewCollectionState = (brewGroupClass)=>{ - setGroupVisibility((prevVisibility)=>({ ...prevVisibility, [brewGroupClass]: !prevVisibility[brewGroupClass] })); + setGroupVisibility((prevVisibility)=>{ + const visible = !prevVisibility[brewGroupClass]; + + localStorage.setItem(`${USERPAGE_GROUP_VISIBILITY_PREFIX}_${brewGroupClass}`, visible); + + return {...prevVisibility, [brewGroupClass]: visible}; + }); }; const renderBrewCollection = (brewCollection)=>{ @@ -298,8 +279,8 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI
View: