Clean up getPostThreadV2 settings/params in prep for future work (#9179)

* Deprecate prioritizeFollowedUsers

* Bump API package
This commit is contained in:
Eric Bailey
2025-11-06 10:42:08 -06:00
committed by GitHub
parent ec2c580aae
commit 7bf00424c4
8 changed files with 10 additions and 79 deletions
+1 -1
View File
@@ -72,7 +72,7 @@
"icons:optimize": "svgo -f ./assets/icons"
},
"dependencies": {
"@atproto/api": "^0.17.6",
"@atproto/api": "^0.18.0",
"@bitdrift/react-native": "^0.6.8",
"@braintree/sanitize-url": "^6.0.2",
"@bsky.app/alf": "^0.1.5",
+1 -30
View File
@@ -14,7 +14,6 @@ import {
import {atoms as a, useTheme} from '#/alf'
import * as Toggle from '#/components/forms/Toggle'
import {Bubbles_Stroke2_Corner2_Rounded as BubblesIcon} from '#/components/icons/Bubble'
import {PersonGroup_Stroke2_Corner2_Rounded as PersonGroupIcon} from '#/components/icons/Person'
import {Tree_Stroke2_Corner0_Rounded as TreeIcon} from '#/components/icons/Tree'
import * as Layout from '#/components/Layout'
import {Text} from '#/components/Typography'
@@ -24,14 +23,7 @@ type Props = NativeStackScreenProps<CommonNavigatorParams, 'PreferencesThreads'>
export function ThreadPreferencesScreen({}: Props) {
const t = useTheme()
const {_} = useLingui()
const {
sort,
setSort,
view,
setView,
prioritizeFollowedUsers,
setPrioritizeFollowedUsers,
} = useThreadPreferences({save: true})
const {sort, setSort, view, setView} = useThreadPreferences({save: true})
return (
<Layout.Screen testID="threadPreferencesScreen">
@@ -88,27 +80,6 @@ export function ThreadPreferencesScreen({}: Props) {
</View>
</SettingsList.Group>
<SettingsList.Group contentContainerStyle={{minHeight: 0}}>
<SettingsList.ItemIcon icon={PersonGroupIcon} />
<SettingsList.ItemText>
<Trans>Prioritize your Follows</Trans>
</SettingsList.ItemText>
<Toggle.Item
type="checkbox"
name="prioritize-follows"
label={_(msg`Prioritize your Follows`)}
value={prioritizeFollowedUsers}
onChange={value => setPrioritizeFollowedUsers(value)}
style={[a.w_full, a.gap_md]}>
<Toggle.LabelText style={[a.flex_1]}>
<Trans>
Show replies by people you follow before all other replies
</Trans>
</Toggle.LabelText>
<Toggle.Platform />
</Toggle.Item>
</SettingsList.Group>
<SettingsList.Group>
<SettingsList.ItemIcon icon={TreeIcon} />
<SettingsList.ItemText>
-1
View File
@@ -16,7 +16,6 @@ export const DEFAULT_HOME_FEED_PREFS: UsePreferencesQueryResponse['feedViewPrefs
export const DEFAULT_THREAD_VIEW_PREFS: ThreadViewPreferences = {
sort: 'hotness',
prioritizeFollowedUsers: true,
lab_treeViewEnabled: false,
}
+2 -9
View File
@@ -1,8 +1,4 @@
import {
type BskyFeedViewPreference,
type BskyPreferences,
type BskyThreadViewPreference,
} from '@atproto/api'
import {type BskyFeedViewPreference, type BskyPreferences} from '@atproto/api'
export type UsePreferencesQueryResponse = Omit<
BskyPreferences,
@@ -18,10 +14,7 @@ export type UsePreferencesQueryResponse = Omit<
userAge: number | undefined
}
export type ThreadViewPreferences = Pick<
BskyThreadViewPreference,
'prioritizeFollowedUsers'
> & {
export type ThreadViewPreferences = {
sort: 'hotness' | 'oldest' | 'newest' | 'most-likes' | 'random' | string
lab_treeViewEnabled?: boolean
}
@@ -23,8 +23,6 @@ export type ThreadPreferences = {
setSort: (sort: string) => void
view: ThreadViewOption
setView: (view: ThreadViewOption) => void
prioritizeFollowedUsers: boolean
setPrioritizeFollowedUsers: (prioritize: boolean) => void
}
export function useThreadPreferences({
@@ -43,9 +41,6 @@ export function useThreadPreferences({
treeViewEnabled: !!serverPrefs?.lab_treeViewEnabled,
}),
)
const [prioritizeFollowedUsers, setPrioritizeFollowedUsers] = useState(
!!serverPrefs?.prioritizeFollowedUsers,
)
/**
* If we get a server update, update local state
@@ -59,7 +54,6 @@ export function useThreadPreferences({
* Update
*/
setSort(normalizeSort(serverPrefs.sort))
setPrioritizeFollowedUsers(serverPrefs.prioritizeFollowedUsers)
setView(
normalizeView({
treeViewEnabled: !!serverPrefs.lab_treeViewEnabled,
@@ -70,7 +64,6 @@ export function useThreadPreferences({
logger.metric('thread:preferences:load', {
sort: serverPrefs.sort,
view: serverPrefs.lab_treeViewEnabled ? 'tree' : 'linear',
prioritizeFollowedUsers: serverPrefs.prioritizeFollowedUsers,
})
})
}
@@ -86,7 +79,6 @@ export function useThreadPreferences({
logger.metric('thread:preferences:update', {
sort: prefs.sort,
view: prefs.lab_treeViewEnabled ? 'tree' : 'linear',
prioritizeFollowedUsers: prefs.prioritizeFollowedUsers,
})
} catch (e) {
logger.error('useThreadPreferences failed to save', {
@@ -101,7 +93,6 @@ export function useThreadPreferences({
if (save && userUpdatedPrefs.current) {
savePrefs({
sort,
prioritizeFollowedUsers,
lab_treeViewEnabled: view === 'tree',
})
userUpdatedPrefs.current = false
@@ -121,13 +112,6 @@ export function useThreadPreferences({
},
[setView],
)
const setPrioritizeFollowedUsersWrapped = useCallback(
(next: boolean) => {
userUpdatedPrefs.current = true
setPrioritizeFollowedUsers(next)
},
[setPrioritizeFollowedUsers],
)
return useMemo(
() => ({
@@ -137,19 +121,8 @@ export function useThreadPreferences({
setSort: setSortWrapped,
view,
setView: setViewWrapped,
prioritizeFollowedUsers,
setPrioritizeFollowedUsers: setPrioritizeFollowedUsersWrapped,
}),
[
isLoaded,
isSaving,
sort,
setSortWrapped,
view,
setViewWrapped,
prioritizeFollowedUsers,
setPrioritizeFollowedUsersWrapped,
],
[isLoaded, isSaving, sort, setSortWrapped, view, setViewWrapped],
)
}
-5
View File
@@ -49,7 +49,6 @@ export function usePostThread({anchor}: {anchor?: string}) {
setSort: baseSetSort,
view,
setView: baseSetView,
prioritizeFollowedUsers,
} = useThreadPreferences()
const below = useMemo(() => {
return view === 'linear'
@@ -63,11 +62,9 @@ export function usePostThread({anchor}: {anchor?: string}) {
anchor,
sort,
view,
prioritizeFollowedUsers,
})
const postThreadOtherQueryKey = createPostThreadOtherQueryKey({
anchor,
prioritizeFollowedUsers,
})
const query = useQuery<UsePostThreadQueryResult>({
@@ -79,7 +76,6 @@ export function usePostThread({anchor}: {anchor?: string}) {
branchingFactor: view === 'linear' ? LINEAR_VIEW_BF : TREE_VIEW_BF,
below,
sort: sort,
prioritizeFollowedUsers: prioritizeFollowedUsers,
})
/*
@@ -167,7 +163,6 @@ export function usePostThread({anchor}: {anchor?: string}) {
async queryFn() {
const {data} = await agent.app.bsky.unspecced.getPostThreadOtherV2({
anchor: anchor!,
prioritizeFollowedUsers,
})
return data
},
+1 -1
View File
@@ -25,7 +25,7 @@ export const createPostThreadOtherQueryKey = (
export type PostThreadParams = Pick<
AppBskyUnspeccedGetPostThreadV2.QueryParams,
'sort' | 'prioritizeFollowedUsers'
'sort'
> & {
anchor?: string
view: 'tree' | 'linear'
+4 -4
View File
@@ -84,10 +84,10 @@
tlds "^1.234.0"
zod "^3.23.8"
"@atproto/api@^0.17.6":
version "0.17.6"
resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.17.6.tgz#1fccd939f5f1010397c4d57110b1a0d8673058a6"
integrity sha512-0iYCD8+LOsHjHjwJcqGPfJN/h4b+IpU3GjOV0TSLk0XdCaxpHBKNu3wgCJVst4DhVjXcgsr2qQoRZ3Jja2LupA==
"@atproto/api@^0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.18.0.tgz#d8c54ddc4521d915f0af238a4bfebd119e18197f"
integrity sha512-2GxKPhhvMocDjRU7VpNj+cvCdmCHVAmRwyfNgRLMrJtPZvrosFoi9VATX+7eKN0FZvYvy8KdLSkCcpP2owH3IA==
dependencies:
"@atproto/common-web" "^0.4.3"
"@atproto/lexicon" "^0.5.1"