Clean up getPostThreadV2 settings/params in prep for future work (#9179)
* Deprecate prioritizeFollowedUsers * Bump API package
This commit is contained in:
+1
-1
@@ -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",
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
@@ -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],
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
},
|
||||
|
||||
@@ -25,7 +25,7 @@ export const createPostThreadOtherQueryKey = (
|
||||
|
||||
export type PostThreadParams = Pick<
|
||||
AppBskyUnspeccedGetPostThreadV2.QueryParams,
|
||||
'sort' | 'prioritizeFollowedUsers'
|
||||
'sort'
|
||||
> & {
|
||||
anchor?: string
|
||||
view: 'tree' | 'linear'
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user