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: