diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index b3e35922b..6719fedac 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -13,7 +13,7 @@ const USERPAGE_GROUP_VISIBILITY_PREFIX = 'HB_listPage_visibility_group'; const DEFAULT_SORT_TYPE = 'alpha'; const DEFAULT_SORT_DIR = 'asc'; -const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navItems = <>, reportError = null, query }) => { +const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navItems = <>, reportError = null, query })=>{ const [filterString, setFilterString] = useState(query?.filter || ''); const [filterTags, setFilterTags] = useState([]); const [sortType, setSortType] = useState(query?.sort || null); @@ -24,27 +24,27 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI const sortTypeRef = useRef(sortType); const sortDirRef = useRef(sortDir); - useEffect(() => { + useEffect(()=>{ groupVisibilityRef.current = groupVisibility; }, [groupVisibility]); - useEffect(() => { + useEffect(()=>{ sortTypeRef.current = sortType; }, [sortType]); - useEffect(() => { + useEffect(()=>{ sortDirRef.current = sortDir; }, [sortDir]); - useEffect(() => { + useEffect(()=>{ window.onbeforeunload = saveToLocalStorage; - if (typeof window !== 'undefined') { + if(typeof window !== 'undefined') { const newSortType = sortType ?? (localStorage.getItem(USERPAGE_SORT_TYPE) || DEFAULT_SORT_TYPE); const newSortDir = sortDir ?? (localStorage.getItem(USERPAGE_SORT_DIR) || DEFAULT_SORT_DIR); updateUrl(filterString, newSortType, newSortDir); - const namedBrewCollection = brewCollection.reduce((visibility, brewGroup) => { + const namedBrewCollection = brewCollection.reduce((visibility, brewGroup)=>{ visibility[brewGroup.class] = (localStorage.getItem(`${USERPAGE_GROUP_VISIBILITY_PREFIX}_${brewGroup.class}`) ?? 'true') == 'true'; return visibility; }, {}); @@ -54,29 +54,29 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI setSortDir(newSortDir); } - return () => { + return ()=>{ window.onbeforeunload = null; }; }, []); - const saveToLocalStorage = () => { - brewCollection.forEach((brewGroup) => { + 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.
; + const renderBrews = (brews)=>{ + if(!brews || !brews.length) return
No Brews.
; - return _.map(brews, (brew, idx) => { + return _.map(brews, (brew, idx)=>{ return ( { + updateListFilter={(tag)=>{ updateUrl(filterString, sortType, sortDir, tag); }} /> @@ -84,31 +84,31 @@ const ListPage = ({ brewCollection = [{ title: '', class: '', brews: [] }], navI }); }; - const sortBrewOrder = (brew) => { + const sortBrewOrder = (brew)=>{ const title = brew.title || 'No Title'; const mapping = { - 'alpha': _.deburr(title.trim().toLowerCase()), - 'created': moment(brew.createdAt).format(), - 'updated': moment(brew.updatedAt).format(), - 'views': brew.views, - 'latest': moment(brew.lastViewed).format(), + 'alpha' : _.deburr(title.trim().toLowerCase()), + 'created' : moment(brew.createdAt).format(), + 'updated' : moment(brew.updatedAt).format(), + 'views' : brew.views, + 'latest' : moment(brew.lastViewed).format(), }; return mapping[sortType]; }; - const handleSortOptionChange = (event) => { + const handleSortOptionChange = (event)=>{ updateUrl(filterString, event.target.value, sortDir); setSortType(event.target.value); }; - const handleSortDirChange = (event) => { + const handleSortDirChange = (event)=>{ const newDir = sortDir == 'asc' ? 'desc' : 'asc'; updateUrl(filterString, sortType, newDir); setSortDir(newDir); }; - const renderSortOption = (sortTitle, sortValue) => { + const renderSortOption = (sortTitle, sortValue)=>{ return (