diff options
author | dan <dan.abramov@gmail.com> | 2023-11-17 17:31:26 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-17 09:31:26 -0800 |
commit | c858b583072d7858f50ee0d56bb76dbce5a9c13d (patch) | |
tree | 6fa7e969abc71b1b21c7586856bf013b8a3a96c8 /src/state/queries/preferences | |
parent | 9c8a1b8a3118f6a6994a3c6cf8e5b70ef10049ab (diff) | |
download | voidsky-c858b583072d7858f50ee0d56bb76dbce5a9c13d.tar.zst |
Do less work (#1953)
Diffstat (limited to 'src/state/queries/preferences')
-rw-r--r-- | src/state/queries/preferences/index.ts | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index fe719225d..e7fa3b15b 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -1,11 +1,6 @@ -import {useEffect, useState} from 'react' +import {useMemo} from 'react' import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query' -import { - LabelPreference, - BskyFeedViewPreference, - ModerationOpts, -} from '@atproto/api' -import isEqual from 'lodash.isequal' +import {LabelPreference, BskyFeedViewPreference} from '@atproto/api' import {track} from '#/lib/analytics/analytics' import {getAge} from '#/lib/strings/time' @@ -91,21 +86,16 @@ export function usePreferencesQuery() { export function useModerationOpts() { const {currentAccount} = useSession() - const [opts, setOpts] = useState<ModerationOpts | undefined>() const prefs = usePreferencesQuery() - useEffect(() => { + const opts = useMemo(() => { if (!prefs.data) { return } - // only update this hook when the moderation options change - const newOpts = getModerationOpts({ + return getModerationOpts({ userDid: currentAccount?.did || '', preferences: prefs.data, }) - if (!isEqual(opts, newOpts)) { - setOpts(newOpts) - } - }, [prefs.data, currentAccount, opts, setOpts]) + }, [currentAccount?.did, prefs.data]) return opts } |