WoT implemented, plus other fixes #160

Merged
freakoverse merged 36 commits from staging into master 2024-11-20 16:39:08 +00:00
Showing only changes of commit 8b5b9a6e30 - Show all commits

View File

@ -54,18 +54,29 @@ export const useFilteredMods = (
} }
const wotFilter = (mods: ModDetails[]) => { const wotFilter = (mods: ModDetails[]) => {
// Determine the filtering logic based on the WOT filter option // Determine the filtering logic based on the WOT filter option and user state
// when user is not logged in use Site_Only
if (!userState.auth) {
return mods.filter((mod) => isInWoT(siteWot, siteWotLevel, mod.author))
}
// when user is logged, allow other filter selections
const isWoTNpub =
userState.user?.npub === import.meta.env.VITE_SITE_WOT_NPUB
switch (filterOptions.wot) { switch (filterOptions.wot) {
case WOTFilterOptions.None: case WOTFilterOptions.None:
return mods // Only admins can choose None, use siteWoT for others
return isWoTNpub
? mods
: mods.filter((mod) => isInWoT(siteWot, siteWotLevel, mod.author))
case WOTFilterOptions.Site_Only: case WOTFilterOptions.Site_Only:
return mods.filter((mod) => return mods.filter((mod) =>
isInWoT(siteWot, siteWotLevel, mod.author) isInWoT(siteWot, siteWotLevel, mod.author)
) )
case WOTFilterOptions.Mine_Only: case WOTFilterOptions.Mine_Only:
return mods.filter((mod) => // Only admins can choose Mine_Only, use siteWoT for others
isInWoT(userWot, userWotLevel, mod.author) return isWoTNpub
) ? mods.filter((mod) => isInWoT(userWot, userWotLevel, mod.author))
: mods.filter((mod) => isInWoT(siteWot, siteWotLevel, mod.author))
case WOTFilterOptions.Site_And_Mine: case WOTFilterOptions.Site_And_Mine:
return mods.filter( return mods.filter(
(mod) => (mod) =>