Compare commits

..

3 Commits

Author SHA1 Message Date
Hailey 3b90ec079b reset suggested users 2025-04-04 17:03:09 -07:00
Hailey f5a888acd5 Merge remote-tracking branch 'origin/main' into explore/refetch 2025-04-04 17:01:00 -07:00
Eric Bailey 9760d3c1da Insert fresh interests and reset relevant queries 2025-04-04 11:48:22 -05:00
15 changed files with 897 additions and 1095 deletions
+40 -40
View File
@@ -86,12 +86,12 @@
"@radix-ui/react-focus-scope": "^1.1.2",
"@react-native-async-storage/async-storage": "1.23.1",
"@react-native-menu/menu": "^1.1.7",
"@react-native-picker/picker": "2.9.0",
"@react-native-picker/picker": "2.10.2",
"@react-navigation/bottom-tabs": "^6.5.20",
"@react-navigation/drawer": "^6.6.15",
"@react-navigation/native": "^6.1.17",
"@react-navigation/native-stack": "^6.9.26",
"@sentry/react-native": "~6.10.0",
"@sentry/react-native": "6.9.1",
"@tanstack/query-async-storage-persister": "^5.25.0",
"@tanstack/react-query": "^5.8.1",
"@tanstack/react-query-persist-client": "^5.25.0",
@@ -123,35 +123,35 @@
"emoji-mart": "^5.5.2",
"emoji-regex": "^10.4.0",
"eventemitter3": "^5.0.1",
"expo": "~52.0.42",
"expo-application": "~6.0.2",
"expo": "~52.0.19",
"expo-application": "^6.0.1",
"expo-blur": "^14.0.3",
"expo-build-properties": "~0.13.2",
"expo-camera": "~16.0.18",
"expo-clipboard": "~7.0.1",
"expo-dev-client": "~5.0.19",
"expo-device": "~7.0.3",
"expo-file-system": "~18.0.12",
"expo-font": "~13.0.4",
"expo-haptics": "~14.0.1",
"expo-image": "~2.0.7",
"expo-image-manipulator": "~13.0.6",
"expo-image-picker": "~16.0.6",
"expo-linear-gradient": "~14.0.2",
"expo-linking": "~7.0.5",
"expo-localization": "~16.0.1",
"expo-media-library": "~17.0.6",
"expo-navigation-bar": "~4.0.9",
"expo-notifications": "~0.29.14",
"expo-screen-orientation": "~8.0.4",
"expo-sharing": "~13.0.1",
"expo-splash-screen": "~0.29.22",
"expo-status-bar": "~2.0.1",
"expo-system-ui": "~4.0.9",
"expo-task-manager": "~12.0.6",
"expo-updates": "~0.27.4",
"expo-video": "~2.0.6",
"expo-web-browser": "~14.0.2",
"expo-build-properties": "^0.13.1",
"expo-camera": "~16.0.7",
"expo-clipboard": "^7.0.0",
"expo-dev-client": "^5.0.4",
"expo-device": "~7.0.1",
"expo-file-system": "^18.0.6",
"expo-font": "~13.0.1",
"expo-haptics": "^14.0.0",
"expo-image": "~2.0.3",
"expo-image-manipulator": "^13.0.5",
"expo-image-picker": "~16.0.3",
"expo-linear-gradient": "^14.0.1",
"expo-linking": "^7.0.3",
"expo-localization": "~16.0.0",
"expo-media-library": "~17.0.3",
"expo-navigation-bar": "~4.0.4",
"expo-notifications": "~0.29.11",
"expo-screen-orientation": "^8.0.2",
"expo-sharing": "^13.0.0",
"expo-splash-screen": "~0.29.18",
"expo-status-bar": "~2.0.0",
"expo-system-ui": "^4.0.4",
"expo-task-manager": "~12.0.3",
"expo-updates": "~0.26.10",
"expo-video": "^2.0.5",
"expo-web-browser": "~14.0.1",
"fast-text-encoding": "^1.0.6",
"history": "^5.3.0",
"hls.js": "^1.5.11",
@@ -169,12 +169,12 @@
"patch-package": "^6.5.1",
"postinstall-postinstall": "^2.1.0",
"psl": "^1.9.0",
"react": "18.3.1",
"react": "18.2.0",
"react-compiler-runtime": "19.0.0-beta-a7bf2bd-20241110",
"react-dom": "18.3.1",
"react-dom": "^18.2.0",
"react-image-crop": "^11.0.7",
"react-keyed-flatten-children": "^3.0.0",
"react-native": "0.76.9",
"react-native": "0.76.6",
"react-native-compressor": "1.10.3",
"react-native-date-picker": "^5.0.7",
"react-native-drawer-layout": "^4.1.1",
@@ -185,15 +185,15 @@
"react-native-ios-context-menu": "^1.15.3",
"react-native-keyboard-controller": "^1.14.5",
"react-native-mmkv": "^2.12.2",
"react-native-pager-view": "6.5.1",
"react-native-pager-view": "6.7.0",
"react-native-picker-select": "^9.3.1",
"react-native-progress": "bluesky-social/react-native-progress",
"react-native-qrcode-styled": "^0.3.3",
"react-native-reanimated": "~3.16.1",
"react-native-reanimated": "3.17.0-nightly-20241211-17e89ca24",
"react-native-root-siblings": "^4.1.1",
"react-native-safe-area-context": "4.12.0",
"react-native-screens": "~4.4.0",
"react-native-svg": "15.8.0",
"react-native-safe-area-context": "4.14.0",
"react-native-screens": "~4.3.0",
"react-native-svg": "^15.8.0",
"react-native-uitextview": "^1.4.0",
"react-native-url-polyfill": "^1.3.0",
"react-native-uuid": "^2.0.2",
@@ -201,7 +201,7 @@
"react-native-vision-camera": "^4.6.3",
"react-native-web": "~0.19.13",
"react-native-web-webview": "^1.0.2",
"react-native-webview": "13.12.5",
"react-native-webview": "13.12.3",
"react-remove-scroll-bar": "^2.3.6",
"react-responsive": "^9.0.2",
"react-textarea-autosize": "^8.5.3",
@@ -257,7 +257,7 @@
"husky": "^8.0.3",
"is-ci": "^3.0.1",
"jest": "^29.7.0",
"jest-expo": "~52.0.6",
"jest-expo": "^52.0.2",
"jest-junit": "^16.0.0",
"lint-staged": "^13.2.3",
"lockfile-lint": "^4.14.0",
-34
View File
@@ -1,34 +0,0 @@
import {View} from 'react-native'
import {atoms as a, useTheme, type ViewStyleProp} from '#/alf'
export function SubtleHover({style, hover}: ViewStyleProp & {hover: boolean}) {
const t = useTheme()
let opacity: number
switch (t.name) {
case 'dark':
opacity = 0.4
break
case 'dim':
opacity = 0.45
break
case 'light':
opacity = 0.5
break
}
return (
<View
style={[
a.absolute,
a.inset_0,
a.pointer_events_none,
a.transition_opacity,
t.atoms.bg_contrast_25,
style,
{opacity: hover ? opacity : 0},
]}
/>
)
}
+128 -181
View File
@@ -13,8 +13,8 @@ msgstr ""
"Language-Team: \n"
"Plural-Forms: \n"
#: src/components/ProgressGuide/FollowDialog.tsx:579
#: src/screens/Search/modules/ExploreSuggestedAccounts.tsx:118
#: src/components/ProgressGuide/FollowDialog.tsx:570
#: src/screens/Search/modules/ExploreSuggestedAccounts.tsx:112
msgid "(active)"
msgstr ""
@@ -112,7 +112,7 @@ msgstr ""
msgid "{0, plural, one {repost} other {reposts}}"
msgstr ""
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:77
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:75
msgid "{0, plural, other {{1} posts}}"
msgstr ""
@@ -316,12 +316,12 @@ msgid "{profileName} joined Bluesky using a starter pack {0} ago"
msgstr ""
#. The trending topic rank, i.e. "1. March Madness", "2. The Bachelor"
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:108
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:104
msgid "{rank}."
msgstr ""
#. trending topic time spent trending. should be as short as possible to fit in a pill
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:203
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:199
msgid "{type}h ago"
msgstr ""
@@ -397,7 +397,7 @@ msgstr ""
msgid "a message"
msgstr ""
#: src/Navigation.tsx:391
#: src/Navigation.tsx:382
#: src/screens/Settings/AboutSettings.tsx:34
#: src/screens/Settings/Settings.tsx:215
#: src/screens/Settings/Settings.tsx:218
@@ -424,11 +424,11 @@ msgstr ""
msgid "Accessibility"
msgstr ""
#: src/Navigation.tsx:343
#: src/Navigation.tsx:342
msgid "Accessibility Settings"
msgstr ""
#: src/Navigation.tsx:359
#: src/Navigation.tsx:358
#: src/screens/Login/LoginForm.tsx:194
#: src/screens/Settings/AccountSettings.tsx:45
#: src/screens/Settings/Settings.tsx:153
@@ -652,6 +652,7 @@ msgstr ""
msgid "Advanced"
msgstr ""
#: src/screens/Search/modules/ExploreSuggestedAccounts.tsx:86
#: src/view/screens/Notifications.tsx:86
msgid "All"
msgstr ""
@@ -755,7 +756,7 @@ msgstr ""
msgid "An error occurred while compressing the video."
msgstr ""
#: src/state/queries/explore-feed-previews.tsx:148
#: src/screens/Search/modules/ExploreFeedPreviews.tsx:118
msgid "An error occurred while fetching the feed."
msgstr ""
@@ -842,7 +843,7 @@ msgstr ""
msgid "Anybody can interact"
msgstr ""
#: src/Navigation.tsx:399
#: src/Navigation.tsx:390
#: src/screens/Settings/AppIconSettings/index.tsx:67
#: src/screens/Settings/AppIconSettings/SettingsListItem.tsx:18
#: src/screens/Settings/AppIconSettings/SettingsListItem.tsx:23
@@ -879,7 +880,7 @@ msgstr ""
msgid "App passwords"
msgstr ""
#: src/Navigation.tsx:311
#: src/Navigation.tsx:310
#: src/screens/Settings/AppPasswords.tsx:51
msgid "App Passwords"
msgstr ""
@@ -915,7 +916,7 @@ msgstr ""
msgid "Appeal this decision"
msgstr ""
#: src/Navigation.tsx:351
#: src/Navigation.tsx:350
#: src/screens/Settings/AppearanceSettings.tsx:85
#: src/screens/Settings/Settings.tsx:183
#: src/screens/Settings/Settings.tsx:186
@@ -1006,8 +1007,8 @@ msgstr ""
msgid "Autoplay options have moved to the <0>Content and Media settings</0>."
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:116
#: src/screens/Settings/ContentAndMediaSettings.tsx:122
#: src/screens/Settings/ContentAndMediaSettings.tsx:107
#: src/screens/Settings/ContentAndMediaSettings.tsx:113
msgid "Autoplay videos and GIFs"
msgstr ""
@@ -1121,7 +1122,7 @@ msgstr ""
msgid "Blocked accounts"
msgstr ""
#: src/Navigation.tsx:160
#: src/Navigation.tsx:159
#: src/view/screens/ModerationBlockedAccounts.tsx:101
msgid "Blocked Accounts"
msgstr ""
@@ -1252,7 +1253,7 @@ msgstr ""
msgid "Browse starter pack {displayName}"
msgstr ""
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:88
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:84
msgid "Browse topic {0}"
msgstr ""
@@ -1267,7 +1268,7 @@ msgstr ""
#: src/components/LabelingServiceCard/index.tsx:62
#: src/components/moderation/ReportDialog/index.tsx:672
#: src/screens/Search/components/StarterPackCard.tsx:102
#: src/screens/Search/Explore.tsx:749
#: src/screens/Search/Explore.tsx:791
msgid "By {0}"
msgstr ""
@@ -1301,7 +1302,7 @@ msgstr ""
#: src/screens/Deactivated.tsx:158
#: src/screens/Profile/Header/EditProfileDialog.tsx:220
#: src/screens/Profile/Header/EditProfileDialog.tsx:228
#: src/screens/Search/Shell.tsx:349
#: src/screens/Search/Shell.tsx:347
#: src/screens/Settings/AppIconSettings/index.tsx:44
#: src/screens/Settings/AppIconSettings/index.tsx:225
#: src/screens/Settings/components/ChangeHandleDialog.tsx:76
@@ -1357,7 +1358,7 @@ msgstr ""
msgid "Cancel reactivation and sign out"
msgstr ""
#: src/screens/Search/Shell.tsx:341
#: src/screens/Search/Shell.tsx:339
#: src/view/com/modals/ListAddRemoveUsers.tsx:88
msgid "Cancel search"
msgstr ""
@@ -1448,7 +1449,7 @@ msgstr ""
msgid "Changes hosting provider"
msgstr ""
#: src/Navigation.tsx:416
#: src/Navigation.tsx:407
#: src/view/shell/bottom-bar/BottomBar.tsx:205
#: src/view/shell/desktop/LeftNav.tsx:535
#: src/view/shell/Drawer.tsx:422
@@ -1466,7 +1467,7 @@ msgctxt "toast"
msgid "Chat muted"
msgstr ""
#: src/Navigation.tsx:426
#: src/Navigation.tsx:417
#: src/screens/Messages/components/InboxPreview.tsx:24
msgid "Chat request inbox"
msgstr ""
@@ -1477,7 +1478,7 @@ msgid "Chat requests"
msgstr ""
#: src/components/dms/ConvoMenu.tsx:75
#: src/Navigation.tsx:421
#: src/Navigation.tsx:412
#: src/screens/Messages/ChatList.tsx:328
msgid "Chat settings"
msgstr ""
@@ -1597,7 +1598,7 @@ msgstr ""
#: src/components/dms/ReportDialog.tsx:390
#: src/components/NewskieDialog.tsx:146
#: src/components/NewskieDialog.tsx:153
#: src/components/ProgressGuide/FollowDialog.tsx:436
#: src/components/ProgressGuide/FollowDialog.tsx:429
#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:117
#: src/components/StarterPack/Wizard/WizardEditListDialog.tsx:123
#: src/view/com/modals/ChangePassword.tsx:279
@@ -1698,7 +1699,7 @@ msgstr ""
msgid "Comics"
msgstr ""
#: src/Navigation.tsx:301
#: src/Navigation.tsx:300
#: src/view/screens/CommunityGuidelines.tsx:34
msgid "Community Guidelines"
msgstr ""
@@ -1792,7 +1793,7 @@ msgstr ""
msgid "Contact support"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:51
#: src/screens/Settings/ContentAndMediaSettings.tsx:50
msgid "Content & Media"
msgstr ""
@@ -1802,7 +1803,7 @@ msgstr ""
msgid "Content and media"
msgstr ""
#: src/Navigation.tsx:375
#: src/Navigation.tsx:374
msgid "Content and Media"
msgstr ""
@@ -1828,11 +1829,6 @@ msgstr ""
msgid "Content Not Available"
msgstr ""
#: src/screens/Settings/SettingsInterests.tsx:123
msgctxt "toast"
msgid "Content preferences updated!"
msgstr ""
#: src/components/moderation/ModerationDetailsDialog.tsx:50
#: src/components/moderation/ScreenHider.tsx:93
#: src/lib/moderation/useGlobalLabelStrings.ts:22
@@ -1976,16 +1972,11 @@ msgstr ""
msgid "Copy QR code"
msgstr ""
#. Confirm button text. Can be a short cheeky phrase that means "OK" e.g. "Copy that!"
#: src/screens/Search/modules/ExploreInterestsCard.tsx:48
msgid "Copy that!"
msgstr ""
#: src/screens/Settings/components/ChangeHandleDialog.tsx:426
msgid "Copy TXT record value"
msgstr ""
#: src/Navigation.tsx:306
#: src/Navigation.tsx:305
#: src/view/screens/CopyrightPolicy.tsx:31
msgid "Copyright Policy"
msgstr ""
@@ -2021,7 +2012,7 @@ msgstr ""
#: src/components/StarterPack/ProfileStarterPacks.tsx:178
#: src/components/StarterPack/ProfileStarterPacks.tsx:274
#: src/Navigation.tsx:451
#: src/Navigation.tsx:442
msgid "Create a starter pack"
msgstr ""
@@ -2350,7 +2341,7 @@ msgstr ""
msgid "Discourage apps from showing my account to logged-out users"
msgstr ""
#: src/screens/Search/Explore.tsx:362
#: src/screens/Search/Explore.tsx:420
msgid "Discover Feeds"
msgstr ""
@@ -2562,11 +2553,6 @@ msgstr ""
msgid "Edit interaction settings"
msgstr ""
#: src/screens/Search/modules/ExploreInterestsCard.tsx:98
#: src/screens/Search/modules/ExploreInterestsCard.tsx:105
msgid "Edit interests"
msgstr ""
#: src/view/screens/ProfileList.tsx:536
msgid "Edit list details"
msgstr ""
@@ -2575,7 +2561,7 @@ msgstr ""
msgid "Edit Moderation List"
msgstr ""
#: src/Navigation.tsx:316
#: src/Navigation.tsx:315
#: src/view/screens/Feeds.tsx:515
msgid "Edit My Feeds"
msgstr ""
@@ -2625,7 +2611,7 @@ msgstr ""
msgid "Edit your profile description"
msgstr ""
#: src/Navigation.tsx:456
#: src/Navigation.tsx:447
msgid "Edit your starter pack"
msgstr ""
@@ -2738,16 +2724,16 @@ msgstr ""
msgid "Enable this source only"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:132
#: src/screens/Settings/ContentAndMediaSettings.tsx:146
#: src/screens/Settings/ContentAndMediaSettings.tsx:123
#: src/screens/Settings/ContentAndMediaSettings.tsx:137
msgid "Enable trending topics"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:167
#: src/screens/Settings/ContentAndMediaSettings.tsx:158
msgid "Enable trending videos in your Discover feed"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:153
#: src/screens/Settings/ContentAndMediaSettings.tsx:144
msgid "Enable trending videos in your Discover feed."
msgstr ""
@@ -2831,7 +2817,7 @@ msgstr ""
msgid "Enters full screen"
msgstr ""
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:236
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:232
msgid "Entertainment"
msgstr ""
@@ -2962,13 +2948,6 @@ msgstr ""
msgid "Explicit sexual images."
msgstr ""
#: src/Navigation.tsx:640
#: src/screens/Search/Shell.tsx:307
#: src/view/shell/desktop/LeftNav.tsx:617
#: src/view/shell/Drawer.tsx:370
msgid "Explore"
msgstr ""
#: src/screens/Settings/AccountSettings.tsx:137
#: src/screens/Settings/AccountSettings.tsx:141
msgid "Export my data"
@@ -2978,8 +2957,8 @@ msgstr ""
msgid "Export My Data"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:84
#: src/screens/Settings/ContentAndMediaSettings.tsx:87
#: src/screens/Settings/ContentAndMediaSettings.tsx:83
#: src/screens/Settings/ContentAndMediaSettings.tsx:86
msgid "External media"
msgstr ""
@@ -2993,7 +2972,7 @@ msgstr ""
msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button."
msgstr ""
#: src/Navigation.tsx:335
#: src/Navigation.tsx:334
#: src/screens/Settings/ExternalMediaPreferences.tsx:31
msgid "External Media Preferences"
msgstr ""
@@ -3052,8 +3031,8 @@ msgstr ""
msgid "Failed to load conversations"
msgstr ""
#: src/screens/Search/Explore.tsx:401
#: src/screens/Search/Explore.tsx:440
#: src/screens/Search/Explore.tsx:459
#: src/screens/Search/Explore.tsx:498
msgid "Failed to load feeds preferences"
msgstr ""
@@ -3065,12 +3044,12 @@ msgstr ""
msgid "Failed to load past messages"
msgstr ""
#: src/screens/Search/Explore.tsx:394
#: src/screens/Search/Explore.tsx:433
#: src/screens/Search/Explore.tsx:452
#: src/screens/Search/Explore.tsx:491
msgid "Failed to load suggested feeds"
msgstr ""
#: src/screens/Search/Explore.tsx:314
#: src/screens/Search/Explore.tsx:356
msgid "Failed to load suggested follows"
msgstr ""
@@ -3088,11 +3067,6 @@ msgstr ""
msgid "Failed to remove emoji reaction"
msgstr ""
#: src/screens/Settings/SettingsInterests.tsx:128
msgctxt "toast"
msgid "Failed to save content prefefences."
msgstr ""
#: src/view/com/lightbox/Lightbox.tsx:46
msgid "Failed to save image: {0}"
msgstr ""
@@ -3137,7 +3111,7 @@ msgstr ""
msgid "Failed to verify handle. Please try again."
msgstr ""
#: src/Navigation.tsx:251
#: src/Navigation.tsx:250
msgid "Feed"
msgstr ""
@@ -3166,7 +3140,7 @@ msgctxt "toast"
msgid "Feedback sent!"
msgstr ""
#: src/Navigation.tsx:436
#: src/Navigation.tsx:427
#: src/screens/Search/SearchResults.tsx:68
#: src/screens/StarterPack/StarterPackScreen.tsx:185
#: src/view/screens/Feeds.tsx:508
@@ -3221,13 +3195,13 @@ msgstr ""
msgid "Find accounts to follow"
msgstr ""
#: src/components/ProgressGuide/FollowDialog.tsx:85
#: src/components/ProgressGuide/FollowDialog.tsx:95
#: src/components/ProgressGuide/FollowDialog.tsx:424
#: src/components/ProgressGuide/FollowDialog.tsx:78
#: src/components/ProgressGuide/FollowDialog.tsx:88
#: src/components/ProgressGuide/FollowDialog.tsx:417
msgid "Find people to follow"
msgstr ""
#: src/screens/Search/Shell.tsx:476
#: src/screens/Search/Shell.tsx:474
msgid "Find posts, users, and feeds on Bluesky"
msgstr ""
@@ -3331,7 +3305,7 @@ msgstr ""
msgid "Followed by <0>{0}</0>, <1>{1}</1>, and {2, plural, one {# other} other {# others}}"
msgstr ""
#: src/Navigation.tsx:205
#: src/Navigation.tsx:204
msgid "Followers of @{0} that you know"
msgstr ""
@@ -3365,12 +3339,12 @@ msgstr ""
msgid "Following {name}"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:76
#: src/screens/Settings/ContentAndMediaSettings.tsx:79
#: src/screens/Settings/ContentAndMediaSettings.tsx:75
#: src/screens/Settings/ContentAndMediaSettings.tsx:78
msgid "Following feed preferences"
msgstr ""
#: src/Navigation.tsx:322
#: src/Navigation.tsx:321
#: src/screens/Settings/FollowingFeedPreferences.tsx:53
msgid "Following Feed Preferences"
msgstr ""
@@ -3408,10 +3382,6 @@ msgstr ""
msgid "For the best experience, we recommend using the theme font."
msgstr ""
#: src/screens/Search/modules/ExploreSuggestedAccounts.tsx:86
msgid "For You"
msgstr ""
#: src/components/dialogs/MutedWords.tsx:178
msgid "Forever"
msgstr ""
@@ -3575,7 +3545,7 @@ msgstr ""
msgid "Harassment, trolling, or intolerance"
msgstr ""
#: src/Navigation.tsx:406
#: src/Navigation.tsx:397
msgid "Hashtag"
msgstr ""
@@ -3654,10 +3624,6 @@ msgstr ""
msgid "Hide reply for me"
msgstr ""
#: src/screens/Search/modules/ExploreInterestsCard.tsx:110
msgid "Hide this card"
msgstr ""
#: src/view/com/util/forms/PostDropdownBtnMenuItems.tsx:756
msgid "Hide this post?"
msgstr ""
@@ -3722,8 +3688,8 @@ msgstr ""
msgid "Hold up! Were gradually giving access to video, and youre still waiting in line. Check back soon!"
msgstr ""
#: src/Navigation.tsx:635
#: src/Navigation.tsx:655
#: src/Navigation.tsx:626
#: src/Navigation.tsx:646
#: src/view/shell/bottom-bar/BottomBar.tsx:162
#: src/view/shell/desktop/LeftNav.tsx:599
#: src/view/shell/Drawer.tsx:396
@@ -3739,7 +3705,7 @@ msgstr ""
msgid "Hosting provider"
msgstr ""
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:191
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:187
msgid "Hot"
msgstr ""
@@ -3996,7 +3962,7 @@ msgstr ""
msgid "Language selection"
msgstr ""
#: src/Navigation.tsx:178
#: src/Navigation.tsx:177
msgid "Language Settings"
msgstr ""
@@ -4134,8 +4100,8 @@ msgid "Like this labeler"
msgstr ""
#: src/components/LikesDialog.tsx:85
#: src/Navigation.tsx:256
#: src/Navigation.tsx:261
#: src/Navigation.tsx:255
#: src/Navigation.tsx:260
msgid "Liked by"
msgstr ""
@@ -4170,7 +4136,7 @@ msgstr ""
msgid "Linear"
msgstr ""
#: src/Navigation.tsx:211
#: src/Navigation.tsx:210
msgid "List"
msgstr ""
@@ -4228,7 +4194,7 @@ msgctxt "toast"
msgid "List unmuted"
msgstr ""
#: src/Navigation.tsx:140
#: src/Navigation.tsx:139
#: src/view/screens/Lists.tsx:62
#: src/view/screens/Profile.tsx:221
#: src/view/screens/Profile.tsx:229
@@ -4241,11 +4207,15 @@ msgstr ""
msgid "Lists blocking this user:"
msgstr ""
#: src/screens/Search/Explore.tsx:68
#: src/screens/Search/Explore.tsx:66
msgid "Load more"
msgstr ""
#: src/screens/Search/Explore.tsx:422
#: src/screens/Search/Explore.tsx:392
msgid "Load more suggested accounts"
msgstr ""
#: src/screens/Search/Explore.tsx:480
msgid "Load more suggested feeds"
msgstr ""
@@ -4264,7 +4234,7 @@ msgstr ""
msgid "Loading..."
msgstr ""
#: src/Navigation.tsx:281
#: src/Navigation.tsx:280
msgid "Log"
msgstr ""
@@ -4309,8 +4279,8 @@ msgstr ""
msgid "Make sure this is where you intend to go!"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:60
#: src/screens/Settings/ContentAndMediaSettings.tsx:63
#: src/screens/Settings/ContentAndMediaSettings.tsx:59
#: src/screens/Settings/ContentAndMediaSettings.tsx:62
msgid "Manage saved feeds"
msgstr ""
@@ -4392,7 +4362,7 @@ msgstr ""
msgid "Message options"
msgstr ""
#: src/Navigation.tsx:650
#: src/Navigation.tsx:641
msgid "Messages"
msgstr ""
@@ -4411,7 +4381,7 @@ msgstr ""
msgid "Misleading Post"
msgstr ""
#: src/Navigation.tsx:145
#: src/Navigation.tsx:144
#: src/screens/Moderation/index.tsx:89
#: src/screens/Settings/Settings.tsx:167
#: src/screens/Settings/Settings.tsx:170
@@ -4450,7 +4420,7 @@ msgstr ""
msgid "Moderation lists"
msgstr ""
#: src/Navigation.tsx:150
#: src/Navigation.tsx:149
#: src/view/screens/ModerationModlists.tsx:62
msgid "Moderation Lists"
msgstr ""
@@ -4459,7 +4429,7 @@ msgstr ""
msgid "moderation settings"
msgstr ""
#: src/Navigation.tsx:271
#: src/Navigation.tsx:270
msgid "Moderation states"
msgstr ""
@@ -4582,7 +4552,7 @@ msgstr ""
msgid "Muted accounts"
msgstr ""
#: src/Navigation.tsx:155
#: src/Navigation.tsx:154
#: src/view/screens/ModerationMutedAccounts.tsx:100
msgid "Muted Accounts"
msgstr ""
@@ -4672,7 +4642,7 @@ msgstr ""
msgid "Nevermind, create a handle for me"
msgstr ""
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:196
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:192
msgid "New"
msgstr ""
@@ -4751,7 +4721,7 @@ msgstr ""
#: src/screens/Onboarding/index.tsx:20
#: src/screens/Onboarding/state.ts:108
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:238
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:234
msgid "News"
msgstr ""
@@ -4843,7 +4813,7 @@ msgid "No result"
msgstr ""
#: src/components/dms/dialogs/SearchablePeopleList.tsx:204
#: src/components/ProgressGuide/FollowDialog.tsx:242
#: src/components/ProgressGuide/FollowDialog.tsx:235
msgid "No results"
msgstr ""
@@ -4901,7 +4871,7 @@ msgstr ""
msgid "Not followed by anyone you're following"
msgstr ""
#: src/Navigation.tsx:135
#: src/Navigation.tsx:134
#: src/view/screens/Profile.tsx:122
msgid "Not Found"
msgstr ""
@@ -4929,7 +4899,7 @@ msgstr ""
msgid "Notification filters"
msgstr ""
#: src/Navigation.tsx:431
#: src/Navigation.tsx:422
#: src/view/screens/Notifications.tsx:134
msgid "Notification settings"
msgstr ""
@@ -4946,7 +4916,7 @@ msgstr ""
msgid "Notification Sounds"
msgstr ""
#: src/Navigation.tsx:645
#: src/Navigation.tsx:636
#: src/view/screens/Notifications.tsx:128
#: src/view/shell/bottom-bar/BottomBar.tsx:236
#: src/view/shell/desktop/LeftNav.tsx:636
@@ -5325,11 +5295,11 @@ msgstr ""
msgid "People"
msgstr ""
#: src/Navigation.tsx:198
#: src/Navigation.tsx:197
msgid "People followed by @{0}"
msgstr ""
#: src/Navigation.tsx:191
#: src/Navigation.tsx:190
msgid "People following @{0}"
msgstr ""
@@ -5521,7 +5491,7 @@ msgstr ""
#: src/screens/Onboarding/index.tsx:34
#: src/screens/Onboarding/state.ts:111
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:232
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:228
msgid "Politics"
msgstr ""
@@ -5548,10 +5518,10 @@ msgstr ""
msgid "Post by {0}"
msgstr ""
#: src/Navigation.tsx:224
#: src/Navigation.tsx:231
#: src/Navigation.tsx:238
#: src/Navigation.tsx:245
#: src/Navigation.tsx:223
#: src/Navigation.tsx:230
#: src/Navigation.tsx:237
#: src/Navigation.tsx:244
msgid "Post by @{0}"
msgstr ""
@@ -5586,7 +5556,7 @@ msgstr ""
msgid "Post interaction settings"
msgstr ""
#: src/Navigation.tsx:166
#: src/Navigation.tsx:165
#: src/screens/ModerationInteractionSettings/index.tsx:34
msgid "Post Interaction Settings"
msgstr ""
@@ -5679,12 +5649,12 @@ msgstr ""
msgid "Privacy and security"
msgstr ""
#: src/Navigation.tsx:367
#: src/Navigation.tsx:366
#: src/screens/Settings/PrivacyAndSecuritySettings.tsx:36
msgid "Privacy and Security"
msgstr ""
#: src/Navigation.tsx:291
#: src/Navigation.tsx:290
#: src/screens/Settings/AboutSettings.tsx:51
#: src/screens/Settings/AboutSettings.tsx:54
#: src/view/screens/PrivacyPolicy.tsx:31
@@ -6443,19 +6413,22 @@ msgstr ""
#: src/components/dms/dialogs/SearchablePeopleList.tsx:491
#: src/components/forms/SearchInput.tsx:34
#: src/components/forms/SearchInput.tsx:36
#: src/screens/Search/Shell.tsx:307
#: src/screens/Search/Shell.tsx:464
#: src/Navigation.tsx:631
#: src/screens/Search/Shell.tsx:305
#: src/screens/Search/Shell.tsx:462
#: src/view/com/modals/ListAddRemoveUsers.tsx:76
#: src/view/shell/bottom-bar/BottomBar.tsx:182
#: src/view/shell/desktop/LeftNav.tsx:617
#: src/view/shell/Drawer.tsx:370
msgid "Search"
msgstr ""
#: src/Navigation.tsx:217
#: src/Navigation.tsx:216
#: src/screens/Profile/ProfileSearch.tsx:37
msgid "Search @{0}'s posts"
msgstr ""
#: src/components/ProgressGuide/FollowDialog.tsx:757
#: src/components/ProgressGuide/FollowDialog.tsx:748
msgid "Search by name or interest"
msgstr ""
@@ -6463,8 +6436,8 @@ msgstr ""
msgid "Search feeds"
msgstr ""
#: src/components/ProgressGuide/FollowDialog.tsx:587
#: src/screens/Search/modules/ExploreSuggestedAccounts.tsx:126
#: src/components/ProgressGuide/FollowDialog.tsx:578
#: src/screens/Search/modules/ExploreSuggestedAccounts.tsx:120
msgid "Search for \"{interestsDisplayName}\"{activeText}"
msgstr ""
@@ -6480,15 +6453,15 @@ msgstr ""
msgid "Search for feeds that you want to suggest to others."
msgstr ""
#: src/screens/Search/Explore.tsx:302
#: src/screens/Search/Explore.tsx:344
msgid "Search for more accounts"
msgstr ""
#: src/screens/Search/Explore.tsx:365
#: src/screens/Search/Explore.tsx:423
msgid "Search for more feeds"
msgstr ""
#: src/screens/Search/Shell.tsx:334
#: src/screens/Search/Shell.tsx:332
msgid "Search for posts, users, or feeds"
msgstr ""
@@ -6510,7 +6483,7 @@ msgid "Search posts"
msgstr ""
#: src/components/dms/dialogs/SearchablePeopleList.tsx:511
#: src/components/ProgressGuide/FollowDialog.tsx:776
#: src/components/ProgressGuide/FollowDialog.tsx:767
msgid "Search profiles"
msgstr ""
@@ -6523,7 +6496,7 @@ msgid "Search..."
msgstr ""
#: src/components/dms/dialogs/SearchablePeopleList.tsx:512
#: src/components/ProgressGuide/FollowDialog.tsx:777
#: src/components/ProgressGuide/FollowDialog.tsx:768
msgid "Searches for profiles"
msgstr ""
@@ -6645,7 +6618,6 @@ msgid "Select your date of birth"
msgstr ""
#: src/screens/Onboarding/StepInterests/index.tsx:192
#: src/screens/Settings/SettingsInterests.tsx:157
msgid "Select your interests from the options below"
msgstr ""
@@ -6749,7 +6721,7 @@ msgstr ""
msgid "Sets email for password reset"
msgstr ""
#: src/Navigation.tsx:173
#: src/Navigation.tsx:172
#: src/screens/Settings/Settings.tsx:80
#: src/view/shell/desktop/LeftNav.tsx:709
#: src/view/shell/Drawer.tsx:539
@@ -6838,7 +6810,7 @@ msgstr ""
msgid "Share your favorite feed!"
msgstr ""
#: src/Navigation.tsx:276
#: src/Navigation.tsx:275
msgid "Shared Preferences Tester"
msgstr ""
@@ -7144,7 +7116,7 @@ msgstr ""
#: src/screens/Onboarding/index.tsx:27
#: src/screens/Onboarding/state.ts:113
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:230
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:226
msgid "Sports"
msgstr ""
@@ -7166,8 +7138,8 @@ msgstr ""
msgid "Start chat with {displayName}"
msgstr ""
#: src/Navigation.tsx:441
#: src/Navigation.tsx:446
#: src/Navigation.tsx:432
#: src/Navigation.tsx:437
#: src/screens/StarterPack/Wizard/index.tsx:186
msgid "Starter Pack"
msgstr ""
@@ -7189,7 +7161,7 @@ msgstr ""
msgid "Starter pack is invalid"
msgstr ""
#: src/screens/Search/Explore.tsx:464
#: src/screens/Search/Explore.tsx:522
#: src/view/screens/Profile.tsx:228
msgid "Starter Packs"
msgstr ""
@@ -7211,7 +7183,7 @@ msgstr ""
msgid "Storage cleared, you need to restart the app now."
msgstr ""
#: src/Navigation.tsx:266
#: src/Navigation.tsx:265
#: src/screens/Settings/Settings.tsx:325
msgid "Storybook"
msgstr ""
@@ -7261,7 +7233,7 @@ msgstr ""
msgid "Success!"
msgstr ""
#: src/screens/Search/Explore.tsx:299
#: src/screens/Search/Explore.tsx:341
msgid "Suggested Accounts"
msgstr ""
@@ -7284,7 +7256,7 @@ msgctxt "Name of app icon variant"
msgid "Sunset"
msgstr ""
#: src/Navigation.tsx:286
#: src/Navigation.tsx:285
#: src/view/screens/Support.tsx:31
#: src/view/screens/Support.tsx:34
msgid "Support"
@@ -7371,7 +7343,7 @@ msgstr ""
msgid "Terms"
msgstr ""
#: src/Navigation.tsx:296
#: src/Navigation.tsx:295
#: src/screens/Settings/AboutSettings.tsx:43
#: src/screens/Settings/AboutSettings.tsx:46
#: src/view/screens/TermsOfService.tsx:31
@@ -7566,7 +7538,7 @@ msgstr ""
msgid "There was an issue fetching notifications. Tap here to try again."
msgstr ""
#: src/screens/Search/Explore.tsx:804
#: src/screens/Search/Explore.tsx:837
#: src/view/com/posts/PostFeed.tsx:607
msgid "There was an issue fetching posts. Tap here to try again."
msgstr ""
@@ -7854,8 +7826,8 @@ msgstr ""
msgid "Thread options"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:68
#: src/screens/Settings/ContentAndMediaSettings.tsx:71
#: src/screens/Settings/ContentAndMediaSettings.tsx:67
#: src/screens/Settings/ContentAndMediaSettings.tsx:70
msgid "Thread preferences"
msgstr ""
@@ -7872,7 +7844,7 @@ msgstr ""
msgid "Threaded mode"
msgstr ""
#: src/Navigation.tsx:329
#: src/Navigation.tsx:328
msgid "Threads Preferences"
msgstr ""
@@ -7918,7 +7890,7 @@ msgstr ""
msgid "Top"
msgstr ""
#: src/Navigation.tsx:411
#: src/Navigation.tsx:402
msgid "Topic"
msgstr ""
@@ -8240,8 +8212,8 @@ msgstr ""
msgid "Use in-app browser"
msgstr ""
#: src/screens/Settings/ContentAndMediaSettings.tsx:102
#: src/screens/Settings/ContentAndMediaSettings.tsx:108
#: src/screens/Settings/ContentAndMediaSettings.tsx:93
#: src/screens/Settings/ContentAndMediaSettings.tsx:99
msgid "Use in-app browser to open links"
msgstr ""
@@ -8395,7 +8367,7 @@ msgstr ""
msgid "Video failed to process"
msgstr ""
#: src/Navigation.tsx:462
#: src/Navigation.tsx:453
msgid "Video Feed"
msgstr ""
@@ -8405,7 +8377,7 @@ msgstr ""
#: src/screens/Onboarding/index.tsx:39
#: src/screens/Onboarding/state.ts:103
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:234
#: src/screens/Search/modules/ExploreTrendingTopics.tsx:230
msgid "Video Games"
msgstr ""
@@ -8602,10 +8574,6 @@ msgstr ""
msgid "We ran out of posts from your follows. Here's the latest from <0/>."
msgstr ""
#: src/screens/Settings/SettingsInterests.tsx:150
msgid "We recommend selecting at least two interests."
msgstr ""
#: src/view/com/composer/state/video.ts:417
msgid "We were unable to determine if you are allowed to upload videos. Please try again."
msgstr ""
@@ -8631,7 +8599,7 @@ msgid "We'll use this to help customize your experience."
msgstr ""
#: src/components/dms/dialogs/SearchablePeopleList.tsx:92
#: src/components/ProgressGuide/FollowDialog.tsx:164
#: src/components/ProgressGuide/FollowDialog.tsx:157
msgid "We're having network issues, try again"
msgstr ""
@@ -8823,10 +8791,6 @@ msgstr ""
msgid "You are not following anyone."
msgstr ""
#: src/screens/Search/modules/ExploreInterestsCard.tsx:45
msgid "You can adjust your interests at any time from your \"Content and media\" settings."
msgstr ""
#: src/view/com/posts/FollowingEmptyState.tsx:63
#: src/view/com/posts/FollowingEndOfFeed.tsx:64
msgid "You can also discover new Custom Feeds to follow."
@@ -9189,19 +9153,6 @@ msgstr ""
msgid "Your full username will be <0>@{0}</0>"
msgstr ""
#: src/Navigation.tsx:383
#: src/screens/Search/modules/ExploreInterestsCard.tsx:43
#: src/screens/Search/modules/ExploreInterestsCard.tsx:67
#: src/screens/Settings/ContentAndMediaSettings.tsx:92
#: src/screens/Settings/ContentAndMediaSettings.tsx:95
#: src/screens/Settings/SettingsInterests.tsx:39
msgid "Your interests"
msgstr ""
#: src/screens/Search/modules/ExploreInterestsCard.tsx:94
msgid "Your interests help us find what you like!"
msgstr ""
#: src/components/dialogs/MutedWords.tsx:369
msgid "Your muted words"
msgstr ""
@@ -9241,7 +9192,3 @@ msgstr ""
#: src/components/dms/ReportDialog.tsx:200
msgid "Your report will be sent to the Bluesky Moderation Service"
msgstr ""
#: src/screens/Settings/SettingsInterests.tsx:53
msgid "Your selected interests help us serve you content you care about."
msgstr ""
+70 -131
View File
@@ -1,5 +1,5 @@
import {useCallback, useMemo, useRef, useState} from 'react'
import {View, type ViewabilityConfig} from 'react-native'
import {View, type ViewabilityConfig, type ViewToken} from 'react-native'
import {
type AppBskyActorDefs,
type AppBskyFeedDefs,
@@ -7,7 +7,6 @@ import {
} from '@atproto/api'
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {useQueryClient} from '@tanstack/react-query'
import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
import {useGate} from '#/lib/statsig/statsig'
@@ -23,19 +22,9 @@ import {
import {useGetPopularFeedsQuery} from '#/state/queries/feed'
import {Nux, useNux} from '#/state/queries/nuxs'
import {usePreferencesQuery} from '#/state/queries/preferences'
import {
createGetSuggestedFeedsQueryKey,
useGetSuggestedFeedsQuery,
} from '#/state/queries/trending/useGetSuggestedFeedsQuery'
import {
getSuggestedUsersQueryKeyRoot,
useGetSuggestedUsersQuery,
} from '#/state/queries/trending/useGetSuggestedUsersQuery'
import {createGetTrendsQueryKey} from '#/state/queries/trending/useGetTrendsQuery'
import {
createSuggestedStarterPacksQueryKey,
useSuggestedStarterPacksQuery,
} from '#/state/queries/useSuggestedStarterPacksQuery'
import {useGetSuggestedFeedsQuery} from '#/state/queries/trending/useGetSuggestedFeedsQuery'
import {useGetSuggestedUsersQuery} from '#/state/queries/trending/useGetSuggestedUsersQuery'
import {useSuggestedStarterPacksQuery} from '#/state/queries/useSuggestedStarterPacksQuery'
import {useProgressGuide} from '#/state/shell/progress-guide'
import {isThreadChildAt, isThreadParentAt} from '#/view/com/posts/PostFeed'
import {PostFeedItem} from '#/view/com/posts/PostFeedItem'
@@ -52,7 +41,6 @@ import {ExploreRecommendations} from '#/screens/Search/modules/ExploreRecommenda
import {ExploreTrendingTopics} from '#/screens/Search/modules/ExploreTrendingTopics'
import {ExploreTrendingVideos} from '#/screens/Search/modules/ExploreTrendingVideos'
import {atoms as a, native, platform, useTheme, web} from '#/alf'
import {Admonition} from '#/components/Admonition'
import {Button} from '#/components/Button'
import * as FeedCard from '#/components/FeedCard'
import {ChevronBottom_Stroke2_Corner0_Rounded as ChevronDownIcon} from '#/components/icons/Chevron'
@@ -61,11 +49,9 @@ import {type Props as IcoProps} from '#/components/icons/common'
import {type Props as SVGIconProps} from '#/components/icons/common'
import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle'
import {StarterPack} from '#/components/icons/StarterPack'
import {Trending2_Stroke2_Corner2_Rounded as Graph} from '#/components/icons/Trending'
import {UserCircle_Stroke2_Corner0_Rounded as Person} from '#/components/icons/UserCircle'
import {Loader} from '#/components/Loader'
import * as ProfileCard from '#/components/ProfileCard'
import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography'
import * as ModuleHeader from './components/ModuleHeader'
import {
@@ -83,26 +69,33 @@ function LoadMore({item}: {item: ExploreScreenItems & {type: 'loadMore'}}) {
onPress={item.onLoadMore}
style={[a.relative, a.w_full]}>
{({hovered, pressed}) => (
<>
<SubtleHover hover={hovered || pressed} />
<View
<View
style={[
a.flex_1,
a.flex_row,
a.align_center,
a.justify_center,
a.px_lg,
a.py_md,
a.gap_sm,
(hovered || pressed) && t.atoms.bg_contrast_25,
]}>
<Text
style={[
a.flex_1,
a.flex_row,
a.align_center,
a.justify_center,
a.px_lg,
a.py_md,
a.gap_sm,
a.leading_snug,
hovered ? t.atoms.text : t.atoms.text_contrast_medium,
]}>
<Text style={[a.leading_snug]}>{item.message}</Text>
{item.isLoadingMore ? (
<Loader size="sm" />
) : (
<ChevronDownIcon size="sm" style={t.atoms.text_contrast_medium} />
)}
</View>
</>
{item.message}
</Text>
{item.isLoadingMore ? (
<Loader size="sm" />
) : (
<ChevronDownIcon
size="sm"
style={hovered ? t.atoms.text : t.atoms.text_contrast_medium}
/>
)}
</View>
)}
</Button>
)
@@ -119,7 +112,6 @@ type ExploreScreenItems =
title: string
icon: React.ComponentType<SVGIconProps>
iconSize?: IcoProps['size']
bottomBorder?: boolean
searchButton?: {
label: string
metricsTag: MetricEvents['explore:module:searchButtonPress']['module']
@@ -155,10 +147,6 @@ type ExploreScreenItems =
profile: AppBskyActorDefs.ProfileViewBasic
recId?: number
}
| {
type: 'profileEmpty'
key: 'profileEmpty'
}
| {
type: 'feed'
key: string
@@ -215,12 +203,11 @@ export function Explore({
const gate = useGate()
const guide = useProgressGuide('follow-10')
const [selectedInterest, setSelectedInterest] = useState<string | null>(null)
// TODO always get at least 10 back TODO still
// TODO always get at least 10 back
const {
data: suggestedUsers,
isLoading: suggestedUsersIsLoading,
error: suggestedUsersError,
isRefetching: suggestedUsersIsRefetching,
} = useGetSuggestedUsersQuery({
category: selectedInterest,
})
@@ -240,7 +227,6 @@ export function Explore({
data: suggestedSPs,
isLoading: isLoadingSuggestedSPs,
error: suggestedSPsError,
isRefetching: isRefetchingSuggestedSPs,
} = useSuggestedStarterPacksQuery()
const isLoadingMoreFeeds = isFetchingNextFeedsPage && !isLoadingFeeds
@@ -276,27 +262,6 @@ export function Explore({
},
} = useFeedPreviews(suggestedFeeds?.feeds ?? [])
const qc = useQueryClient()
const [isPTR, setIsPTR] = useState(false)
const onPTR = useCallback(async () => {
setIsPTR(true)
await Promise.all([
await qc.resetQueries({
queryKey: createGetTrendsQueryKey(),
}),
await qc.resetQueries({
queryKey: createSuggestedStarterPacksQueryKey(),
}),
await qc.resetQueries({
queryKey: [getSuggestedUsersQueryKeyRoot],
}),
await qc.resetQueries({
queryKey: createGetSuggestedFeedsQueryKey(),
}),
])
setIsPTR(false)
}, [qc, setIsPTR])
const onLoadMoreFeedPreviews = useCallback(async () => {
if (
isPendingFeedPreviews ||
@@ -340,7 +305,7 @@ export function Explore({
},
})
if (suggestedUsersIsLoading || suggestedUsersIsRefetching) {
if (suggestedUsersIsLoading) {
i.push({type: 'profilePlaceholder', key: 'profilePlaceholder'})
} else if (suggestedUsersError) {
i.push({
@@ -368,18 +333,14 @@ export function Explore({
}
if (profileItems.length === 0) {
i.push({
type: 'profileEmpty',
key: 'profileEmpty',
})
// no items! remove the header
i.pop()
} else {
i.push(...profileItems)
}
} else {
i.push({
type: 'profileEmpty',
key: 'profileEmpty',
})
// no items! remove the header
i.pop()
}
} else {
i.push({type: 'profilePlaceholder', key: 'profilePlaceholder'})
@@ -391,7 +352,6 @@ export function Explore({
moderationOpts,
suggestedUsers,
suggestedUsersIsLoading,
suggestedUsersIsRefetching,
suggestedUsersError,
])
const suggestedFeedsModule = useMemo(() => {
@@ -506,7 +466,7 @@ export function Explore({
iconSize: 'xl',
})
if (isLoadingSuggestedSPs || isRefetchingSuggestedSPs) {
if (isLoadingSuggestedSPs) {
Array.from({length: 3}).forEach((__, index) =>
i.push({
type: 'starterPackSkeleton',
@@ -526,13 +486,7 @@ export function Explore({
})
}
return i
}, [
suggestedSPs,
_,
isLoadingSuggestedSPs,
suggestedSPsError,
isRefetchingSuggestedSPs,
])
}, [suggestedSPs, _, isLoadingSuggestedSPs, suggestedSPsError])
const feedPreviewsModule = useMemo(() => {
const i: ExploreScreenItems[] = []
i.push(...feedPreviewSlices)
@@ -566,13 +520,6 @@ export function Explore({
if (isNewUser) {
i.push(...suggestedFollowsModule)
i.push(...suggestedStarterPacksModule)
i.push({
type: 'header',
key: 'trending-topics-header',
title: _(msg`Trending topics`),
icon: Graph,
bottomBorder: true,
})
i.push(trendingTopicsModule)
} else {
i.push(trendingTopicsModule)
@@ -586,7 +533,6 @@ export function Explore({
return i
}, [
_,
topBorder,
isNewUser,
suggestedFollowsModule,
@@ -618,7 +564,7 @@ export function Explore({
)
case 'header': {
return (
<ModuleHeader.Container bottomBorder={item.bottomBorder}>
<ModuleHeader.Container>
<ModuleHeader.Icon icon={item.icon} size={item.iconSize} />
<ModuleHeader.TitleText>{item.title}</ModuleHeader.TitleText>
{item.searchButton && (
@@ -677,15 +623,6 @@ export function Explore({
/>
)
}
case 'profileEmpty': {
return (
<View style={[a.px_lg, a.pb_lg]}>
<Admonition>
<Trans>No results for "{selectedInterest}".</Trans>
</Admonition>
</View>
)
}
case 'feed': {
return (
<View
@@ -801,13 +738,7 @@ export function Explore({
return (
<ModuleHeader.Container
headerHeight={headerHeight}
style={[
a.pt_xs,
t.atoms.border_contrast_low,
native(a.border_b),
]}>
{/* Very non-scientific way to avoid small gap on scroll */}
<View style={[a.absolute, a.inset_0, t.atoms.bg, {top: -2}]} />
style={[a.pt_xs, a.border_b, t.atoms.border_contrast_low]}>
<ModuleHeader.FeedLink feed={item.feed}>
<ModuleHeader.FeedAvatar feed={item.feed} />
<View style={[a.flex_1, a.gap_xs]}>
@@ -906,26 +837,36 @@ export function Explore({
// track headers and report module viewability
const alreadyReportedRef = useRef<Map<string, string>>(new Map())
const onItemSeen = useCallback((item: ExploreScreenItems) => {
let module: MetricEvents['explore:module:seen']['module']
if (item.type === 'trendingTopics' || item.type === 'trendingVideos') {
module = item.type
} else if (item.type === 'profile') {
module = 'suggestedAccounts'
} else if (item.type === 'feed') {
module = 'suggestedFeeds'
} else if (item.type === 'starterPack') {
module = 'suggestedStarterPacks'
} else if (item.type === 'preview:sliceItem') {
module = `feed:feedgen|${item.feed.uri}`
} else {
return
}
if (!alreadyReportedRef.current.has(module)) {
alreadyReportedRef.current.set(module, module)
logger.metric('explore:module:seen', {module}) //, index: index ?? -1})
}
}, [])
const onViewableItemsChanged = useCallback(
({
viewableItems,
}: {
viewableItems: ViewToken<ExploreScreenItems>[]
changed: ViewToken<ExploreScreenItems>[]
}) => {
for (const {item, index} of viewableItems.filter(vi => vi.isViewable)) {
let module: MetricEvents['explore:module:seen']['module']
if (item.type === 'trendingTopics' || item.type === 'trendingVideos') {
module = item.type
} else if (item.type === 'profile') {
module = 'suggestedAccounts'
} else if (item.type === 'feed') {
module = 'suggestedFeeds'
} else if (item.type === 'starterPack') {
module = 'suggestedStarterPacks'
} else if (item.type === 'preview:header') {
module = `feed:feedgen|${item.feed.uri}`
} else {
continue
}
if (!alreadyReportedRef.current.has(module)) {
alreadyReportedRef.current.set(module, module)
logger.metric('explore:module:seen', {module, index: index ?? -1})
}
}
},
[],
)
return (
<List
@@ -938,15 +879,13 @@ export function Explore({
keyboardDismissMode="on-drag"
stickyHeaderIndices={native(stickyHeaderIndices)}
viewabilityConfig={viewabilityConfig}
onItemSeen={onItemSeen}
onViewableItemsChanged={onViewableItemsChanged}
onEndReached={onLoadMoreFeedPreviews}
onEndReachedThreshold={3}
initialNumToRender={initialNumToRender}
windowSize={9}
maxToRenderPerBatch={platform({ios: 5, default: 1})}
updateCellsBatchingPeriod={40}
refreshing={isPTR}
onRefresh={onPTR}
/>
)
}
@@ -18,12 +18,7 @@ export function Container({
style,
children,
headerHeight,
bottomBorder,
}: {
children: React.ReactNode
headerHeight?: number
bottomBorder?: boolean
} & ViewStyleProp) {
}: {children: React.ReactNode; headerHeight?: number} & ViewStyleProp) {
const t = useTheme()
return (
<View
@@ -36,9 +31,10 @@ export function Container({
a.gap_sm,
t.atoms.bg,
headerHeight && web({position: 'sticky', top: headerHeight}),
bottomBorder && [a.border_b, t.atoms.border_contrast_low],
style,
]}>
{/* Very non-scientific way to avoid small gap on scroll */}
<View style={[a.absolute, a.inset_0, t.atoms.bg, {top: -2}]} />
{children}
</View>
)
@@ -19,7 +19,6 @@ import {PlusSmall_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus
import {Link} from '#/components/Link'
import {MediaInsetBorder} from '#/components/MediaInsetBorder'
import {useStarterPackLink} from '#/components/StarterPack/StarterPackCard'
import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography'
import * as bsky from '#/types/bsky'
@@ -49,80 +48,75 @@ export function StarterPackCard({
.map(item => item.subject)
return (
<Link
to={link.to}
label={link.label}
onHoverIn={link.precache}
onPress={link.precache}>
{s => (
<>
<SubtleHover hover={s.hovered || s.pressed} />
<View
style={[
a.w_full,
a.p_lg,
a.gap_md,
a.border,
a.rounded_sm,
a.overflow_hidden,
t.atoms.border_contrast_low,
]}>
<View aria-hidden style={[a.absolute, a.inset_0, a.z_40]}>
<Link
to={link.to}
label={link.label}
style={[a.absolute, a.inset_0]}
onHoverIn={link.precache}
onPress={link.precache}>
<View />
</Link>
</View>
<View
style={[
a.w_full,
a.p_lg,
a.gap_md,
a.border,
a.rounded_sm,
a.overflow_hidden,
t.atoms.border_contrast_low,
]}>
<AvatarStack
profiles={profiles ?? []}
numPending={profileCount}
total={view.list?.listItemCount}
/>
<AvatarStack
profiles={profiles ?? []}
numPending={profileCount}
total={view.list?.listItemCount}
/>
<View
style={[
a.w_full,
a.flex_row,
a.align_start,
a.gap_lg,
web({
position: 'static',
zIndex: 'unset',
}),
]}>
<View style={[a.flex_1]}>
<Text
emoji
style={[a.text_md, a.font_bold, a.leading_snug]}
numberOfLines={1}>
{view.record.name}
</Text>
<Text
emoji
style={[
a.text_sm,
a.leading_snug,
t.atoms.text_contrast_medium,
]}
numberOfLines={1}>
{view.creator?.did === currentAccount?.did
? _(msg`By you`)
: _(msg`By ${sanitizeHandle(view.creator.handle, '@')}`)}
</Text>
</View>
<Link
to={link.to}
label={link.label}
onHoverIn={link.precache}
onPress={link.precache}
variant="solid"
color="secondary"
size="small"
style={[a.z_50]}>
<ButtonText>
<Trans>Open pack</Trans>
</ButtonText>
</Link>
</View>
</View>
</>
)}
</Link>
<View
style={[
a.w_full,
a.flex_row,
a.align_start,
a.gap_lg,
web({
position: 'static',
zIndex: 'unset',
}),
]}>
<View style={[a.flex_1]}>
<Text
emoji
style={[a.text_md, a.font_bold, a.leading_snug]}
numberOfLines={1}>
{view.record.name}
</Text>
<Text
emoji
style={[a.text_sm, a.leading_snug, t.atoms.text_contrast_medium]}
numberOfLines={1}>
{view.creator?.did === currentAccount?.did
? _(msg`By you`)
: _(msg`By ${sanitizeHandle(view.creator.handle, '@')}`)}
</Text>
</View>
<Link
to={link.to}
label={link.label}
onHoverIn={link.precache}
onPress={link.precache}
variant="solid"
color="secondary"
size="small"
style={[a.z_50]}>
<ButtonText>
<Trans>Open pack</Trans>
</ButtonText>
</Link>
</View>
</View>
)
}
@@ -8,7 +8,6 @@ import {usePreferencesQuery} from '#/state/queries/preferences'
import {useInterestsDisplayNames} from '#/screens/Onboarding/state'
import {atoms as a, useTheme} from '#/alf'
import {Button, ButtonIcon, ButtonText} from '#/components/Button'
import {Shapes_Stroke2_Corner0_Rounded as Shapes} from '#/components/icons/Shapes'
import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times'
import {Link} from '#/components/Link'
import * as Prompt from '#/components/Prompt'
@@ -40,33 +39,32 @@ export function ExploreInterestsCard() {
<>
<Prompt.Basic
control={trendingPrompt}
title={_(msg`Dismiss interests`)}
title={_(msg`Your interests`)}
description={_(
msg`You can adjust your interests at any time from "Content and media" settings.`,
msg`You can adjust your interests at any time from your "Content and media" settings.`,
)}
confirmButtonCta={_(
msg({
message: `OK`,
comment: `Confirm button text.`,
message: `Copy that!`,
comment: `Confirm button text. Can be a short cheeky phrase that means "OK" e.g. "Copy that!"`,
}),
)}
onConfirm={onConfirmClose}
/>
<View style={[a.pb_2xs]}>
<View style={[a.p_lg, a.pb_2xs]}>
<View
style={[
a.p_lg,
a.border_b,
a.gap_md,
a.rounded_md,
a.border,
a.gap_sm,
t.atoms.border_contrast_medium,
t.atoms.bg_contrast_25,
]}>
<View style={[a.flex_row, a.gap_sm, a.align_center]}>
<Shapes />
<Text style={[a.text_xl, a.font_bold, a.leading_tight]}>
<Trans>Your interests</Trans>
</Text>
</View>
<Text style={[a.text_md, a.font_bold, a.leading_tight]}>
<Trans>Your interests</Trans>
</Text>
{preferences?.interests?.tags &&
preferences.interests.tags.length > 0 ? (
@@ -78,11 +76,12 @@ export function ExploreInterestsCard() {
a.justify_center,
a.align_center,
a.rounded_full,
t.atoms.bg_contrast_25,
a.border,
t.atoms.border_contrast_medium,
a.px_lg,
{height: 32},
]}>
<Text style={[a.text_sm, t.atoms.text_contrast_high]}>
<Text style={[a.text_sm, t.atoms.text_contrast_medium]}>
{interestsDisplayNames[tag]}
</Text>
</View>
@@ -90,8 +89,10 @@ export function ExploreInterestsCard() {
</View>
) : null}
<Text style={[a.text_sm, a.leading_snug]}>
<Trans>Your interests help us find what you like!</Trans>
<Text style={[a.text_sm, a.leading_snug, a.pb_xs]}>
<Trans>
Your selected interests help us serve you content you care about.
</Trans>
</Text>
<Link
@@ -109,15 +110,15 @@ export function ExploreInterestsCard() {
<Button
label={_(msg`Hide this card`)}
size="small"
variant="ghost"
variant="solid"
color="secondary"
shape="round"
onPress={onClose}
style={[
a.absolute,
{top: a.pt_sm.paddingTop, right: a.pr_sm.paddingRight},
{top: a.pt_xs.paddingTop, right: a.pr_xs.paddingRight},
]}>
<ButtonIcon icon={X} size="md" />
<ButtonIcon icon={X} />
</Button>
</View>
</View>
@@ -17,7 +17,6 @@ import {atoms as a} from '#/alf'
import {Button} from '#/components/Button'
import * as ProfileCard from '#/components/ProfileCard'
import {boostInterests, Tabs} from '#/components/ProgressGuide/FollowDialog'
import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography'
import type * as bsky from '#/types/bsky'
@@ -134,7 +133,10 @@ let Tab = ({
a.py_sm,
a.border,
active || hovered || pressed || focused
? [t.atoms.bg_contrast_25, t.atoms.border_contrast_medium]
? [
t.atoms.bg_contrast_25,
{borderColor: t.atoms.bg_contrast_25.backgroundColor},
]
: [t.atoms.bg, t.atoms.border_contrast_low],
]}>
<Text
@@ -184,52 +186,47 @@ let SuggestedProfileCard = ({
{statsig: true},
)
}}>
{s => (
<>
<SubtleHover hover={s.hovered || s.pressed} />
<View
style={[
a.flex_1,
a.w_full,
a.py_lg,
a.px_lg,
a.border_t,
t.atoms.border_contrast_low,
]}>
<ProfileCard.Outer>
<ProfileCard.Header>
<ProfileCard.Avatar
profile={profile}
moderationOpts={moderationOpts}
/>
<ProfileCard.NameAndHandle
profile={profile}
moderationOpts={moderationOpts}
/>
<ProfileCard.FollowButton
profile={profile}
moderationOpts={moderationOpts}
withIcon={false}
logContext="ExploreSuggestedAccounts"
onFollow={() => {
logger.metric(
'suggestedUser:follow',
{
logContext: 'Explore',
location: 'Card',
recId,
position,
},
{statsig: true},
)
}}
/>
</ProfileCard.Header>
<ProfileCard.Description profile={profile} numberOfLines={2} />
</ProfileCard.Outer>
</View>
</>
)}
<View
style={[
a.w_full,
a.py_lg,
a.px_lg,
a.border_t,
t.atoms.border_contrast_low,
a.flex_1,
]}>
<ProfileCard.Outer>
<ProfileCard.Header>
<ProfileCard.Avatar
profile={profile}
moderationOpts={moderationOpts}
/>
<ProfileCard.NameAndHandle
profile={profile}
moderationOpts={moderationOpts}
/>
<ProfileCard.FollowButton
profile={profile}
moderationOpts={moderationOpts}
withIcon={false}
logContext="ExploreSuggestedAccounts"
onFollow={() => {
logger.metric(
'suggestedUser:follow',
{
logContext: 'Explore',
location: 'Card',
recId,
position,
},
{statsig: true},
)
}}
/>
</ProfileCard.Header>
<ProfileCard.Description profile={profile} numberOfLines={2} />
</ProfileCard.Outer>
</View>
</ProfileCard.Link>
)
}
@@ -17,7 +17,6 @@ import {type Props as SVGIconProps} from '#/components/icons/common'
import {Flame_Stroke2_Corner1_Rounded as FlameIcon} from '#/components/icons/Flame'
import {Trending3_Stroke2_Corner1_Rounded as TrendingIcon} from '#/components/icons/Trending'
import {Link} from '#/components/Link'
import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography'
const TOPIC_COUNT = 5
@@ -29,10 +28,10 @@ export function ExploreTrendingTopics() {
}
function Inner() {
const {data: trending, error, isLoading, isRefetching} = useGetTrendsQuery()
const {data: trending, error, isLoading} = useGetTrendsQuery()
const noTopics = !isLoading && !error && !trending?.trends?.length
return isLoading || isRefetching ? (
return isLoading ? (
Array.from({length: TOPIC_COUNT}).map((__, i) => (
<TrendingTopicRowSkeleton key={i} withPosts={i === 0} />
))
@@ -93,23 +92,25 @@ export function TrendRow({
PressableComponent={Pressable}>
{({hovered, pressed}) => (
<>
<SubtleHover hover={hovered || pressed} />
<View style={[gutters, a.w_full, a.py_lg, a.flex_row, a.gap_2xs]}>
<View
style={[
gutters,
a.w_full,
a.py_lg,
a.flex_row,
a.gap_2xs,
(hovered || pressed) && t.atoms.bg_contrast_25,
]}>
<View style={[a.flex_1, a.gap_xs]}>
<View style={[a.flex_row]}>
<Text
style={[
a.text_md,
a.font_bold,
a.leading_tight,
{width: 20},
]}>
style={[a.text_md, a.font_bold, a.leading_snug, {width: 20}]}>
<Trans comment='The trending topic rank, i.e. "1. March Madness", "2. The Bachelor"'>
{rank}.
</Trans>
</Text>
<Text
style={[a.text_md, a.font_bold, a.leading_tight]}
style={[a.text_md, a.font_bold, a.leading_snug]}
numberOfLines={1}>
{trend.displayName}
</Text>
+13 -58
View File
@@ -34,41 +34,6 @@ const RQKEY_ROOT = 'feed-previews'
const RQKEY = (feeds: string[]) => [RQKEY_ROOT, feeds]
const LIMIT = 8 // sliced to 6, overfetch to account for moderation
const PINNED_POST_URIS: Record<string, boolean> = {
// 📰 News
'at://did:plc:kkf4naxqmweop7dv4l2iqqf5/app.bsky.feed.post/3lgh27w2ngc2b':
true,
// Gardening
'at://did:plc:5rw2on4i56btlcajojaxwcat/app.bsky.feed.post/3kjorckgcwc27':
true,
// Web Development Trending
'at://did:plc:m2sjv3wncvsasdapla35hzwj/app.bsky.feed.post/3lfaw445axs22':
true,
// Anime & Manga EN
'at://did:plc:tazrmeme4dzahimsykusrwrk/app.bsky.feed.post/3knxx2gmkns2y':
true,
// 📽️ Film
'at://did:plc:2hwwem55ce6djnk6bn62cstr/app.bsky.feed.post/3llhpzhbq7c2g':
true,
// PopSky
'at://did:plc:lfdf4srj43iwdng7jn35tjsp/app.bsky.feed.post/3lbblgly65c2g':
true,
// Science
'at://did:plc:hu2obebw3nhfj667522dahfg/app.bsky.feed.post/3kl33otd6ob2s':
true,
// Birds! 🦉
'at://did:plc:ffkgesg3jsv2j7aagkzrtcvt/app.bsky.feed.post/3lbg4r57yk22d':
true,
// Astronomy
'at://did:plc:xy2zorw2ys47poflotxthlzg/app.bsky.feed.post/3kyzye4lujs2w':
true,
// What's Cooking 🍽️
'at://did:plc:geoqe3qls5mwezckxxsewys2/app.bsky.feed.post/3lfqhgvxbqc2q':
true,
// BookSky 💙📚 #booksky
'at://did:plc:geoqe3qls5mwezckxxsewys2/app.bsky.feed.post/3kgrm2rw5ww2e':
true,
}
export type FeedPreviewItem =
| {
@@ -108,7 +73,6 @@ export type FeedPreviewItem =
key: string
slice: FeedPostSlice
indexInSlice: number
feed: AppBskyFeedDefs.GeneratorView
showReplyTo: boolean
hideTopBorder: boolean
}
@@ -216,24 +180,19 @@ export function useFeedPreviews(
feedContext: item.feedContext,
reason: item.reason,
feedPostUri: item.feedPostUri,
items: item.items
.slice(0, 6)
.filter(subItem => {
return !PINNED_POST_URIS[subItem.post.uri]
})
.map((subItem, i) => {
const feedPostSliceItem: FeedPostSliceItem = {
_reactKey: `${item._reactKey}-${i}-${subItem.post.uri}`,
uri: subItem.post.uri,
post: subItem.post,
record: subItem.record,
moderation: moderations[i],
parentAuthor: subItem.parentAuthor,
isParentBlocked: subItem.isParentBlocked,
isParentNotFound: subItem.isParentNotFound,
}
return feedPostSliceItem
}),
items: item.items.slice(0, 6).map((subItem, i) => {
const feedPostSliceItem: FeedPostSliceItem = {
_reactKey: `${item._reactKey}-${i}-${subItem.post.uri}`,
uri: subItem.post.uri,
post: subItem.post,
record: subItem.record,
moderation: moderations[i],
parentAuthor: subItem.parentAuthor,
isParentBlocked: subItem.isParentBlocked,
isParentNotFound: subItem.isParentNotFound,
}
return feedPostSliceItem
}),
}
if (slice.isIncompleteThread && slice.items.length >= 3) {
const beforeLast = slice.items.length - 2
@@ -243,7 +202,6 @@ export function useFeedPreviews(
key: slice.items[0]._reactKey,
slice: slice,
indexInSlice: 0,
feed: page.feed,
showReplyTo: false,
hideTopBorder: rowIndex === 0,
})
@@ -257,7 +215,6 @@ export function useFeedPreviews(
key: slice.items[beforeLast]._reactKey,
slice: slice,
indexInSlice: beforeLast,
feed: page.feed,
showReplyTo:
slice.items[beforeLast].parentAuthor?.did !==
slice.items[beforeLast].post.author.did,
@@ -268,7 +225,6 @@ export function useFeedPreviews(
key: slice.items[last]._reactKey,
slice: slice,
indexInSlice: last,
feed: page.feed,
showReplyTo: false,
hideTopBorder: false,
})
@@ -279,7 +235,6 @@ export function useFeedPreviews(
key: slice.items[i]._reactKey,
slice: slice,
indexInSlice: i,
feed: page.feed,
showReplyTo: i === 0,
hideTopBorder: i === 0 && rowIndex === 0,
})
@@ -20,7 +20,8 @@ export function useGetSuggestedFeedsQuery() {
return useQuery({
enabled: !!preferences,
staleTime: STALE.MINUTES.THREE,
refetchOnWindowFocus: true,
staleTime: STALE.MINUTES.ONE,
queryKey: createGetSuggestedFeedsQueryKey(),
queryFn: async () => {
const contentLangs = getContentLanguages().join(',')
@@ -27,14 +27,14 @@ export function useGetSuggestedUsersQuery(props: QueryProps) {
return useQuery({
enabled: !!preferences,
staleTime: STALE.MINUTES.THREE,
refetchOnWindowFocus: true,
staleTime: STALE.MINUTES.ONE,
queryKey: createGetSuggestedUsersQueryKey(props),
queryFn: async () => {
const contentLangs = getContentLanguages().join(',')
const {data} = await agent.app.bsky.unspecced.getSuggestedUsers(
{
category: props.category ?? undefined,
limit: 10,
},
{
headers: {
@@ -25,6 +25,7 @@ export function useGetTrendsQuery() {
return useQuery({
enabled: !!preferences,
refetchOnWindowFocus: true,
staleTime: STALE.MINUTES.THREE,
queryKey: createGetTrendsQueryKey(),
queryFn: async () => {
@@ -20,7 +20,8 @@ export function useSuggestedStarterPacksQuery() {
return useQuery({
enabled: !!preferences,
staleTime: STALE.MINUTES.THREE,
refetchOnWindowFocus: true,
staleTime: STALE.MINUTES.ONE,
queryKey: createSuggestedStarterPacksQueryKey(),
async queryFn() {
const {data} = await agent.app.bsky.unspecced.getSuggestedStarterPacks(
+489 -486
View File
File diff suppressed because it is too large Load Diff