diff --git a/src/components/feed-item/index.tsx b/src/components/feed-item/index.tsx index 250fb664c..bf2d43f5d 100644 --- a/src/components/feed-item/index.tsx +++ b/src/components/feed-item/index.tsx @@ -43,8 +43,8 @@ const TokenHover = ({ nft, visible }: { nft: NFT; visible: boolean }) => { } export const FeedItem = ({ nft }: { nft: NFT }) => { - const [nsfwFriendly, photosensitiveFriendly] = useLocalSettings( - (state) => [state.nsfwFriendly, state.photosensitiveFriendly], + const [nsfwFriendly, photosensitiveFriendly, skipModeration] = useLocalSettings( + (state) => [state.nsfwFriendly, state.photosensitiveFriendly, state.has_seen_moderation], shallow ) const zen = useLocalSettings((st) => st.zen) @@ -70,7 +70,7 @@ export const FeedItem = ({ nft }: { nft: NFT }) => { // onMouseLeave={() => setHover(false)} className={containerClasses} > - {nft.isModerated && ( + {nft.isModerated && !skipModeration && (
MODERATED
diff --git a/src/context/localSettingsStore.ts b/src/context/localSettingsStore.ts index 2e46bae8e..31793310f 100644 --- a/src/context/localSettingsStore.ts +++ b/src/context/localSettingsStore.ts @@ -29,6 +29,7 @@ export type RPC_NODES = (typeof rpc_nodes)[number] interface LocalSettingsState { applyTheme: (theme: Theme) => void has_seen_banner: boolean + has_seen_moderation: boolean nsfwFriendly: boolean photosensitiveFriendly: boolean startFeed: FeedType @@ -46,6 +47,7 @@ interface LocalSettingsState { setImgproxy: (imgproxy: boolean) => void setViewMode: (mode: ViewMode) => void setHasSeenBanner: (seen: boolean) => void + setHasSeenModeration: (seen: boolean) => void setZen: (zen: boolean) => void theme: Theme themeDark: Theme @@ -73,6 +75,7 @@ const defaultValues = { tilted: false, imgproxy: true, has_seen_banner: false, + has_seen_moderation: false, } // TODO: replace all the "set" methods with one that merges the state with the provided partial object export const useLocalSettings = create()( @@ -81,6 +84,7 @@ export const useLocalSettings = create()( (set, get) => ({ ...defaultValues, setHasSeenBanner: (has_seen_banner) => set({ has_seen_banner }), + setHasSeenModeration: (has_seen_moderation) => set({ has_seen_moderation }), setTilted: (tilted) => set({ tilted }), setImgproxy: (imgproxy) => set({ imgproxy }), toggleViewMode: () => diff --git a/src/pages/config/Settings.jsx b/src/pages/config/Settings.jsx index 390bda975..dfc1f7908 100644 --- a/src/pages/config/Settings.jsx +++ b/src/pages/config/Settings.jsx @@ -44,6 +44,8 @@ export const Settings = () => { setImgproxy, has_seen_banner, setHasSeenBanner, + has_seen_moderation, + setHasSeenModeration, ] = useLocalSettings((st) => [ st.nsfwFriendly, st.setNsfwFriendly, @@ -61,6 +63,8 @@ export const Settings = () => { st.setImgproxy, st.has_seen_banner, st.setHasSeenBanner, + st.has_seen_moderation, + st.setHasSeenModeration, ]) return ( @@ -170,6 +174,17 @@ export const Settings = () => { label={'Hide banner for last announcement'} /> )} +