PWI behavior updates (#2207)

* Enable PWI

* Disable access to feeds on PWI

* Remove feeds nav item from drawer when signed out

* Replace discover feed on home with a CTA

* Wire up the sign in and create account buttons to go straight to their respective screens

* Give a custom ScreenHider interface for no-pwi

* Add side borders on desktop to the screen hider

* Filter accounts in the autocomplete according to mod settings

* Trim replies in the post thread that are pwi opt-out

* Show 'learn more' on the content hider when no-override is enabled

* Apply the moderation filter on profile cards

* Disable post search on logged-out view

* Update locale files

* Bump api pkg

* Ensure feeds with no posts don't show as NSFPublic

* Fix types

---------

Co-authored-by: Eric Bailey <git@esb.lol>
zio/stable
Paul Frazee 2023-12-14 10:31:49 -08:00 committed by GitHub
parent 7fd7970237
commit 075ffdf583
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 839 additions and 443 deletions

View File

@ -35,7 +35,7 @@
"intl:compile": "lingui compile"
},
"dependencies": {
"@atproto/api": "^0.7.3",
"@atproto/api": "^0.7.4",
"@bam.tech/react-native-image-resizer": "^3.0.4",
"@braintree/sanitize-url": "^6.0.2",
"@emoji-mart/react": "^1.1.1",

View File

@ -182,7 +182,7 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) {
<Stack.Screen
name="ProfileFeed"
getComponent={() => ProfileFeedScreen}
options={{title: title('Feed')}}
options={{title: title('Feed'), requireAuth: true}}
/>
<Stack.Screen
name="ProfileFeedLikedBy"
@ -327,7 +327,11 @@ function FeedsTabNavigator() {
animationDuration: 250,
contentStyle,
}}>
<FeedsTab.Screen name="Feeds" getComponent={() => FeedsScreen} />
<FeedsTab.Screen
name="Feeds"
getComponent={() => FeedsScreen}
options={{requireAuth: true}}
/>
{commonScreens(FeedsTab as typeof HomeTab)}
</FeedsTab.Navigator>
)

View File

@ -1,2 +1,2 @@
export const LOGIN_INCLUDE_DEV_SERVERS = true
export const PWI_ENABLED = false
export const PWI_ENABLED = true

View File

@ -47,7 +47,7 @@ msgstr ""
msgid "{invitesAvailable} invite codes available"
msgstr ""
#: src/view/screens/Search/Search.tsx:87
#: src/view/screens/Search/Search.tsx:88
msgid "{message}"
msgstr ""
@ -95,7 +95,7 @@ msgstr ""
#: src/view/com/modals/ListAddRemoveUsers.tsx:264
#: src/view/com/modals/UserAddRemoveLists.tsx:193
#: src/view/screens/ProfileList.tsx:783
#: src/view/screens/ProfileList.tsx:753
msgid "Add"
msgstr ""
@ -103,7 +103,7 @@ msgstr ""
msgid "Add a content warning"
msgstr ""
#: src/view/screens/ProfileList.tsx:773
#: src/view/screens/ProfileList.tsx:743
msgid "Add a user to this list"
msgstr ""
@ -142,7 +142,7 @@ msgstr ""
msgid "Add to Lists"
msgstr ""
#: src/view/screens/ProfileFeed.tsx:280
#: src/view/screens/ProfileFeed.tsx:275
msgid "Add to my feeds"
msgstr ""
@ -228,7 +228,7 @@ msgstr ""
msgid "Are you sure you'd like to discard this draft?"
msgstr ""
#: src/view/screens/ProfileList.tsx:375
#: src/view/screens/ProfileList.tsx:351
msgid "Are you sure?"
msgstr ""
@ -250,9 +250,9 @@ msgstr ""
#: src/view/com/auth/login/LoginForm.tsx:249
#: src/view/com/auth/login/SetNewPasswordForm.tsx:148
#: src/view/com/modals/report/InputIssueDetails.tsx:45
#: src/view/com/post-thread/PostThread.tsx:392
#: src/view/com/post-thread/PostThread.tsx:442
#: src/view/com/post-thread/PostThread.tsx:450
#: src/view/com/post-thread/PostThread.tsx:395
#: src/view/com/post-thread/PostThread.tsx:445
#: src/view/com/post-thread/PostThread.tsx:453
#: src/view/com/profile/ProfileHeader.tsx:672
msgid "Back"
msgstr ""
@ -275,15 +275,15 @@ msgstr ""
msgid "Block Account"
msgstr ""
#: src/view/screens/ProfileList.tsx:545
#: src/view/screens/ProfileList.tsx:521
msgid "Block accounts"
msgstr ""
#: src/view/screens/ProfileList.tsx:495
#: src/view/screens/ProfileList.tsx:471
msgid "Block list"
msgstr ""
#: src/view/screens/ProfileList.tsx:330
#: src/view/screens/ProfileList.tsx:306
msgid "Block these accounts?"
msgstr ""
@ -303,14 +303,19 @@ msgstr ""
msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours."
msgstr ""
#: src/view/com/post-thread/PostThread.tsx:248
#: src/view/com/post-thread/PostThread.tsx:251
msgid "Blocked post."
msgstr ""
#: src/view/screens/ProfileList.tsx:332
#: src/view/screens/ProfileList.tsx:308
msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you."
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:93
msgid "Blog"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:31
#: src/view/com/auth/SplashScreen.tsx:26
msgid "Bluesky"
msgstr ""
@ -343,6 +348,10 @@ msgstr ""
msgid "Build version {0} {1}"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:87
msgid "Business"
msgstr ""
#: src/view/com/composer/photos/OpenCameraBtn.tsx:60
#: src/view/com/util/UserAvatar.tsx:221
#: src/view/com/util/UserBanner.tsx:38
@ -368,7 +377,7 @@ msgstr ""
#: src/view/com/modals/LinkWarning.tsx:85
#: src/view/com/modals/Repost.tsx:73
#: src/view/com/modals/Waitlist.tsx:136
#: src/view/screens/Search/Search.tsx:558
#: src/view/screens/Search/Search.tsx:592
#: src/view/shell/desktop/Search.tsx:182
msgid "Cancel"
msgstr ""
@ -473,7 +482,7 @@ msgid "Clear all storage data (restart after this)"
msgstr ""
#: src/view/com/util/forms/SearchInput.tsx:73
#: src/view/screens/Search/Search.tsx:543
#: src/view/screens/Search/Search.tsx:577
msgid "Clear search query"
msgstr ""
@ -551,7 +560,7 @@ msgstr ""
msgid "Content Languages"
msgstr ""
#: src/view/com/util/moderation/ScreenHider.tsx:69
#: src/view/com/util/moderation/ScreenHider.tsx:78
msgid "Content Warning"
msgstr ""
@ -573,7 +582,7 @@ msgstr ""
msgid "Copy"
msgstr ""
#: src/view/screens/ProfileList.tsx:407
#: src/view/screens/ProfileList.tsx:383
msgid "Copy link to list"
msgstr ""
@ -593,14 +602,15 @@ msgstr ""
msgid "Copyright Policy"
msgstr ""
#: src/view/screens/ProfileFeed.tsx:103
#: src/view/screens/ProfileFeed.tsx:98
msgid "Could not load feed"
msgstr ""
#: src/view/screens/ProfileList.tsx:860
#: src/view/screens/ProfileList.tsx:829
msgid "Could not load list"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:62
#: src/view/com/auth/SplashScreen.tsx:41
msgid "Create a new account"
msgstr ""
@ -609,6 +619,7 @@ msgstr ""
msgid "Create Account"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:54
#: src/view/com/auth/SplashScreen.tsx:38
msgid "Create new account"
msgstr ""
@ -643,8 +654,8 @@ msgstr ""
msgid "Delete app password"
msgstr ""
#: src/view/screens/ProfileList.tsx:374
#: src/view/screens/ProfileList.tsx:434
#: src/view/screens/ProfileList.tsx:350
#: src/view/screens/ProfileList.tsx:410
msgid "Delete List"
msgstr ""
@ -664,7 +675,7 @@ msgstr ""
msgid "Delete this post?"
msgstr ""
#: src/view/com/post-thread/PostThread.tsx:240
#: src/view/com/post-thread/PostThread.tsx:243
msgid "Deleted post."
msgstr ""
@ -739,7 +750,7 @@ msgstr ""
msgid "Edit image"
msgstr ""
#: src/view/screens/ProfileList.tsx:422
#: src/view/screens/ProfileList.tsx:398
msgid "Edit list details"
msgstr ""
@ -787,7 +798,7 @@ msgstr ""
msgid "Enable this setting to only see replies between people you follow."
msgstr ""
#: src/view/screens/Profile.tsx:471
#: src/view/screens/Profile.tsx:425
msgid "End of feed"
msgstr ""
@ -815,7 +826,7 @@ msgstr ""
msgid "Enter your username and password"
msgstr ""
#: src/view/screens/Search/Search.tsx:105
#: src/view/screens/Search/Search.tsx:106
msgid "Error:"
msgstr ""
@ -836,7 +847,7 @@ msgstr ""
msgid "Feed offline"
msgstr ""
#: src/view/com/feeds/FeedPage.tsx:140
#: src/view/com/feeds/FeedPage.tsx:143
msgid "Feed Preferences"
msgstr ""
@ -847,8 +858,8 @@ msgstr ""
#: src/view/screens/Feeds.tsx:475
#: src/view/screens/Profile.tsx:164
#: src/view/shell/bottom-bar/BottomBar.tsx:160
#: src/view/shell/desktop/LeftNav.tsx:333
#: src/view/shell/bottom-bar/BottomBar.tsx:163
#: src/view/shell/desktop/LeftNav.tsx:335
#: src/view/shell/Drawer.tsx:455
#: src/view/shell/Drawer.tsx:456
msgid "Feeds"
@ -862,6 +873,14 @@ msgstr ""
msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information."
msgstr ""
#: src/view/screens/Search/Search.tsx:422
msgid "Find users on Bluesky"
msgstr ""
#: src/view/screens/Search/Search.tsx:420
msgid "Find users with the search tool on the right"
msgstr ""
#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150
msgid "Finding similar accounts..."
msgstr ""
@ -940,17 +959,17 @@ msgstr ""
msgid "Get Started"
msgstr ""
#: src/view/com/auth/LoggedOut.tsx:68
#: src/view/com/auth/LoggedOut.tsx:69
#: src/view/com/util/moderation/ScreenHider.tsx:105
#: src/view/com/auth/LoggedOut.tsx:70
#: src/view/com/auth/LoggedOut.tsx:71
#: src/view/com/util/moderation/ScreenHider.tsx:123
#: src/view/shell/desktop/LeftNav.tsx:103
msgid "Go back"
msgstr ""
#: src/view/screens/ProfileFeed.tsx:107
#: src/view/screens/ProfileFeed.tsx:112
#: src/view/screens/ProfileFeed.tsx:117
#: src/view/screens/ProfileList.tsx:869
#: src/view/screens/ProfileList.tsx:874
#: src/view/screens/ProfileList.tsx:838
#: src/view/screens/ProfileList.tsx:843
msgid "Go Back"
msgstr ""
@ -974,6 +993,7 @@ msgid "Here is your app password."
msgstr ""
#: src/view/com/notifications/FeedItem.tsx:316
#: src/view/com/util/moderation/ContentHider.tsx:103
msgid "Hide"
msgstr ""
@ -1082,6 +1102,10 @@ msgstr ""
msgid "Invite codes: {invitesAvailable} available"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:99
msgid "Jobs"
msgstr ""
#: src/view/com/modals/Waitlist.tsx:67
msgid "Join the waitlist"
msgstr ""
@ -1107,9 +1131,13 @@ msgstr ""
msgid "Languages"
msgstr ""
#: src/view/com/util/moderation/ContentHider.tsx:101
msgid "Learn more"
msgstr ""
#: src/view/com/util/moderation/PostAlerts.tsx:47
#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65
#: src/view/com/util/moderation/ScreenHider.tsx:88
#: src/view/com/util/moderation/ScreenHider.tsx:104
msgid "Learn More"
msgstr ""
@ -1117,7 +1145,7 @@ msgstr ""
#: src/view/com/util/moderation/PostAlerts.tsx:40
#: src/view/com/util/moderation/PostHider.tsx:76
#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49
#: src/view/com/util/moderation/ScreenHider.tsx:85
#: src/view/com/util/moderation/ScreenHider.tsx:101
msgid "Learn more about this warning"
msgstr ""
@ -1147,7 +1175,7 @@ msgstr ""
#~ msgid "Light"
#~ msgstr ""
#: src/view/screens/ProfileFeed.tsx:643
#: src/view/screens/ProfileFeed.tsx:627
msgid "Like this feed"
msgstr ""
@ -1177,22 +1205,22 @@ msgid "List Name"
msgstr ""
#: src/view/screens/Profile.tsx:165
#: src/view/shell/desktop/LeftNav.tsx:373
#: src/view/shell/desktop/LeftNav.tsx:372
#: src/view/shell/Drawer.tsx:471
#: src/view/shell/Drawer.tsx:472
msgid "Lists"
msgstr ""
#: src/view/com/post-thread/PostThread.tsx:257
#: src/view/com/post-thread/PostThread.tsx:265
#: src/view/com/post-thread/PostThread.tsx:260
#: src/view/com/post-thread/PostThread.tsx:268
msgid "Load more posts"
msgstr ""
#: src/view/screens/Notifications.tsx:141
#: src/view/screens/Notifications.tsx:144
msgid "Load new notifications"
msgstr ""
#: src/view/com/feeds/FeedPage.tsx:185
#: src/view/com/feeds/FeedPage.tsx:189
msgid "Load new posts"
msgstr ""
@ -1216,7 +1244,7 @@ msgstr ""
msgid "Login to account that is not listed"
msgstr ""
#: src/view/screens/ProfileFeed.tsx:482
#: src/view/screens/ProfileFeed.tsx:472
msgid "Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!"
msgstr ""
@ -1236,18 +1264,18 @@ msgstr ""
msgid "Mentioned users"
msgstr ""
#: src/view/screens/Search/Search.tsx:503
#: src/view/screens/Search/Search.tsx:537
msgid "Menu"
msgstr ""
#: src/view/com/posts/FeedErrorMessage.tsx:194
#: src/view/screens/ProfileFeed.tsx:490
#: src/view/screens/ProfileFeed.tsx:480
msgid "Message from server"
msgstr ""
#: src/view/screens/Moderation.tsx:64
#: src/view/screens/Settings.tsx:563
#: src/view/shell/desktop/LeftNav.tsx:391
#: src/view/shell/desktop/LeftNav.tsx:390
#: src/view/shell/Drawer.tsx:490
#: src/view/shell/Drawer.tsx:491
msgid "Moderation"
@ -1266,8 +1294,8 @@ msgid "More feeds"
msgstr ""
#: src/view/com/profile/ProfileHeader.tsx:548
#: src/view/screens/ProfileFeed.tsx:370
#: src/view/screens/ProfileList.tsx:606
#: src/view/screens/ProfileFeed.tsx:365
#: src/view/screens/ProfileList.tsx:582
msgid "More options"
msgstr ""
@ -1279,15 +1307,15 @@ msgstr ""
msgid "Mute Account"
msgstr ""
#: src/view/screens/ProfileList.tsx:533
#: src/view/screens/ProfileList.tsx:509
msgid "Mute accounts"
msgstr ""
#: src/view/screens/ProfileList.tsx:480
#: src/view/screens/ProfileList.tsx:456
msgid "Mute list"
msgstr ""
#: src/view/screens/ProfileList.tsx:293
#: src/view/screens/ProfileList.tsx:269
msgid "Mute these accounts?"
msgstr ""
@ -1307,7 +1335,7 @@ msgstr ""
msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private."
msgstr ""
#: src/view/screens/ProfileList.tsx:295
#: src/view/screens/ProfileList.tsx:271
msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them."
msgstr ""
@ -1345,12 +1373,12 @@ msgstr ""
msgid "New"
msgstr ""
#: src/view/com/feeds/FeedPage.tsx:196
#: src/view/com/feeds/FeedPage.tsx:200
#: src/view/screens/Feeds.tsx:510
#: src/view/screens/Profile.tsx:389
#: src/view/screens/ProfileFeed.tsx:451
#: src/view/screens/ProfileList.tsx:212
#: src/view/screens/ProfileList.tsx:244
#: src/view/screens/Profile.tsx:353
#: src/view/screens/ProfileFeed.tsx:441
#: src/view/screens/ProfileList.tsx:192
#: src/view/screens/ProfileList.tsx:220
#: src/view/shell/desktop/LeftNav.tsx:246
msgid "New post"
msgstr ""
@ -1379,8 +1407,8 @@ msgstr ""
msgid "No"
msgstr ""
#: src/view/screens/ProfileFeed.tsx:636
#: src/view/screens/ProfileList.tsx:740
#: src/view/screens/ProfileFeed.tsx:620
#: src/view/screens/ProfileList.tsx:710
msgid "No description"
msgstr ""
@ -1398,9 +1426,9 @@ msgstr ""
#~ msgstr ""
#: src/view/com/modals/ListAddRemoveUsers.tsx:127
#: src/view/screens/Search/Search.tsx:270
#: src/view/screens/Search/Search.tsx:298
#: src/view/screens/Search/Search.tsx:581
#: src/view/screens/Search/Search.tsx:271
#: src/view/screens/Search/Search.tsx:299
#: src/view/screens/Search/Search.tsx:615
#: src/view/shell/desktop/Search.tsx:210
msgid "No results found for {query}"
msgstr ""
@ -1429,10 +1457,10 @@ msgstr ""
#~ msgid "Note: Third-party apps that display Bluesky content may not respect this setting."
#~ msgstr ""
#: src/view/screens/Notifications.tsx:108
#: src/view/screens/Notifications.tsx:132
#: src/view/screens/Notifications.tsx:109
#: src/view/screens/Notifications.tsx:133
#: src/view/shell/bottom-bar/BottomBar.tsx:187
#: src/view/shell/desktop/LeftNav.tsx:355
#: src/view/shell/desktop/LeftNav.tsx:354
#: src/view/shell/Drawer.tsx:416
#: src/view/shell/Drawer.tsx:417
msgid "Notifications"
@ -1570,12 +1598,12 @@ msgid "Please tell us why you think this decision was incorrect."
msgstr ""
#: src/view/com/composer/Composer.tsx:331
#: src/view/com/post-thread/PostThread.tsx:223
#: src/view/com/post-thread/PostThread.tsx:226
#: src/view/screens/PostThread.tsx:78
msgid "Post"
msgstr ""
#: src/view/com/post-thread/PostThread.tsx:382
#: src/view/com/post-thread/PostThread.tsx:385
msgid "Post hidden"
msgstr ""
@ -1587,7 +1615,7 @@ msgstr ""
msgid "Post Languages"
msgstr ""
#: src/view/com/post-thread/PostThread.tsx:434
#: src/view/com/post-thread/PostThread.tsx:437
msgid "Post not found"
msgstr ""
@ -1690,7 +1718,7 @@ msgstr ""
#: src/view/com/feeds/FeedSourceCard.tsx:105
#: src/view/com/feeds/FeedSourceCard.tsx:172
#: src/view/screens/ProfileFeed.tsx:280
#: src/view/screens/ProfileFeed.tsx:275
msgid "Remove from my feeds"
msgstr ""
@ -1735,11 +1763,11 @@ msgstr ""
msgid "Report Account"
msgstr ""
#: src/view/screens/ProfileFeed.tsx:300
#: src/view/screens/ProfileFeed.tsx:295
msgid "Report feed"
msgstr ""
#: src/view/screens/ProfileList.tsx:448
#: src/view/screens/ProfileList.tsx:424
msgid "Report List"
msgstr ""
@ -1851,8 +1879,8 @@ msgstr ""
#: src/view/com/modals/ListAddRemoveUsers.tsx:75
#: src/view/com/util/forms/SearchInput.tsx:64
#: src/view/screens/Search/Search.tsx:381
#: src/view/screens/Search/Search.tsx:533
#: src/view/screens/Search/Search.tsx:401
#: src/view/screens/Search/Search.tsx:567
#: src/view/shell/bottom-bar/BottomBar.tsx:138
#: src/view/shell/desktop/LeftNav.tsx:315
#: src/view/shell/desktop/Search.tsx:161
@ -1863,13 +1891,14 @@ msgid "Search"
msgstr ""
#: src/view/screens/Search/Search.tsx:390
msgid "Search for posts and users."
msgstr ""
#~ msgid "Search for posts and users."
#~ msgstr ""
#: src/view/com/modals/ChangeEmail.tsx:110
msgid "Security Step Required"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:39
#: src/view/com/auth/SplashScreen.tsx:29
msgid "See what's next"
msgstr ""
@ -1944,7 +1973,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f
msgstr ""
#: src/view/screens/Settings.tsx:277
#: src/view/shell/desktop/LeftNav.tsx:427
#: src/view/shell/desktop/LeftNav.tsx:426
#: src/view/shell/Drawer.tsx:546
#: src/view/shell/Drawer.tsx:547
msgid "Settings"
@ -1956,11 +1985,11 @@ msgstr ""
#: src/view/com/profile/ProfileHeader.tsx:338
#: src/view/com/util/forms/PostDropdownBtn.tsx:129
#: src/view/screens/ProfileList.tsx:407
#: src/view/screens/ProfileList.tsx:383
msgid "Share"
msgstr ""
#: src/view/screens/ProfileFeed.tsx:312
#: src/view/screens/ProfileFeed.tsx:307
msgid "Share feed"
msgstr ""
@ -1968,11 +1997,12 @@ msgstr ""
#~ msgid "Share link"
#~ msgstr ""
#: src/view/com/util/moderation/ContentHider.tsx:105
#: src/view/screens/Settings.tsx:316
msgid "Show"
msgstr ""
#: src/view/com/util/moderation/ScreenHider.tsx:114
#: src/view/com/util/moderation/ScreenHider.tsx:132
msgid "Show anyway"
msgstr ""
@ -2000,13 +2030,15 @@ msgstr ""
msgid "Show users"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:70
#: src/view/com/auth/login/Login.tsx:98
#: src/view/com/auth/SplashScreen.tsx:49
#: src/view/shell/NavSignupCard.tsx:52
#: src/view/shell/NavSignupCard.tsx:53
#: src/view/shell/NavSignupCard.tsx:58
#: src/view/shell/NavSignupCard.tsx:59
msgid "Sign in"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:78
#: src/view/com/auth/SplashScreen.tsx:52
#: src/view/com/auth/SplashScreen.web.tsx:84
msgid "Sign In"
@ -2030,16 +2062,20 @@ msgstr ""
msgid "Sign out"
msgstr ""
#: src/view/shell/NavSignupCard.tsx:43
#: src/view/shell/NavSignupCard.tsx:44
#: src/view/shell/NavSignupCard.tsx:46
#: src/view/shell/NavSignupCard.tsx:49
#: src/view/shell/NavSignupCard.tsx:50
#: src/view/shell/NavSignupCard.tsx:52
msgid "Sign up"
msgstr ""
#: src/view/shell/NavSignupCard.tsx:36
#: src/view/shell/NavSignupCard.tsx:42
msgid "Sign up or sign in to join the conversation"
msgstr ""
#: src/view/com/util/moderation/ScreenHider.tsx:76
msgid "Sign-in Required"
msgstr ""
#: src/view/screens/Settings.tsx:327
msgid "Signed in as"
msgstr ""
@ -2077,15 +2113,15 @@ msgstr ""
msgid "Submit"
msgstr "Submit"
#: src/view/screens/ProfileList.tsx:597
#: src/view/screens/ProfileList.tsx:573
msgid "Subscribe"
msgstr ""
#: src/view/screens/ProfileList.tsx:593
#: src/view/screens/ProfileList.tsx:569
msgid "Subscribe to this list"
msgstr ""
#: src/view/screens/Search/Search.tsx:354
#: src/view/screens/Search/Search.tsx:357
msgid "Suggested Follows"
msgstr ""
@ -2135,7 +2171,7 @@ msgstr ""
msgid "The Copyright Policy has been moved to <0/>"
msgstr ""
#: src/view/com/post-thread/PostThread.tsx:437
#: src/view/com/post-thread/PostThread.tsx:440
msgid "The post may have been deleted."
msgstr ""
@ -2159,10 +2195,14 @@ msgstr ""
msgid "This {0} has been labeled."
msgstr ""
#: src/view/com/util/moderation/ScreenHider.tsx:72
#: src/view/com/util/moderation/ScreenHider.tsx:88
msgid "This {screenDescription} has been flagged:"
msgstr ""
#: src/view/com/util/moderation/ScreenHider.tsx:83
msgid "This account has requested that users sign in to view their profile."
msgstr ""
#: src/view/com/posts/FeedErrorMessage.tsx:107
msgid "This content is not viewable without a Bluesky account."
msgstr ""
@ -2222,11 +2262,11 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/view/screens/ProfileList.tsx:495
#: src/view/screens/ProfileList.tsx:471
msgid "Un-block list"
msgstr ""
#: src/view/screens/ProfileList.tsx:480
#: src/view/screens/ProfileList.tsx:456
msgid "Un-mute list"
msgstr ""
@ -2262,7 +2302,7 @@ msgstr ""
msgid "Unmute thread"
msgstr ""
#: src/view/screens/ProfileList.tsx:463
#: src/view/screens/ProfileList.tsx:439
msgid "Unpin moderation list"
msgstr ""
@ -2311,7 +2351,7 @@ msgstr ""
msgid "Username or email address"
msgstr ""
#: src/view/screens/ProfileList.tsx:767
#: src/view/screens/ProfileList.tsx:737
msgid "Users"
msgstr ""
@ -2368,7 +2408,7 @@ msgstr ""
#~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later."
#~ msgstr ""
#: src/view/screens/Search/Search.tsx:237
#: src/view/screens/Search/Search.tsx:238
msgid "We're sorry, but your search could not be completed. Please try again in a few minutes."
msgstr ""
@ -2444,16 +2484,16 @@ msgstr ""
msgid "You don't have any saved feeds."
msgstr ""
#: src/view/com/post-thread/PostThread.tsx:385
#: src/view/com/post-thread/PostThread.tsx:388
msgid "You have blocked the author or you have been blocked by the author."
msgstr ""
#: src/view/com/feeds/ProfileFeedgens.tsx:154
#: src/view/com/feeds/ProfileFeedgens.tsx:141
msgid "You have no feeds."
msgstr ""
#: src/view/com/lists/MyLists.tsx:89
#: src/view/com/lists/ProfileLists.tsx:158
#: src/view/com/lists/ProfileLists.tsx:145
msgid "You have no lists."
msgstr ""

View File

@ -47,7 +47,7 @@ msgstr ""
msgid "{invitesAvailable} invite codes available"
msgstr ""
#: src/view/screens/Search/Search.tsx:87
#: src/view/screens/Search/Search.tsx:88
msgid "{message}"
msgstr ""
@ -95,7 +95,7 @@ msgstr "अकाउंट के विकल्प"
#: src/view/com/modals/ListAddRemoveUsers.tsx:264
#: src/view/com/modals/UserAddRemoveLists.tsx:193
#: src/view/screens/ProfileList.tsx:783
#: src/view/screens/ProfileList.tsx:753
msgid "Add"
msgstr "ऐड करो"
@ -103,7 +103,7 @@ msgstr "ऐड करो"
msgid "Add a content warning"
msgstr "सामग्री चेतावनी जोड़ें"
#: src/view/screens/ProfileList.tsx:773
#: src/view/screens/ProfileList.tsx:743
msgid "Add a user to this list"
msgstr "इस सूची में किसी को जोड़ें"
@ -142,7 +142,7 @@ msgstr "अपने डोमेन में निम्नलिखित DN
msgid "Add to Lists"
msgstr "सूचियों में जोड़ें"
#: src/view/screens/ProfileFeed.tsx:280
#: src/view/screens/ProfileFeed.tsx:275
msgid "Add to my feeds"
msgstr "इस फ़ीड को सहेजें"
@ -228,7 +228,7 @@ msgstr "क्या आप वाकई ऐप पासवर्ड \"{name}\"
msgid "Are you sure you'd like to discard this draft?"
msgstr "क्या आप वाकई इस ड्राफ्ट को हटाना करना चाहेंगे?"
#: src/view/screens/ProfileList.tsx:375
#: src/view/screens/ProfileList.tsx:351
msgid "Are you sure?"
msgstr "क्या आप वास्तव में इसे करना चाहते हैं?"
@ -250,9 +250,9 @@ msgstr "कलात्मक या गैर-कामुक नग्नत
#: src/view/com/auth/login/LoginForm.tsx:249
#: src/view/com/auth/login/SetNewPasswordForm.tsx:148
#: src/view/com/modals/report/InputIssueDetails.tsx:45
#: src/view/com/post-thread/PostThread.tsx:392
#: src/view/com/post-thread/PostThread.tsx:442
#: src/view/com/post-thread/PostThread.tsx:450
#: src/view/com/post-thread/PostThread.tsx:395
#: src/view/com/post-thread/PostThread.tsx:445
#: src/view/com/post-thread/PostThread.tsx:453
#: src/view/com/profile/ProfileHeader.tsx:672
msgid "Back"
msgstr "वापस"
@ -275,15 +275,15 @@ msgstr "जन्मदिन:"
msgid "Block Account"
msgstr "खाता ब्लॉक करें"
#: src/view/screens/ProfileList.tsx:545
#: src/view/screens/ProfileList.tsx:521
msgid "Block accounts"
msgstr "खाता ब्लॉक करें"
#: src/view/screens/ProfileList.tsx:495
#: src/view/screens/ProfileList.tsx:471
msgid "Block list"
msgstr ""
#: src/view/screens/ProfileList.tsx:330
#: src/view/screens/ProfileList.tsx:306
msgid "Block these accounts?"
msgstr "खाता ब्लॉक करें?"
@ -303,14 +303,19 @@ msgstr "अवरुद्ध खाते आपके थ्रेड्स
msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours."
msgstr "अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते। आप उनकी सामग्री नहीं देख पाएंगे और उन्हें आपकी सामग्री देखने से रोका जाएगा।"
#: src/view/com/post-thread/PostThread.tsx:248
#: src/view/com/post-thread/PostThread.tsx:251
msgid "Blocked post."
msgstr "ब्लॉक पोस्ट।"
#: src/view/screens/ProfileList.tsx:332
#: src/view/screens/ProfileList.tsx:308
msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you."
msgstr "अवरोधन सार्वजनिक है. अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:93
msgid "Blog"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:31
#: src/view/com/auth/SplashScreen.tsx:26
msgid "Bluesky"
msgstr "Bluesky"
@ -343,6 +348,10 @@ msgstr "Bluesky.Social"
msgid "Build version {0} {1}"
msgstr "Build version {0} {1}"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:87
msgid "Business"
msgstr ""
#: src/view/com/composer/photos/OpenCameraBtn.tsx:60
#: src/view/com/util/UserAvatar.tsx:221
#: src/view/com/util/UserBanner.tsx:38
@ -368,7 +377,7 @@ msgstr "केवल अक्षर, संख्या, रिक्त स्
#: src/view/com/modals/LinkWarning.tsx:85
#: src/view/com/modals/Repost.tsx:73
#: src/view/com/modals/Waitlist.tsx:136
#: src/view/screens/Search/Search.tsx:558
#: src/view/screens/Search/Search.tsx:592
#: src/view/shell/desktop/Search.tsx:182
msgid "Cancel"
msgstr "कैंसिल"
@ -469,7 +478,7 @@ msgid "Clear all storage data (restart after this)"
msgstr ""
#: src/view/com/util/forms/SearchInput.tsx:73
#: src/view/screens/Search/Search.tsx:543
#: src/view/screens/Search/Search.tsx:577
msgid "Clear search query"
msgstr "खोज क्वेरी साफ़ करें"
@ -547,7 +556,7 @@ msgstr "सामग्री फ़िल्टरिंग"
msgid "Content Languages"
msgstr "सामग्री भाषा"
#: src/view/com/util/moderation/ScreenHider.tsx:69
#: src/view/com/util/moderation/ScreenHider.tsx:78
msgid "Content Warning"
msgstr "सामग्री चेतावनी"
@ -569,7 +578,7 @@ msgstr "कॉपी कर ली"
msgid "Copy"
msgstr "कॉपी"
#: src/view/screens/ProfileList.tsx:407
#: src/view/screens/ProfileList.tsx:383
msgid "Copy link to list"
msgstr ""
@ -589,14 +598,15 @@ msgstr "पोस्ट टेक्स्ट कॉपी करें"
msgid "Copyright Policy"
msgstr "कॉपीराइट नीति"
#: src/view/screens/ProfileFeed.tsx:103
#: src/view/screens/ProfileFeed.tsx:98
msgid "Could not load feed"
msgstr "फ़ीड लोड नहीं कर सकता"
#: src/view/screens/ProfileList.tsx:860
#: src/view/screens/ProfileList.tsx:829
msgid "Could not load list"
msgstr "सूची लोड नहीं कर सकता"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:62
#: src/view/com/auth/SplashScreen.tsx:41
msgid "Create a new account"
msgstr "नया खाता बनाएं"
@ -605,6 +615,7 @@ msgstr "नया खाता बनाएं"
msgid "Create Account"
msgstr "खाता बनाएँ"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:54
#: src/view/com/auth/SplashScreen.tsx:38
msgid "Create new account"
msgstr "नया खाता बनाएं"
@ -639,8 +650,8 @@ msgstr "खाता हटाएं"
msgid "Delete app password"
msgstr "अप्प पासवर्ड हटाएं"
#: src/view/screens/ProfileList.tsx:374
#: src/view/screens/ProfileList.tsx:434
#: src/view/screens/ProfileList.tsx:350
#: src/view/screens/ProfileList.tsx:410
msgid "Delete List"
msgstr "सूची हटाएँ"
@ -660,7 +671,7 @@ msgstr "पोस्ट को हटाएं"
msgid "Delete this post?"
msgstr "इस पोस्ट को डीलीट करें?"
#: src/view/com/post-thread/PostThread.tsx:240
#: src/view/com/post-thread/PostThread.tsx:243
msgid "Deleted post."
msgstr "यह पोस्ट मिटाई जा चुकी है"
@ -735,7 +746,7 @@ msgstr "प्रत्येक कोड एक बार काम करत
msgid "Edit image"
msgstr "छवि संपादित करें"
#: src/view/screens/ProfileList.tsx:422
#: src/view/screens/ProfileList.tsx:398
msgid "Edit list details"
msgstr "सूची विवरण संपादित करें"
@ -783,7 +794,7 @@ msgstr "ईमेल:"
msgid "Enable this setting to only see replies between people you follow."
msgstr "इस सेटिंग को केवल उन लोगों के बीच जवाब देखने में सक्षम करें जिन्हें आप फॉलो करते हैं।।"
#: src/view/screens/Profile.tsx:471
#: src/view/screens/Profile.tsx:425
msgid "End of feed"
msgstr ""
@ -811,7 +822,7 @@ msgstr "नीचे अपना नया ईमेल पता दर्ज
msgid "Enter your username and password"
msgstr "अपने यूज़रनेम और पासवर्ड दर्ज करें"
#: src/view/screens/Search/Search.tsx:105
#: src/view/screens/Search/Search.tsx:106
msgid "Error:"
msgstr ""
@ -832,7 +843,7 @@ msgstr "अनुशंसित फ़ीड लोड करने में
msgid "Feed offline"
msgstr "फ़ीड ऑफ़लाइन है"
#: src/view/com/feeds/FeedPage.tsx:140
#: src/view/com/feeds/FeedPage.tsx:143
msgid "Feed Preferences"
msgstr "फ़ीड प्राथमिकता"
@ -843,8 +854,8 @@ msgstr "प्रतिक्रिया"
#: src/view/screens/Feeds.tsx:475
#: src/view/screens/Profile.tsx:164
#: src/view/shell/bottom-bar/BottomBar.tsx:160
#: src/view/shell/desktop/LeftNav.tsx:333
#: src/view/shell/bottom-bar/BottomBar.tsx:163
#: src/view/shell/desktop/LeftNav.tsx:335
#: src/view/shell/Drawer.tsx:455
#: src/view/shell/Drawer.tsx:456
msgid "Feeds"
@ -858,6 +869,14 @@ msgstr "सामग्री को व्यवस्थित करने
msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information."
msgstr "फ़ीड कस्टम एल्गोरिदम हैं जिन्हें उपयोगकर्ता थोड़ी कोडिंग विशेषज्ञता के साथ बनाते हैं। <0/> अधिक जानकारी के लिए."
#: src/view/screens/Search/Search.tsx:422
msgid "Find users on Bluesky"
msgstr ""
#: src/view/screens/Search/Search.tsx:420
msgid "Find users with the search tool on the right"
msgstr ""
#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150
msgid "Finding similar accounts..."
msgstr "मिलते-जुलते खाते ढूँढना"
@ -932,17 +951,17 @@ msgstr "गैलरी"
msgid "Get Started"
msgstr "प्रारंभ करें"
#: src/view/com/auth/LoggedOut.tsx:68
#: src/view/com/auth/LoggedOut.tsx:69
#: src/view/com/util/moderation/ScreenHider.tsx:105
#: src/view/com/auth/LoggedOut.tsx:70
#: src/view/com/auth/LoggedOut.tsx:71
#: src/view/com/util/moderation/ScreenHider.tsx:123
#: src/view/shell/desktop/LeftNav.tsx:103
msgid "Go back"
msgstr "वापस जाओ"
#: src/view/screens/ProfileFeed.tsx:107
#: src/view/screens/ProfileFeed.tsx:112
#: src/view/screens/ProfileFeed.tsx:117
#: src/view/screens/ProfileList.tsx:869
#: src/view/screens/ProfileList.tsx:874
#: src/view/screens/ProfileList.tsx:838
#: src/view/screens/ProfileList.tsx:843
msgid "Go Back"
msgstr "वापस जाओ"
@ -966,6 +985,7 @@ msgid "Here is your app password."
msgstr "यहां आपका ऐप पासवर्ड है."
#: src/view/com/notifications/FeedItem.tsx:316
#: src/view/com/util/moderation/ContentHider.tsx:103
msgid "Hide"
msgstr "इसे छिपाएं"
@ -1074,6 +1094,10 @@ msgstr ""
msgid "Invite codes: {invitesAvailable} available"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:99
msgid "Jobs"
msgstr ""
#: src/view/com/modals/Waitlist.tsx:67
msgid "Join the waitlist"
msgstr "प्रतीक्षा सूची में शामिल हों"
@ -1099,9 +1123,13 @@ msgstr "भाषा सेटिंग्स"
msgid "Languages"
msgstr "भाषा"
#: src/view/com/util/moderation/ContentHider.tsx:101
msgid "Learn more"
msgstr ""
#: src/view/com/util/moderation/PostAlerts.tsx:47
#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65
#: src/view/com/util/moderation/ScreenHider.tsx:88
#: src/view/com/util/moderation/ScreenHider.tsx:104
msgid "Learn More"
msgstr "अधिक जानें"
@ -1109,7 +1137,7 @@ msgstr "अधिक जानें"
#: src/view/com/util/moderation/PostAlerts.tsx:40
#: src/view/com/util/moderation/PostHider.tsx:76
#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49
#: src/view/com/util/moderation/ScreenHider.tsx:85
#: src/view/com/util/moderation/ScreenHider.tsx:101
msgid "Learn more about this warning"
msgstr "इस चेतावनी के बारे में अधिक जानें"
@ -1139,7 +1167,7 @@ msgstr "चित्र पुस्तकालय"
#~ msgid "Light"
#~ msgstr "लाइट मोड"
#: src/view/screens/ProfileFeed.tsx:643
#: src/view/screens/ProfileFeed.tsx:627
msgid "Like this feed"
msgstr "इस फ़ीड को लाइक करो"
@ -1169,22 +1197,22 @@ msgid "List Name"
msgstr "सूची का नाम"
#: src/view/screens/Profile.tsx:165
#: src/view/shell/desktop/LeftNav.tsx:373
#: src/view/shell/desktop/LeftNav.tsx:372
#: src/view/shell/Drawer.tsx:471
#: src/view/shell/Drawer.tsx:472
msgid "Lists"
msgstr "सूची"
#: src/view/com/post-thread/PostThread.tsx:257
#: src/view/com/post-thread/PostThread.tsx:265
#: src/view/com/post-thread/PostThread.tsx:260
#: src/view/com/post-thread/PostThread.tsx:268
msgid "Load more posts"
msgstr "अधिक पोस्ट लोड करें"
#: src/view/screens/Notifications.tsx:141
#: src/view/screens/Notifications.tsx:144
msgid "Load new notifications"
msgstr "नई सूचनाएं लोड करें"
#: src/view/com/feeds/FeedPage.tsx:185
#: src/view/com/feeds/FeedPage.tsx:189
msgid "Load new posts"
msgstr "नई पोस्ट लोड करें"
@ -1208,7 +1236,7 @@ msgstr ""
msgid "Login to account that is not listed"
msgstr "उस खाते में लॉग इन करें जो सूचीबद्ध नहीं है"
#: src/view/screens/ProfileFeed.tsx:482
#: src/view/screens/ProfileFeed.tsx:472
msgid "Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!"
msgstr ""
@ -1228,18 +1256,18 @@ msgstr ""
msgid "Mentioned users"
msgstr ""
#: src/view/screens/Search/Search.tsx:503
#: src/view/screens/Search/Search.tsx:537
msgid "Menu"
msgstr "मेनू"
#: src/view/com/posts/FeedErrorMessage.tsx:194
#: src/view/screens/ProfileFeed.tsx:490
#: src/view/screens/ProfileFeed.tsx:480
msgid "Message from server"
msgstr ""
#: src/view/screens/Moderation.tsx:64
#: src/view/screens/Settings.tsx:563
#: src/view/shell/desktop/LeftNav.tsx:391
#: src/view/shell/desktop/LeftNav.tsx:390
#: src/view/shell/Drawer.tsx:490
#: src/view/shell/Drawer.tsx:491
msgid "Moderation"
@ -1258,8 +1286,8 @@ msgid "More feeds"
msgstr "अधिक फ़ीड"
#: src/view/com/profile/ProfileHeader.tsx:548
#: src/view/screens/ProfileFeed.tsx:370
#: src/view/screens/ProfileList.tsx:606
#: src/view/screens/ProfileFeed.tsx:365
#: src/view/screens/ProfileList.tsx:582
msgid "More options"
msgstr "अधिक विकल्प"
@ -1271,15 +1299,15 @@ msgstr "अधिक विकल्प"
msgid "Mute Account"
msgstr "खाता म्यूट करें"
#: src/view/screens/ProfileList.tsx:533
#: src/view/screens/ProfileList.tsx:509
msgid "Mute accounts"
msgstr "खातों को म्यूट करें"
#: src/view/screens/ProfileList.tsx:480
#: src/view/screens/ProfileList.tsx:456
msgid "Mute list"
msgstr ""
#: src/view/screens/ProfileList.tsx:293
#: src/view/screens/ProfileList.tsx:269
msgid "Mute these accounts?"
msgstr "इन खातों को म्यूट करें?"
@ -1299,7 +1327,7 @@ msgstr "म्यूट किए गए खाते"
msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private."
msgstr "म्यूट किए गए खातों की पोस्ट आपके फ़ीड और आपकी सूचनाओं से हटा दी जाती हैं। म्यूट पूरी तरह से निजी हैं."
#: src/view/screens/ProfileList.tsx:295
#: src/view/screens/ProfileList.tsx:271
msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them."
msgstr "म्यूट करना निजी है. म्यूट किए गए खाते आपके साथ इंटरैक्ट कर सकते हैं, लेकिन आप उनकी पोस्ट नहीं देखेंगे या उनसे सूचनाएं प्राप्त नहीं करेंगे।"
@ -1337,12 +1365,12 @@ msgstr "अपने फ़ॉलोअर्स और डेटा तक प
msgid "New"
msgstr "नया"
#: src/view/com/feeds/FeedPage.tsx:196
#: src/view/com/feeds/FeedPage.tsx:200
#: src/view/screens/Feeds.tsx:510
#: src/view/screens/Profile.tsx:389
#: src/view/screens/ProfileFeed.tsx:451
#: src/view/screens/ProfileList.tsx:212
#: src/view/screens/ProfileList.tsx:244
#: src/view/screens/Profile.tsx:353
#: src/view/screens/ProfileFeed.tsx:441
#: src/view/screens/ProfileList.tsx:192
#: src/view/screens/ProfileList.tsx:220
#: src/view/shell/desktop/LeftNav.tsx:246
msgid "New post"
msgstr "नई पोस्ट"
@ -1371,8 +1399,8 @@ msgstr "अगली फोटो"
msgid "No"
msgstr "नहीं"
#: src/view/screens/ProfileFeed.tsx:636
#: src/view/screens/ProfileList.tsx:740
#: src/view/screens/ProfileFeed.tsx:620
#: src/view/screens/ProfileList.tsx:710
msgid "No description"
msgstr "कोई विवरण नहीं"
@ -1390,9 +1418,9 @@ msgstr "\"{query}\" के लिए कोई परिणाम नहीं
#~ msgstr "{0} के लिए कोई परिणाम नहीं मिला"
#: src/view/com/modals/ListAddRemoveUsers.tsx:127
#: src/view/screens/Search/Search.tsx:270
#: src/view/screens/Search/Search.tsx:298
#: src/view/screens/Search/Search.tsx:581
#: src/view/screens/Search/Search.tsx:271
#: src/view/screens/Search/Search.tsx:299
#: src/view/screens/Search/Search.tsx:615
#: src/view/shell/desktop/Search.tsx:210
msgid "No results found for {query}"
msgstr ""
@ -1421,10 +1449,10 @@ msgstr ""
#~ msgid "Note: Third-party apps that display Bluesky content may not respect this setting."
#~ msgstr ""
#: src/view/screens/Notifications.tsx:108
#: src/view/screens/Notifications.tsx:132
#: src/view/screens/Notifications.tsx:109
#: src/view/screens/Notifications.tsx:133
#: src/view/shell/bottom-bar/BottomBar.tsx:187
#: src/view/shell/desktop/LeftNav.tsx:355
#: src/view/shell/desktop/LeftNav.tsx:354
#: src/view/shell/Drawer.tsx:416
#: src/view/shell/Drawer.tsx:417
msgid "Notifications"
@ -1562,12 +1590,12 @@ msgid "Please tell us why you think this decision was incorrect."
msgstr ""
#: src/view/com/composer/Composer.tsx:331
#: src/view/com/post-thread/PostThread.tsx:223
#: src/view/com/post-thread/PostThread.tsx:226
#: src/view/screens/PostThread.tsx:78
msgid "Post"
msgstr "पोस्ट"
#: src/view/com/post-thread/PostThread.tsx:382
#: src/view/com/post-thread/PostThread.tsx:385
msgid "Post hidden"
msgstr "छुपा पोस्ट"
@ -1579,7 +1607,7 @@ msgstr "पोस्ट भाषा"
msgid "Post Languages"
msgstr "पोस्ट भाषा"
#: src/view/com/post-thread/PostThread.tsx:434
#: src/view/com/post-thread/PostThread.tsx:437
msgid "Post not found"
msgstr "पोस्ट नहीं मिला"
@ -1682,7 +1710,7 @@ msgstr "फ़ीड हटाएँ"
#: src/view/com/feeds/FeedSourceCard.tsx:105
#: src/view/com/feeds/FeedSourceCard.tsx:172
#: src/view/screens/ProfileFeed.tsx:280
#: src/view/screens/ProfileFeed.tsx:275
msgid "Remove from my feeds"
msgstr "मेरे फ़ीड से हटाएँ"
@ -1727,11 +1755,11 @@ msgstr "रिपोर्ट {collectionName}"
msgid "Report Account"
msgstr "रिपोर्ट"
#: src/view/screens/ProfileFeed.tsx:300
#: src/view/screens/ProfileFeed.tsx:295
msgid "Report feed"
msgstr "रिपोर्ट फ़ीड"
#: src/view/screens/ProfileList.tsx:448
#: src/view/screens/ProfileList.tsx:424
msgid "Report List"
msgstr "रिपोर्ट सूची"
@ -1843,8 +1871,8 @@ msgstr "सहेजे गए फ़ीड"
#: src/view/com/modals/ListAddRemoveUsers.tsx:75
#: src/view/com/util/forms/SearchInput.tsx:64
#: src/view/screens/Search/Search.tsx:381
#: src/view/screens/Search/Search.tsx:533
#: src/view/screens/Search/Search.tsx:401
#: src/view/screens/Search/Search.tsx:567
#: src/view/shell/bottom-bar/BottomBar.tsx:138
#: src/view/shell/desktop/LeftNav.tsx:315
#: src/view/shell/desktop/Search.tsx:161
@ -1855,13 +1883,14 @@ msgid "Search"
msgstr "खोज"
#: src/view/screens/Search/Search.tsx:390
msgid "Search for posts and users."
msgstr ""
#~ msgid "Search for posts and users."
#~ msgstr ""
#: src/view/com/modals/ChangeEmail.tsx:110
msgid "Security Step Required"
msgstr "सुरक्षा चरण आवश्यक"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:39
#: src/view/com/auth/SplashScreen.tsx:29
msgid "See what's next"
msgstr "आगे क्या है"
@ -1936,7 +1965,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f
msgstr "इस सेटिंग को अपने निम्नलिखित फ़ीड में अपने सहेजे गए फ़ीड के नमूने दिखाने के लिए \"हाँ\" पर सेट करें। यह एक प्रयोगात्मक विशेषता है।।"
#: src/view/screens/Settings.tsx:277
#: src/view/shell/desktop/LeftNav.tsx:427
#: src/view/shell/desktop/LeftNav.tsx:426
#: src/view/shell/Drawer.tsx:546
#: src/view/shell/Drawer.tsx:547
msgid "Settings"
@ -1948,11 +1977,11 @@ msgstr "यौन गतिविधि या कामुक नग्नत
#: src/view/com/profile/ProfileHeader.tsx:338
#: src/view/com/util/forms/PostDropdownBtn.tsx:129
#: src/view/screens/ProfileList.tsx:407
#: src/view/screens/ProfileList.tsx:383
msgid "Share"
msgstr "शेयर"
#: src/view/screens/ProfileFeed.tsx:312
#: src/view/screens/ProfileFeed.tsx:307
msgid "Share feed"
msgstr ""
@ -1960,11 +1989,12 @@ msgstr ""
#~ msgid "Share link"
#~ msgstr "लिंक शेयर करें"
#: src/view/com/util/moderation/ContentHider.tsx:105
#: src/view/screens/Settings.tsx:316
msgid "Show"
msgstr "दिखाओ"
#: src/view/com/util/moderation/ScreenHider.tsx:114
#: src/view/com/util/moderation/ScreenHider.tsx:132
msgid "Show anyway"
msgstr "दिखाओ"
@ -1992,13 +2022,15 @@ msgstr "रीपोस्ट दिखाएँ"
msgid "Show users"
msgstr "लोग दिखाएँ"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:70
#: src/view/com/auth/login/Login.tsx:98
#: src/view/com/auth/SplashScreen.tsx:49
#: src/view/shell/NavSignupCard.tsx:52
#: src/view/shell/NavSignupCard.tsx:53
#: src/view/shell/NavSignupCard.tsx:58
#: src/view/shell/NavSignupCard.tsx:59
msgid "Sign in"
msgstr "साइन इन करें"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:78
#: src/view/com/auth/SplashScreen.tsx:52
#: src/view/com/auth/SplashScreen.web.tsx:84
msgid "Sign In"
@ -2022,16 +2054,20 @@ msgstr "साइन इन करें"
msgid "Sign out"
msgstr "साइन आउट"
#: src/view/shell/NavSignupCard.tsx:43
#: src/view/shell/NavSignupCard.tsx:44
#: src/view/shell/NavSignupCard.tsx:46
#: src/view/shell/NavSignupCard.tsx:49
#: src/view/shell/NavSignupCard.tsx:50
#: src/view/shell/NavSignupCard.tsx:52
msgid "Sign up"
msgstr ""
#: src/view/shell/NavSignupCard.tsx:36
#: src/view/shell/NavSignupCard.tsx:42
msgid "Sign up or sign in to join the conversation"
msgstr ""
#: src/view/com/util/moderation/ScreenHider.tsx:76
msgid "Sign-in Required"
msgstr ""
#: src/view/screens/Settings.tsx:327
msgid "Signed in as"
msgstr "आपने इस रूप में साइन इन करा है:"
@ -2069,15 +2105,15 @@ msgstr "Storybook"
msgid "Submit"
msgstr ""
#: src/view/screens/ProfileList.tsx:597
#: src/view/screens/ProfileList.tsx:573
msgid "Subscribe"
msgstr "सब्सक्राइब"
#: src/view/screens/ProfileList.tsx:593
#: src/view/screens/ProfileList.tsx:569
msgid "Subscribe to this list"
msgstr "इस सूची को सब्सक्राइब करें"
#: src/view/screens/Search/Search.tsx:354
#: src/view/screens/Search/Search.tsx:357
msgid "Suggested Follows"
msgstr "अनुशंसित लोग"
@ -2127,7 +2163,7 @@ msgstr "सामुदायिक दिशानिर्देशों क
msgid "The Copyright Policy has been moved to <0/>"
msgstr "कॉपीराइट नीति को <0/> पर स्थानांतरित कर दिया गया है"
#: src/view/com/post-thread/PostThread.tsx:437
#: src/view/com/post-thread/PostThread.tsx:440
msgid "The post may have been deleted."
msgstr "हो सकता है कि यह पोस्ट हटा दी गई हो।"
@ -2151,10 +2187,14 @@ msgstr "एप्लिकेशन में एक अप्रत्याश
msgid "This {0} has been labeled."
msgstr ""
#: src/view/com/util/moderation/ScreenHider.tsx:72
#: src/view/com/util/moderation/ScreenHider.tsx:88
msgid "This {screenDescription} has been flagged:"
msgstr "यह {screenDescription} फ्लैग किया गया है:"
#: src/view/com/util/moderation/ScreenHider.tsx:83
msgid "This account has requested that users sign in to view their profile."
msgstr ""
#: src/view/com/posts/FeedErrorMessage.tsx:107
msgid "This content is not viewable without a Bluesky account."
msgstr ""
@ -2214,11 +2254,11 @@ msgstr "अनुवाद"
msgid "Try again"
msgstr "फिर से कोशिश करो"
#: src/view/screens/ProfileList.tsx:495
#: src/view/screens/ProfileList.tsx:471
msgid "Un-block list"
msgstr ""
#: src/view/screens/ProfileList.tsx:480
#: src/view/screens/ProfileList.tsx:456
msgid "Un-mute list"
msgstr ""
@ -2254,7 +2294,7 @@ msgstr "अनम्यूट खाता"
msgid "Unmute thread"
msgstr "थ्रेड को अनम्यूट करें"
#: src/view/screens/ProfileList.tsx:463
#: src/view/screens/ProfileList.tsx:439
msgid "Unpin moderation list"
msgstr ""
@ -2303,7 +2343,7 @@ msgstr "लोग सूचियाँ"
msgid "Username or email address"
msgstr "यूजर नाम या ईमेल पता"
#: src/view/screens/ProfileList.tsx:767
#: src/view/screens/ProfileList.tsx:737
msgid "Users"
msgstr "यूजर लोग"
@ -2360,7 +2400,7 @@ msgstr "हम आपके हमारी सेवा में शामि
#~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later."
#~ msgstr ""
#: src/view/screens/Search/Search.tsx:237
#: src/view/screens/Search/Search.tsx:238
msgid "We're sorry, but your search could not be completed. Please try again in a few minutes."
msgstr ""
@ -2436,16 +2476,16 @@ msgstr ""
msgid "You don't have any saved feeds."
msgstr "आपके पास कोई सहेजी गई फ़ीड नहीं है."
#: src/view/com/post-thread/PostThread.tsx:385
#: src/view/com/post-thread/PostThread.tsx:388
msgid "You have blocked the author or you have been blocked by the author."
msgstr "आपने लेखक को अवरुद्ध किया है या आपने लेखक द्वारा अवरुद्ध किया है।।"
#: src/view/com/feeds/ProfileFeedgens.tsx:154
#: src/view/com/feeds/ProfileFeedgens.tsx:141
msgid "You have no feeds."
msgstr ""
#: src/view/com/lists/MyLists.tsx:89
#: src/view/com/lists/ProfileLists.tsx:158
#: src/view/com/lists/ProfileLists.tsx:145
msgid "You have no lists."
msgstr "आपके पास कोई सूची नहीं है।।"

View File

@ -39,7 +39,7 @@ msgstr ""
msgid "{invitesAvailable} invite codes available"
msgstr ""
#: src/view/screens/Search/Search.tsx:87
#: src/view/screens/Search/Search.tsx:88
msgid "{message}"
msgstr "{message}"
@ -75,7 +75,7 @@ msgstr "アカウントオプション"
#: src/view/com/modals/ListAddRemoveUsers.tsx:264
#: src/view/com/modals/UserAddRemoveLists.tsx:193
#: src/view/screens/ProfileList.tsx:783
#: src/view/screens/ProfileList.tsx:753
msgid "Add"
msgstr "追加"
@ -83,7 +83,7 @@ msgstr "追加"
msgid "Add a content warning"
msgstr "コンテンツ警告を追加"
#: src/view/screens/ProfileList.tsx:773
#: src/view/screens/ProfileList.tsx:743
msgid "Add a user to this list"
msgstr "リストにユーザーを追加"
@ -122,7 +122,7 @@ msgstr "次のDNSレコードをドメインに追加してください"
msgid "Add to Lists"
msgstr "リストに追加"
#: src/view/screens/ProfileFeed.tsx:280
#: src/view/screens/ProfileFeed.tsx:275
msgid "Add to my feeds"
msgstr "マイフィードに追加"
@ -204,7 +204,7 @@ msgstr "本当にアプリパスワード「{name}」を削除しますか?"
msgid "Are you sure you'd like to discard this draft?"
msgstr "本当にこの下書きを破棄しますか?"
#: src/view/screens/ProfileList.tsx:375
#: src/view/screens/ProfileList.tsx:351
msgid "Are you sure?"
msgstr "本当ですか?"
@ -222,9 +222,9 @@ msgstr "芸術的または非エロティックなヌード。"
#: src/view/com/auth/login/LoginForm.tsx:249
#: src/view/com/auth/login/SetNewPasswordForm.tsx:148
#: src/view/com/modals/report/InputIssueDetails.tsx:45
#: src/view/com/post-thread/PostThread.tsx:392
#: src/view/com/post-thread/PostThread.tsx:442
#: src/view/com/post-thread/PostThread.tsx:450
#: src/view/com/post-thread/PostThread.tsx:395
#: src/view/com/post-thread/PostThread.tsx:445
#: src/view/com/post-thread/PostThread.tsx:453
#: src/view/com/profile/ProfileHeader.tsx:672
msgid "Back"
msgstr "戻る"
@ -247,15 +247,15 @@ msgstr "誕生日:"
msgid "Block Account"
msgstr "アカウントのブロック"
#: src/view/screens/ProfileList.tsx:545
#: src/view/screens/ProfileList.tsx:521
msgid "Block accounts"
msgstr "アカウントのブロック"
#: src/view/screens/ProfileList.tsx:495
#: src/view/screens/ProfileList.tsx:471
msgid "Block list"
msgstr ""
#: src/view/screens/ProfileList.tsx:330
#: src/view/screens/ProfileList.tsx:306
msgid "Block these accounts?"
msgstr "これらのアカウントをブロックしますか?"
@ -275,14 +275,19 @@ msgstr "ブロックされたアカウントは、スレッド内で返信した
msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours."
msgstr "ブロックされたアカウントは、スレッド内で返信したり、ユーザーに言及したり、その他の方法でユーザーとやり取りすることはできません。あなたは相手のコンテンツを見ることができず、相手はあなたのコンテンツを見ることができなくなります。"
#: src/view/com/post-thread/PostThread.tsx:248
#: src/view/com/post-thread/PostThread.tsx:251
msgid "Blocked post."
msgstr "投稿をブロックしました。"
#: src/view/screens/ProfileList.tsx:332
#: src/view/screens/ProfileList.tsx:308
msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you."
msgstr "ブロックは公開されます。ブロックされたアカウントは、スレッド内で返信したり、ユーザーに言及したり、その他の方法でユーザーとやり取りすることはできません。"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:93
msgid "Blog"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:31
#: src/view/com/auth/SplashScreen.tsx:26
msgid "Bluesky"
msgstr "Bluesky"
@ -315,6 +320,10 @@ msgstr "Bluesky.Social"
msgid "Build version {0} {1}"
msgstr "ビルドバージョン {0} {1}"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:87
msgid "Business"
msgstr ""
#: src/view/com/composer/photos/OpenCameraBtn.tsx:60
#: src/view/com/util/UserAvatar.tsx:221
#: src/view/com/util/UserBanner.tsx:38
@ -340,7 +349,7 @@ msgstr "文字、数字、スペース、ハイフン、およびアンダース
#: src/view/com/modals/LinkWarning.tsx:85
#: src/view/com/modals/Repost.tsx:73
#: src/view/com/modals/Waitlist.tsx:136
#: src/view/screens/Search/Search.tsx:558
#: src/view/screens/Search/Search.tsx:592
#: src/view/shell/desktop/Search.tsx:182
msgid "Cancel"
msgstr "キャンセル"
@ -441,7 +450,7 @@ msgid "Clear all storage data (restart after this)"
msgstr "すべてのストレージデータをクリア(この後再起動)"
#: src/view/com/util/forms/SearchInput.tsx:73
#: src/view/screens/Search/Search.tsx:543
#: src/view/screens/Search/Search.tsx:577
msgid "Clear search query"
msgstr "検索クエリをクリア"
@ -519,7 +528,7 @@ msgstr "コンテンツフィルタリング"
msgid "Content Languages"
msgstr "コンテンツ言語"
#: src/view/com/util/moderation/ScreenHider.tsx:69
#: src/view/com/util/moderation/ScreenHider.tsx:78
msgid "Content Warning"
msgstr "コンテンツ警告"
@ -541,7 +550,7 @@ msgstr "コピー済み"
msgid "Copy"
msgstr "コピー"
#: src/view/screens/ProfileList.tsx:407
#: src/view/screens/ProfileList.tsx:383
msgid "Copy link to list"
msgstr ""
@ -561,14 +570,15 @@ msgstr "投稿テキストをコピー"
msgid "Copyright Policy"
msgstr "著作権ポリシー"
#: src/view/screens/ProfileFeed.tsx:103
#: src/view/screens/ProfileFeed.tsx:98
msgid "Could not load feed"
msgstr "フィードのロードに失敗"
#: src/view/screens/ProfileList.tsx:860
#: src/view/screens/ProfileList.tsx:829
msgid "Could not load list"
msgstr "リストのロードに失敗"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:62
#: src/view/com/auth/SplashScreen.tsx:41
msgid "Create a new account"
msgstr "新しいアカウントを作成"
@ -577,6 +587,7 @@ msgstr "新しいアカウントを作成"
msgid "Create Account"
msgstr "アカウントを作成"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:54
#: src/view/com/auth/SplashScreen.tsx:38
msgid "Create new account"
msgstr "新しいアカウントを作成"
@ -607,8 +618,8 @@ msgstr "アカウントを削除"
msgid "Delete app password"
msgstr "アプリパスワードを削除"
#: src/view/screens/ProfileList.tsx:374
#: src/view/screens/ProfileList.tsx:434
#: src/view/screens/ProfileList.tsx:350
#: src/view/screens/ProfileList.tsx:410
msgid "Delete List"
msgstr "リストを削除"
@ -628,7 +639,7 @@ msgstr "投稿を削除"
msgid "Delete this post?"
msgstr "この投稿を削除しますか?"
#: src/view/com/post-thread/PostThread.tsx:240
#: src/view/com/post-thread/PostThread.tsx:243
msgid "Deleted post."
msgstr "投稿を削除しました。"
@ -703,7 +714,7 @@ msgstr "それぞれのコードは一度ずつ動作します。定期的によ
msgid "Edit image"
msgstr "画像を編集"
#: src/view/screens/ProfileList.tsx:422
#: src/view/screens/ProfileList.tsx:398
msgid "Edit list details"
msgstr "リストの詳細を編集"
@ -751,7 +762,7 @@ msgstr "Eメール"
msgid "Enable this setting to only see replies between people you follow."
msgstr "この設定を有効にすると、フォローしているユーザー間の応答だけが表示されます。"
#: src/view/screens/Profile.tsx:471
#: src/view/screens/Profile.tsx:425
msgid "End of feed"
msgstr ""
@ -779,7 +790,7 @@ msgstr "以下に新しいメールアドレスを入力してください。"
msgid "Enter your username and password"
msgstr "ユーザー名とパスワードを入力"
#: src/view/screens/Search/Search.tsx:105
#: src/view/screens/Search/Search.tsx:106
msgid "Error:"
msgstr "エラー:"
@ -800,7 +811,7 @@ msgstr "推奨フィードのロードに失敗"
msgid "Feed offline"
msgstr "フィードはオフライン"
#: src/view/com/feeds/FeedPage.tsx:140
#: src/view/com/feeds/FeedPage.tsx:143
msgid "Feed Preferences"
msgstr "フィード設定"
@ -811,8 +822,8 @@ msgstr "フィードバック"
#: src/view/screens/Feeds.tsx:475
#: src/view/screens/Profile.tsx:164
#: src/view/shell/bottom-bar/BottomBar.tsx:160
#: src/view/shell/desktop/LeftNav.tsx:333
#: src/view/shell/bottom-bar/BottomBar.tsx:163
#: src/view/shell/desktop/LeftNav.tsx:335
#: src/view/shell/Drawer.tsx:455
#: src/view/shell/Drawer.tsx:456
msgid "Feeds"
@ -826,6 +837,14 @@ msgstr "フィードはコンテンツを整理する為にユーザーによっ
msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information."
msgstr "フィードはユーザーがプログラミングの専門知識を持って構築するカスタムアルゴリズムです。詳細については、<0/>を参照してください。"
#: src/view/screens/Search/Search.tsx:422
msgid "Find users on Bluesky"
msgstr ""
#: src/view/screens/Search/Search.tsx:420
msgid "Find users with the search tool on the right"
msgstr ""
#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150
msgid "Finding similar accounts..."
msgstr "似通ったアカウントを検索中..."
@ -900,17 +919,17 @@ msgstr "ギャラリー"
msgid "Get Started"
msgstr "はじめに"
#: src/view/com/auth/LoggedOut.tsx:68
#: src/view/com/auth/LoggedOut.tsx:69
#: src/view/com/util/moderation/ScreenHider.tsx:105
#: src/view/com/auth/LoggedOut.tsx:70
#: src/view/com/auth/LoggedOut.tsx:71
#: src/view/com/util/moderation/ScreenHider.tsx:123
#: src/view/shell/desktop/LeftNav.tsx:103
msgid "Go back"
msgstr "戻る"
#: src/view/screens/ProfileFeed.tsx:107
#: src/view/screens/ProfileFeed.tsx:112
#: src/view/screens/ProfileFeed.tsx:117
#: src/view/screens/ProfileList.tsx:869
#: src/view/screens/ProfileList.tsx:874
#: src/view/screens/ProfileList.tsx:838
#: src/view/screens/ProfileList.tsx:843
msgid "Go Back"
msgstr "戻る"
@ -934,6 +953,7 @@ msgid "Here is your app password."
msgstr "アプリパスワードをお知らせします。"
#: src/view/com/notifications/FeedItem.tsx:316
#: src/view/com/util/moderation/ContentHider.tsx:103
msgid "Hide"
msgstr "非表示"
@ -1029,6 +1049,10 @@ msgstr "招待コードが確認できません。正しく入力されている
msgid "Invite codes: {invitesAvailable} available"
msgstr ""
#: src/view/com/auth/HomeLoggedOutCTA.tsx:99
msgid "Jobs"
msgstr ""
#: src/view/com/modals/Waitlist.tsx:67
msgid "Join the waitlist"
msgstr "待機リストに参加"
@ -1054,9 +1078,13 @@ msgstr "言語設定"
msgid "Languages"
msgstr "言語"
#: src/view/com/util/moderation/ContentHider.tsx:101
msgid "Learn more"
msgstr ""
#: src/view/com/util/moderation/PostAlerts.tsx:47
#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65
#: src/view/com/util/moderation/ScreenHider.tsx:88
#: src/view/com/util/moderation/ScreenHider.tsx:104
msgid "Learn More"
msgstr "詳細"
@ -1064,7 +1092,7 @@ msgstr "詳細"
#: src/view/com/util/moderation/PostAlerts.tsx:40
#: src/view/com/util/moderation/PostHider.tsx:76
#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49
#: src/view/com/util/moderation/ScreenHider.tsx:85
#: src/view/com/util/moderation/ScreenHider.tsx:101
msgid "Learn more about this warning"
msgstr "この警告の詳細"
@ -1090,7 +1118,7 @@ msgstr "パスワードをリセットしましょう!"
msgid "Library"
msgstr "ライブラリー"
#: src/view/screens/ProfileFeed.tsx:643
#: src/view/screens/ProfileFeed.tsx:627
msgid "Like this feed"
msgstr "このフィードをいいね"
@ -1116,22 +1144,22 @@ msgid "List Name"
msgstr "リスト名"
#: src/view/screens/Profile.tsx:165
#: src/view/shell/desktop/LeftNav.tsx:373
#: src/view/shell/desktop/LeftNav.tsx:372
#: src/view/shell/Drawer.tsx:471
#: src/view/shell/Drawer.tsx:472
msgid "Lists"
msgstr "リスト"
#: src/view/com/post-thread/PostThread.tsx:257
#: src/view/com/post-thread/PostThread.tsx:265
#: src/view/com/post-thread/PostThread.tsx:260
#: src/view/com/post-thread/PostThread.tsx:268
msgid "Load more posts"
msgstr "より多くの投稿をロード"
#: src/view/screens/Notifications.tsx:141
#: src/view/screens/Notifications.tsx:144
msgid "Load new notifications"
msgstr "新しい通知をロード"
#: src/view/com/feeds/FeedPage.tsx:185
#: src/view/com/feeds/FeedPage.tsx:189
msgid "Load new posts"
msgstr "新しい投稿をロード"
@ -1155,7 +1183,7 @@ msgstr ""
msgid "Login to account that is not listed"
msgstr "リストにないアカウントにログイン"
#: src/view/screens/ProfileFeed.tsx:482
#: src/view/screens/ProfileFeed.tsx:472
msgid "Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!"
msgstr ""
@ -1175,18 +1203,18 @@ msgstr ""
msgid "Mentioned users"
msgstr ""
#: src/view/screens/Search/Search.tsx:503
#: src/view/screens/Search/Search.tsx:537
msgid "Menu"
msgstr "メニュー"
#: src/view/com/posts/FeedErrorMessage.tsx:194
#: src/view/screens/ProfileFeed.tsx:490
#: src/view/screens/ProfileFeed.tsx:480
msgid "Message from server"
msgstr ""
#: src/view/screens/Moderation.tsx:64
#: src/view/screens/Settings.tsx:563
#: src/view/shell/desktop/LeftNav.tsx:391
#: src/view/shell/desktop/LeftNav.tsx:390
#: src/view/shell/Drawer.tsx:490
#: src/view/shell/Drawer.tsx:491
msgid "Moderation"
@ -1205,8 +1233,8 @@ msgid "More feeds"
msgstr "その他のフィード"
#: src/view/com/profile/ProfileHeader.tsx:548
#: src/view/screens/ProfileFeed.tsx:370
#: src/view/screens/ProfileList.tsx:606
#: src/view/screens/ProfileFeed.tsx:365
#: src/view/screens/ProfileList.tsx:582
msgid "More options"
msgstr "その他のオプション"
@ -1214,15 +1242,15 @@ msgstr "その他のオプション"
msgid "Mute Account"
msgstr "アカウントをミュート"
#: src/view/screens/ProfileList.tsx:533
#: src/view/screens/ProfileList.tsx:509
msgid "Mute accounts"
msgstr "アカウントをミュート"
#: src/view/screens/ProfileList.tsx:480
#: src/view/screens/ProfileList.tsx:456
msgid "Mute list"
msgstr ""
#: src/view/screens/ProfileList.tsx:293
#: src/view/screens/ProfileList.tsx:269
msgid "Mute these accounts?"
msgstr "これらのアカウントをミュートしますか?"
@ -1242,7 +1270,7 @@ msgstr "ミュート済みアカウント"
msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private."
msgstr "ミュート済みのアカウントは、フィードと通知からの投稿が削除されます。ミュート設定は知られることはありません。"
#: src/view/screens/ProfileList.tsx:295
#: src/view/screens/ProfileList.tsx:271
msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them."
msgstr "ミュートはプライベートです。ミュート済みアカウントはユーザーと相互作用することができますが、そのアカウントの投稿や通知を受信することはできません。"
@ -1276,12 +1304,12 @@ msgstr "決してフォロワーやデータへのアクセスを失わないで
msgid "New"
msgstr "新規"
#: src/view/com/feeds/FeedPage.tsx:196
#: src/view/com/feeds/FeedPage.tsx:200
#: src/view/screens/Feeds.tsx:510
#: src/view/screens/Profile.tsx:389
#: src/view/screens/ProfileFeed.tsx:451
#: src/view/screens/ProfileList.tsx:212
#: src/view/screens/ProfileList.tsx:244
#: src/view/screens/Profile.tsx:353
#: src/view/screens/ProfileFeed.tsx:441
#: src/view/screens/ProfileList.tsx:192
#: src/view/screens/ProfileList.tsx:220
#: src/view/shell/desktop/LeftNav.tsx:246
msgid "New post"
msgstr "新しい投稿"
@ -1310,8 +1338,8 @@ msgstr "次の画像"
msgid "No"
msgstr "なし"
#: src/view/screens/ProfileFeed.tsx:636
#: src/view/screens/ProfileList.tsx:740
#: src/view/screens/ProfileFeed.tsx:620
#: src/view/screens/ProfileList.tsx:710
msgid "No description"
msgstr "説明なし"
@ -1324,9 +1352,9 @@ msgid "No results found for \"{query}\""
msgstr "「\\{query}」の検索結果がない"
#: src/view/com/modals/ListAddRemoveUsers.tsx:127
#: src/view/screens/Search/Search.tsx:270
#: src/view/screens/Search/Search.tsx:298
#: src/view/screens/Search/Search.tsx:581
#: src/view/screens/Search/Search.tsx:271
#: src/view/screens/Search/Search.tsx:299
#: src/view/screens/Search/Search.tsx:615
#: src/view/shell/desktop/Search.tsx:210
msgid "No results found for {query}"
msgstr "\\{query}の検索結果がない"
@ -1347,10 +1375,10 @@ msgstr "該当なし。"
msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites."
msgstr ""
#: src/view/screens/Notifications.tsx:108
#: src/view/screens/Notifications.tsx:132
#: src/view/screens/Notifications.tsx:109
#: src/view/screens/Notifications.tsx:133
#: src/view/shell/bottom-bar/BottomBar.tsx:187
#: src/view/shell/desktop/LeftNav.tsx:355
#: src/view/shell/desktop/LeftNav.tsx:354
#: src/view/shell/Drawer.tsx:416
#: src/view/shell/Drawer.tsx:417
msgid "Notifications"
@ -1488,12 +1516,12 @@ msgid "Please tell us why you think this decision was incorrect."
msgstr ""
#: src/view/com/composer/Composer.tsx:331
#: src/view/com/post-thread/PostThread.tsx:223
#: src/view/com/post-thread/PostThread.tsx:226
#: src/view/screens/PostThread.tsx:78
msgid "Post"
msgstr "投稿"
#: src/view/com/post-thread/PostThread.tsx:382
#: src/view/com/post-thread/PostThread.tsx:385
msgid "Post hidden"
msgstr "投稿非表示"
@ -1505,7 +1533,7 @@ msgstr "ポスト言語"
msgid "Post Languages"
msgstr "投稿言語"
#: src/view/com/post-thread/PostThread.tsx:434
#: src/view/com/post-thread/PostThread.tsx:437
msgid "Post not found"
msgstr "投稿が見つからない"
@ -1603,7 +1631,7 @@ msgstr "フィードを削除"
#: src/view/com/feeds/FeedSourceCard.tsx:105
#: src/view/com/feeds/FeedSourceCard.tsx:172
#: src/view/screens/ProfileFeed.tsx:280
#: src/view/screens/ProfileFeed.tsx:275
msgid "Remove from my feeds"
msgstr "マイフィードから削除"
@ -1648,11 +1676,11 @@ msgstr "レポート \\{collectionName}"
msgid "Report Account"
msgstr "レポートアカウント"
#: src/view/screens/ProfileFeed.tsx:300
#: src/view/screens/ProfileFeed.tsx:295
msgid "Report feed"
msgstr "レポートフィード"
#: src/view/screens/ProfileList.tsx:448
#: src/view/screens/ProfileList.tsx:424
msgid "Report List"
msgstr "レポートリスト"
@ -1748,8 +1776,8 @@ msgstr "保存済みフィード"
#: src/view/com/modals/ListAddRemoveUsers.tsx:75
#: src/view/com/util/forms/SearchInput.tsx:64
#: src/view/screens/Search/Search.tsx:381
#: src/view/screens/Search/Search.tsx:533
#: src/view/screens/Search/Search.tsx:401
#: src/view/screens/Search/Search.tsx:567
#: src/view/shell/bottom-bar/BottomBar.tsx:138
#: src/view/shell/desktop/LeftNav.tsx:315
#: src/view/shell/desktop/Search.tsx:161
@ -1760,13 +1788,14 @@ msgid "Search"
msgstr "検索"
#: src/view/screens/Search/Search.tsx:390
msgid "Search for posts and users."
msgstr "投稿とユーザーを検索します。"
#~ msgid "Search for posts and users."
#~ msgstr "投稿とユーザーを検索します。"
#: src/view/com/modals/ChangeEmail.tsx:110
msgid "Security Step Required"
msgstr "必要なセキュリティ手順"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:39
#: src/view/com/auth/SplashScreen.tsx:29
msgid "See what's next"
msgstr "次を見る"
@ -1841,7 +1870,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f
msgstr "保存したフィードのサンプルを次のフィードに表示するには、この設定を「はい」にします。これは実験的な機能です。"
#: src/view/screens/Settings.tsx:277
#: src/view/shell/desktop/LeftNav.tsx:427
#: src/view/shell/desktop/LeftNav.tsx:426
#: src/view/shell/Drawer.tsx:546
#: src/view/shell/Drawer.tsx:547
msgid "Settings"
@ -1853,19 +1882,20 @@ msgstr "性行為またはエロティックなヌード。"
#: src/view/com/profile/ProfileHeader.tsx:338
#: src/view/com/util/forms/PostDropdownBtn.tsx:129
#: src/view/screens/ProfileList.tsx:407
#: src/view/screens/ProfileList.tsx:383
msgid "Share"
msgstr "共有"
#: src/view/screens/ProfileFeed.tsx:312
#: src/view/screens/ProfileFeed.tsx:307
msgid "Share feed"
msgstr "フィードを共有"
#: src/view/com/util/moderation/ContentHider.tsx:105
#: src/view/screens/Settings.tsx:316
msgid "Show"
msgstr "表示"
#: src/view/com/util/moderation/ScreenHider.tsx:114
#: src/view/com/util/moderation/ScreenHider.tsx:132
msgid "Show anyway"
msgstr "とにかく表示"
@ -1893,13 +1923,15 @@ msgstr "再投稿を表示"
msgid "Show users"
msgstr "ユーザーを表示"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:70
#: src/view/com/auth/login/Login.tsx:98
#: src/view/com/auth/SplashScreen.tsx:49
#: src/view/shell/NavSignupCard.tsx:52
#: src/view/shell/NavSignupCard.tsx:53
#: src/view/shell/NavSignupCard.tsx:58
#: src/view/shell/NavSignupCard.tsx:59
msgid "Sign in"
msgstr "サインイン"
#: src/view/com/auth/HomeLoggedOutCTA.tsx:78
#: src/view/com/auth/SplashScreen.tsx:52
#: src/view/com/auth/SplashScreen.web.tsx:84
msgid "Sign In"
@ -1923,16 +1955,20 @@ msgstr "サインイン"
msgid "Sign out"
msgstr "サインアウト"
#: src/view/shell/NavSignupCard.tsx:43
#: src/view/shell/NavSignupCard.tsx:44
#: src/view/shell/NavSignupCard.tsx:46
#: src/view/shell/NavSignupCard.tsx:49
#: src/view/shell/NavSignupCard.tsx:50
#: src/view/shell/NavSignupCard.tsx:52
msgid "Sign up"
msgstr "サインアップ"
#: src/view/shell/NavSignupCard.tsx:36
#: src/view/shell/NavSignupCard.tsx:42
msgid "Sign up or sign in to join the conversation"
msgstr "登録またはログインして会話に参加する"
#: src/view/com/util/moderation/ScreenHider.tsx:76
msgid "Sign-in Required"
msgstr ""
#: src/view/screens/Settings.tsx:327
msgid "Signed in as"
msgstr "サインイン済み"
@ -1970,15 +2006,15 @@ msgstr "ストーリーブック"
msgid "Submit"
msgstr ""
#: src/view/screens/ProfileList.tsx:597
#: src/view/screens/ProfileList.tsx:573
msgid "Subscribe"
msgstr "登録"
#: src/view/screens/ProfileList.tsx:593
#: src/view/screens/ProfileList.tsx:569
msgid "Subscribe to this list"
msgstr "このリストに登録"
#: src/view/screens/Search/Search.tsx:354
#: src/view/screens/Search/Search.tsx:357
msgid "Suggested Follows"
msgstr "推奨されるフォロー"
@ -2024,7 +2060,7 @@ msgstr "コミュニティ ガイドラインが<0/>に移動された"
msgid "The Copyright Policy has been moved to <0/>"
msgstr "著作権ポリシーが<0/>に移動された"
#: src/view/com/post-thread/PostThread.tsx:437
#: src/view/com/post-thread/PostThread.tsx:440
msgid "The post may have been deleted."
msgstr "投稿が削除された可能性があります。"
@ -2048,10 +2084,14 @@ msgstr "アプリケーションに予期しない問題が発生しました。
msgid "This {0} has been labeled."
msgstr ""
#: src/view/com/util/moderation/ScreenHider.tsx:72
#: src/view/com/util/moderation/ScreenHider.tsx:88
msgid "This {screenDescription} has been flagged:"
msgstr "この\\{screenDescription}にはフラグが設定されています。"
#: src/view/com/util/moderation/ScreenHider.tsx:83
msgid "This account has requested that users sign in to view their profile."
msgstr ""
#: src/view/com/posts/FeedErrorMessage.tsx:107
msgid "This content is not viewable without a Bluesky account."
msgstr ""
@ -2111,11 +2151,11 @@ msgstr "翻訳"
msgid "Try again"
msgstr "再試行"
#: src/view/screens/ProfileList.tsx:495
#: src/view/screens/ProfileList.tsx:471
msgid "Un-block list"
msgstr ""
#: src/view/screens/ProfileList.tsx:480
#: src/view/screens/ProfileList.tsx:456
msgid "Un-mute list"
msgstr ""
@ -2151,7 +2191,7 @@ msgstr "アカウントのミュート解除"
msgid "Unmute thread"
msgstr "スレッドのミュート解除"
#: src/view/screens/ProfileList.tsx:463
#: src/view/screens/ProfileList.tsx:439
msgid "Unpin moderation list"
msgstr ""
@ -2200,7 +2240,7 @@ msgstr "ユーザーリスト"
msgid "Username or email address"
msgstr "ユーザー名またはEメールアドレス"
#: src/view/screens/ProfileList.tsx:767
#: src/view/screens/ProfileList.tsx:737
msgid "Users"
msgstr "ユーザー"
@ -2245,7 +2285,7 @@ msgstr "サイトへアクセス"
msgid "We're so excited to have you join us!"
msgstr "あなたが参加してくれることをとても楽しみにしています!"
#: src/view/screens/Search/Search.tsx:237
#: src/view/screens/Search/Search.tsx:238
msgid "We're sorry, but your search could not be completed. Please try again in a few minutes."
msgstr "申し訳ありませんが、検索を完了できませんでした。数分後に再試行してください。"
@ -2317,16 +2357,16 @@ msgstr "保存されたフィードがありません!"
msgid "You don't have any saved feeds."
msgstr "保存されたフィードがありません。"
#: src/view/com/post-thread/PostThread.tsx:385
#: src/view/com/post-thread/PostThread.tsx:388
msgid "You have blocked the author or you have been blocked by the author."
msgstr "著者をブロックしたか、または著者によってブロックされました。"
#: src/view/com/feeds/ProfileFeedgens.tsx:154
#: src/view/com/feeds/ProfileFeedgens.tsx:141
msgid "You have no feeds."
msgstr ""
#: src/view/com/lists/MyLists.tsx:89
#: src/view/com/lists/ProfileLists.tsx:158
#: src/view/com/lists/ProfileLists.tsx:145
msgid "You have no lists."
msgstr "リストがありません。"

View File

@ -1,16 +1,27 @@
import React from 'react'
import {AppBskyActorDefs} from '@atproto/api'
import {AppBskyActorDefs, ModerationOpts, moderateProfile} from '@atproto/api'
import {useQuery, useQueryClient} from '@tanstack/react-query'
import {logger} from '#/logger'
import {getAgent} from '#/state/session'
import {useMyFollowsQuery} from '#/state/queries/my-follows'
import {STALE} from '#/state/queries'
import {
DEFAULT_LOGGED_OUT_PREFERENCES,
getModerationOpts,
useModerationOpts,
} from './preferences'
const DEFAULT_MOD_OPTS = getModerationOpts({
userDid: '',
preferences: DEFAULT_LOGGED_OUT_PREFERENCES,
})
export const RQKEY = (prefix: string) => ['actor-autocomplete', prefix]
export function useActorAutocompleteQuery(prefix: string) {
const {data: follows, isFetching} = useMyFollowsQuery()
const moderationOpts = useModerationOpts()
return useQuery<AppBskyActorDefs.ProfileViewBasic[]>({
staleTime: STALE.MINUTES.ONE,
@ -22,9 +33,20 @@ export function useActorAutocompleteQuery(prefix: string) {
limit: 8,
})
: undefined
return computeSuggestions(prefix, follows, res?.data.actors)
return res?.data.actors || []
},
enabled: !isFetching,
select: React.useCallback(
(data: AppBskyActorDefs.ProfileViewBasic[]) => {
return computeSuggestions(
prefix,
follows,
data,
moderationOpts || DEFAULT_MOD_OPTS,
)
},
[prefix, follows, moderationOpts],
),
})
}
@ -32,6 +54,7 @@ export type ActorAutocompleteFn = ReturnType<typeof useActorAutocompleteFn>
export function useActorAutocompleteFn() {
const queryClient = useQueryClient()
const {data: follows} = useMyFollowsQuery()
const moderationOpts = useModerationOpts()
return React.useCallback(
async ({query, limit = 8}: {query: string; limit?: number}) => {
@ -54,9 +77,14 @@ export function useActorAutocompleteFn() {
}
}
return computeSuggestions(query, follows, res?.data.actors)
return computeSuggestions(
query,
follows,
res?.data.actors,
moderationOpts || DEFAULT_MOD_OPTS,
)
},
[follows, queryClient],
[follows, queryClient, moderationOpts],
)
}
@ -64,6 +92,7 @@ function computeSuggestions(
prefix: string,
follows: AppBskyActorDefs.ProfileViewBasic[] | undefined,
searched: AppBskyActorDefs.ProfileViewBasic[] = [],
moderationOpts: ModerationOpts,
) {
let items: AppBskyActorDefs.ProfileViewBasic[] = []
if (follows) {
@ -76,10 +105,14 @@ function computeSuggestions(
handle: item.handle,
displayName: item.displayName,
avatar: item.avatar,
labels: item.labels,
})
}
}
return items
return items.filter(profile => {
const mod = moderateProfile(profile, moderationOpts)
return !mod.account.filter
})
}
function prefixMatch(

View File

@ -409,6 +409,9 @@ export function* findAllPostsInQueryData(
}
function assertSomePostsPassModeration(feed: AppBskyFeedDefs.FeedViewPost[]) {
// no posts in this feed
if (feed.length === 0) return true
// assume false
let somePostsPassModeration = false

View File

@ -22,7 +22,7 @@ type Controls = {
/**
* The did of the account to populate the login form with.
*/
requestedAccount?: string
requestedAccount?: string | 'none' | 'new'
}) => void
/**
* Clears the requested account so that next time the logged out view is

View File

@ -0,0 +1,165 @@
import React from 'react'
import {StyleSheet, TouchableOpacity, View} from 'react-native'
import {useLingui} from '@lingui/react'
import {Trans, msg} from '@lingui/macro'
import {ScrollView} from '../util/Views'
import {Text} from '../util/text/Text'
import {usePalette} from '#/lib/hooks/usePalette'
import {colors, s} from '#/lib/styles'
import {TextLink} from '../util/Link'
import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
import {useLoggedOutViewControls} from '#/state/shell/logged-out'
export function HomeLoggedOutCTA() {
const pal = usePalette('default')
const {_} = useLingui()
const {isMobile} = useWebMediaQueries()
const {requestSwitchToAccount} = useLoggedOutViewControls()
const showCreateAccount = React.useCallback(() => {
requestSwitchToAccount({requestedAccount: 'new'})
}, [requestSwitchToAccount])
const showSignIn = React.useCallback(() => {
requestSwitchToAccount({requestedAccount: 'none'})
}, [requestSwitchToAccount])
return (
<ScrollView style={styles.container} testID="loggedOutCTA">
<View style={[styles.hero, isMobile && styles.heroMobile]}>
<Text style={[styles.title, pal.link]}>
<Trans>Bluesky</Trans>
</Text>
<Text
style={[
styles.subtitle,
isMobile && styles.subtitleMobile,
pal.textLight,
]}>
<Trans>See what's next</Trans>
</Text>
</View>
<View
testID="signinOrCreateAccount"
style={isMobile ? undefined : styles.btnsDesktop}>
<TouchableOpacity
testID="createAccountButton"
style={[
styles.btn,
isMobile && styles.btnMobile,
{backgroundColor: colors.blue3},
]}
onPress={showCreateAccount}
accessibilityRole="button"
accessibilityLabel={_(msg`Create new account`)}
accessibilityHint="Opens flow to create a new Bluesky account">
<Text
style={[
s.white,
styles.btnLabel,
isMobile && styles.btnLabelMobile,
]}>
<Trans>Create a new account</Trans>
</Text>
</TouchableOpacity>
<TouchableOpacity
testID="signInButton"
style={[styles.btn, isMobile && styles.btnMobile, pal.btn]}
onPress={showSignIn}
accessibilityRole="button"
accessibilityLabel={_(msg`Sign in`)}
accessibilityHint="Opens flow to sign into your existing Bluesky account">
<Text
style={[
pal.text,
styles.btnLabel,
isMobile && styles.btnLabelMobile,
]}>
<Trans>Sign In</Trans>
</Text>
</TouchableOpacity>
</View>
<View style={[styles.footer, pal.view, pal.border]}>
<TextLink
type="2xl"
href="https://blueskyweb.xyz"
text={_(msg`Business`)}
style={[styles.footerLink, pal.link]}
/>
<TextLink
type="2xl"
href="https://blueskyweb.xyz/blog"
text={_(msg`Blog`)}
style={[styles.footerLink, pal.link]}
/>
<TextLink
type="2xl"
href="https://blueskyweb.xyz/join"
text={_(msg`Jobs`)}
style={[styles.footerLink, pal.link]}
/>
</View>
</ScrollView>
)
}
const styles = StyleSheet.create({
container: {
height: '100%',
},
hero: {
justifyContent: 'center',
paddingTop: 100,
paddingBottom: 30,
},
heroMobile: {
paddingBottom: 50,
},
title: {
textAlign: 'center',
fontSize: 68,
fontWeight: 'bold',
},
subtitle: {
textAlign: 'center',
fontSize: 48,
fontWeight: 'bold',
},
subtitleMobile: {
fontSize: 42,
},
btnsDesktop: {
flexDirection: 'row',
justifyContent: 'center',
gap: 20,
marginHorizontal: 20,
},
btn: {
borderRadius: 32,
width: 230,
paddingVertical: 12,
marginBottom: 20,
},
btnMobile: {
flex: 1,
width: 'auto',
marginHorizontal: 20,
paddingVertical: 16,
},
btnLabel: {
textAlign: 'center',
fontSize: 18,
},
btnLabelMobile: {
textAlign: 'center',
fontSize: 21,
},
footer: {
flexDirection: 'row',
gap: 20,
justifyContent: 'center',
},
footerLink: {},
})

View File

@ -33,7 +33,9 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) {
const {requestedAccountSwitchTo} = useLoggedOutView()
const [screenState, setScreenState] = React.useState<ScreenState>(
requestedAccountSwitchTo
? ScreenState.S_Login
? requestedAccountSwitchTo === 'new'
? ScreenState.S_CreateAccount
: ScreenState.S_Login
: ScreenState.S_LoginOrCreateAccount,
)
const {isMobile} = useWebMediaQueries()

View File

@ -157,7 +157,9 @@ function PostThreadLoaded({
// construct content
const posts = React.useMemo(() => {
let arr = [TOP_COMPONENT].concat(
Array.from(flattenThreadSkeleton(sortThread(thread, threadViewPrefs))),
Array.from(
flattenThreadSkeleton(sortThread(thread, threadViewPrefs), hasSession),
),
)
if (arr.length > maxVisible) {
arr = arr.slice(0, maxVisible).concat([LOAD_MORE])
@ -166,7 +168,7 @@ function PostThreadLoaded({
arr.push(BOTTOM_COMPONENT)
}
return arr
}, [thread, maxVisible, threadViewPrefs])
}, [thread, maxVisible, threadViewPrefs, hasSession])
/**
* NOTE
@ -468,20 +470,24 @@ function isThreadPost(v: unknown): v is ThreadPost {
function* flattenThreadSkeleton(
node: ThreadNode,
hasSession: boolean,
): Generator<YieldedItem, void> {
if (node.type === 'post') {
if (node.parent) {
yield* flattenThreadSkeleton(node.parent)
yield* flattenThreadSkeleton(node.parent, hasSession)
} else if (node.ctx.isParentLoading) {
yield PARENT_SPINNER
}
if (!hasSession && node.ctx.depth > 0 && hasPwiOptOut(node)) {
return
}
yield node
if (node.ctx.isHighlightedPost && !node.post.viewer?.replyDisabled) {
yield REPLY_PROMPT
}
if (node.replies?.length) {
for (const reply of node.replies) {
yield* flattenThreadSkeleton(reply)
yield* flattenThreadSkeleton(reply, hasSession)
}
} else if (node.ctx.isChildLoading) {
yield CHILD_SPINNER
@ -493,6 +499,10 @@ function* flattenThreadSkeleton(
}
}
function hasPwiOptOut(node: ThreadPost) {
return !!node.post.author.labels?.find(l => l.val === '!no-unauthenticated')
}
function hasBranchingReplies(node: ThreadNode) {
if (node.type !== 'post') {
return false

View File

@ -50,6 +50,9 @@ export function ProfileCard({
return null
}
const moderation = moderateProfile(profile, moderationOpts)
if (moderation.account.filter) {
return null
}
return (
<Link

View File

@ -7,7 +7,7 @@ import {Text} from '../text/Text'
import {ShieldExclamation} from 'lib/icons'
import {describeModerationCause} from 'lib/moderation'
import {useLingui} from '@lingui/react'
import {msg} from '@lingui/macro'
import {msg, Trans} from '@lingui/macro'
import {useModalControls} from '#/state/modals'
import {isPostMediaBlurred} from 'lib/moderation'
@ -95,13 +95,17 @@ export function ContentHider({
<Text type="md" style={pal.text}>
{desc.name}
</Text>
{!moderation.noOverride && (
<View style={styles.showBtn}>
<Text type="lg" style={pal.link}>
{override ? 'Hide' : 'Show'}
</Text>
</View>
)}
<View style={styles.showBtn}>
<Text type="lg" style={pal.link}>
{moderation.noOverride ? (
<Trans>Learn more</Trans>
) : override ? (
<Trans>Hide</Trans>
) : (
<Trans>Show</Trans>
)}
</Text>
</View>
</Pressable>
{override && <View style={childContainerStyle}>{children}</View>}
</View>

View File

@ -22,6 +22,7 @@ import {Trans, msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {useModalControls} from '#/state/modals'
import {s} from '#/lib/styles'
import {CenteredView} from '../Views'
export function ScreenHider({
testID,
@ -53,41 +54,58 @@ export function ScreenHider({
)
}
const isNoPwi =
moderation.cause?.type === 'label' &&
moderation.cause?.labelDef.id === '!no-unauthenticated'
const desc = describeModerationCause(moderation.cause, 'account')
return (
<View style={[styles.container, pal.view, containerStyle]}>
<CenteredView
style={[styles.container, pal.view, containerStyle]}
sideBorders>
<View style={styles.iconContainer}>
<View style={[styles.icon, palInverted.view]}>
<FontAwesomeIcon
icon="exclamation"
icon={isNoPwi ? ['far', 'eye-slash'] : 'exclamation'}
style={pal.textInverted as FontAwesomeIconStyle}
size={24}
/>
</View>
</View>
<Text type="title-2xl" style={[styles.title, pal.text]}>
<Trans>Content Warning</Trans>
{isNoPwi ? (
<Trans>Sign-in Required</Trans>
) : (
<Trans>Content Warning</Trans>
)}
</Text>
<Text type="2xl" style={[styles.description, pal.textLight]}>
<Trans>This {screenDescription} has been flagged:</Trans>
<Text type="2xl-medium" style={[pal.text, s.ml5]}>
{desc.name}.
</Text>
<TouchableWithoutFeedback
onPress={() => {
openModal({
name: 'moderation-details',
context: 'account',
moderation,
})
}}
accessibilityRole="button"
accessibilityLabel={_(msg`Learn more about this warning`)}
accessibilityHint="">
<Text type="2xl" style={pal.link}>
<Trans>Learn More</Trans>
</Text>
</TouchableWithoutFeedback>
{isNoPwi ? (
<Trans>
This account has requested that users sign in to view their profile.
</Trans>
) : (
<>
<Trans>This {screenDescription} has been flagged:</Trans>
<Text type="2xl-medium" style={[pal.text, s.ml5]}>
{desc.name}.
</Text>
<TouchableWithoutFeedback
onPress={() => {
openModal({
name: 'moderation-details',
context: 'account',
moderation,
})
}}
accessibilityRole="button"
accessibilityLabel={_(msg`Learn more about this warning`)}
accessibilityHint="">
<Text type="2xl" style={pal.link}>
<Trans>Learn More</Trans>
</Text>
</TouchableWithoutFeedback>
</>
)}{' '}
</Text>
{isMobile && <View style={styles.spacer} />}
<View style={styles.btnContainer}>
@ -116,7 +134,7 @@ export function ScreenHider({
</Button>
)}
</View>
</View>
</CenteredView>
)
}

View File

@ -9,6 +9,7 @@ import {CustomFeedEmptyState} from 'view/com/posts/CustomFeedEmptyState'
import {FeedsTabBar} from '../com/pager/FeedsTabBar'
import {Pager, RenderTabBarFnProps} from 'view/com/pager/Pager'
import {FeedPage} from 'view/com/feeds/FeedPage'
import {HomeLoggedOutCTA} from '../com/auth/HomeLoggedOutCTA'
import {useSetMinimalShellMode, useSetDrawerSwipeDisabled} from '#/state/shell'
import {usePreferencesQuery} from '#/state/queries/preferences'
import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
@ -199,12 +200,7 @@ function HomeScreenReady({
onPageScrollStateChanged={onPageScrollStateChanged}
renderTabBar={renderTabBar}
tabBarPosition="top">
<FeedPage
testID="customFeedPage"
isPageFocused={true}
feed={`feedgen|at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot`}
renderEmptyState={renderCustomFeedEmptyState}
/>
<HomeLoggedOutCTA />
</Pager>
)
}

View File

@ -153,7 +153,7 @@ function ProfileScreenLoaded({
const isMe = profile.did === currentAccount?.did
const showRepliesTab = hasSession
const showLikesTab = isMe
const showFeedsTab = isMe || extraInfoQuery.data?.hasFeedgens
const showFeedsTab = hasSession && (isMe || extraInfoQuery.data?.hasFeedgens)
const showListsTab = hasSession && (isMe || extraInfoQuery.data?.hasLists)
const sectionTitles = useMemo<string[]>(() => {
return [

View File

@ -304,7 +304,8 @@ function SearchScreenUserResults({query}: {query: string}) {
)
}
const SECTIONS = ['Posts', 'Users']
const SECTIONS_LOGGEDOUT = ['Users']
const SECTIONS_LOGGEDIN = ['Posts', 'Users']
export function SearchScreenInner({query}: {query?: string}) {
const pal = usePalette('default')
const setMinimalShellMode = useSetMinimalShellMode()
@ -320,44 +321,62 @@ export function SearchScreenInner({query}: {query?: string}) {
[setDrawerSwipeDisabled, setMinimalShellMode],
)
if (hasSession) {
return query ? (
<Pager
tabBarPosition="top"
onPageSelected={onPageSelected}
renderTabBar={props => (
<CenteredView sideBorders style={pal.border}>
<TabBar items={SECTIONS_LOGGEDIN} {...props} />
</CenteredView>
)}
initialPage={0}>
<View>
<SearchScreenPostResults query={query} />
</View>
<View>
<SearchScreenUserResults query={query} />
</View>
</Pager>
) : (
<View>
<CenteredView sideBorders style={pal.border}>
<Text
type="title"
style={[
pal.text,
pal.border,
{
display: 'flex',
paddingVertical: 12,
paddingHorizontal: 18,
fontWeight: 'bold',
},
]}>
<Trans>Suggested Follows</Trans>
</Text>
</CenteredView>
<SearchScreenSuggestedFollows />
</View>
)
}
return query ? (
<Pager
tabBarPosition="top"
onPageSelected={onPageSelected}
renderTabBar={props => (
<CenteredView sideBorders style={pal.border}>
<TabBar items={SECTIONS} {...props} />
<TabBar items={SECTIONS_LOGGEDOUT} {...props} />
</CenteredView>
)}
initialPage={0}>
<View>
<SearchScreenPostResults query={query} />
</View>
<View>
<SearchScreenUserResults query={query} />
</View>
</Pager>
) : hasSession ? (
<View>
<CenteredView sideBorders style={pal.border}>
<Text
type="title"
style={[
pal.text,
pal.border,
{
display: 'flex',
paddingVertical: 12,
paddingHorizontal: 18,
fontWeight: 'bold',
},
]}>
<Trans>Suggested Follows</Trans>
</Text>
</CenteredView>
<SearchScreenSuggestedFollows />
</View>
) : (
<CenteredView sideBorders style={pal.border}>
<View
@ -383,13 +402,27 @@ export function SearchScreenInner({query}: {query?: string}) {
</Text>
)}
<Text
style={[
pal.textLight,
{textAlign: 'center', paddingVertical: 12, paddingHorizontal: 18},
]}>
<Trans>Search for posts and users.</Trans>
</Text>
<View
style={{
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
paddingVertical: 30,
gap: 15,
}}>
<MagnifyingGlassIcon
strokeWidth={3}
size={isDesktop ? 60 : 60}
style={pal.textLight}
/>
<Text type="xl" style={[pal.textLight, {paddingHorizontal: 18}]}>
{isDesktop ? (
<Trans>Find users with the search tool on the right</Trans>
) : (
<Trans>Find users on Bluesky</Trans>
)}
</Text>
</View>
</View>
</CenteredView>
)

View File

@ -231,9 +231,9 @@ let DrawerContent = ({}: {}): React.ReactNode => {
onPress={onPressNotifications}
/>
)}
<FeedsMenuItem isActive={isAtFeeds} onPress={onPressMyFeeds} />
{hasSession && (
<>
<FeedsMenuItem isActive={isAtFeeds} onPress={onPressMyFeeds} />
<ListsMenuItem onPress={onPressLists} />
<ModerationMenuItem onPress={onPressModeration} />
<ProfileMenuItem

View File

@ -14,13 +14,19 @@ import {useCloseAllActiveElements} from '#/state/util'
let NavSignupCard = ({}: {}): React.ReactNode => {
const {_} = useLingui()
const pal = usePalette('default')
const {setShowLoggedOut} = useLoggedOutViewControls()
const {requestSwitchToAccount} = useLoggedOutViewControls()
const closeAllActiveElements = useCloseAllActiveElements()
const showLoggedOut = React.useCallback(() => {
const showSignIn = React.useCallback(() => {
closeAllActiveElements()
setShowLoggedOut(true)
}, [setShowLoggedOut, closeAllActiveElements])
requestSwitchToAccount({requestedAccount: 'none'})
}, [requestSwitchToAccount, closeAllActiveElements])
const showCreateAccount = React.useCallback(() => {
closeAllActiveElements()
requestSwitchToAccount({requestedAccount: 'new'})
// setShowLoggedOut(true)
}, [requestSwitchToAccount, closeAllActiveElements])
return (
<View
@ -39,7 +45,7 @@ let NavSignupCard = ({}: {}): React.ReactNode => {
<View style={{flexDirection: 'row', paddingTop: 12, gap: 8}}>
<Button
onPress={showLoggedOut}
onPress={showCreateAccount}
accessibilityHint={_(msg`Sign up`)}
accessibilityLabel={_(msg`Sign up`)}>
<Text type="md" style={[{color: 'white'}, s.bold]}>
@ -48,7 +54,7 @@ let NavSignupCard = ({}: {}): React.ReactNode => {
</Button>
<Button
type="default"
onPress={showLoggedOut}
onPress={showSignIn}
accessibilityHint={_(msg`Sign in`)}
accessibilityLabel={_(msg`Sign in`)}>
<Text type="md" style={[pal.text, s.bold]}>

View File

@ -138,31 +138,31 @@ export function BottomBar({navigation}: BottomTabBarProps) {
accessibilityLabel={_(msg`Search`)}
accessibilityHint=""
/>
<Btn
testID="bottomBarFeedsBtn"
icon={
isAtFeeds ? (
<HashtagIcon
size={24}
style={[styles.ctrlIcon, pal.text, styles.feedsIcon]}
strokeWidth={4}
/>
) : (
<HashtagIcon
size={24}
style={[styles.ctrlIcon, pal.text, styles.feedsIcon]}
strokeWidth={2.25}
/>
)
}
onPress={onPressFeeds}
accessibilityRole="tab"
accessibilityLabel={_(msg`Feeds`)}
accessibilityHint=""
/>
{hasSession && (
<>
<Btn
testID="bottomBarFeedsBtn"
icon={
isAtFeeds ? (
<HashtagIcon
size={24}
style={[styles.ctrlIcon, pal.text, styles.feedsIcon]}
strokeWidth={4}
/>
) : (
<HashtagIcon
size={24}
style={[styles.ctrlIcon, pal.text, styles.feedsIcon]}
strokeWidth={2.25}
/>
)
}
onPress={onPressFeeds}
accessibilityRole="tab"
accessibilityLabel={_(msg`Feeds`)}
accessibilityHint=""
/>
<Btn
testID="bottomBarNotificationsBtn"
icon={

View File

@ -64,20 +64,20 @@ export function BottomBarWeb() {
)
}}
</NavItem>
<NavItem routeName="Feeds" href="/feeds">
{({isActive}) => {
return (
<HashtagIcon
size={22}
style={[styles.ctrlIcon, pal.text, styles.feedsIcon]}
strokeWidth={isActive ? 4 : 2.5}
/>
)
}}
</NavItem>
{hasSession && (
<>
<NavItem routeName="Feeds" href="/feeds">
{({isActive}) => {
return (
<HashtagIcon
size={22}
style={[styles.ctrlIcon, pal.text, styles.feedsIcon]}
strokeWidth={isActive ? 4 : 2.5}
/>
)
}}
</NavItem>
<NavItem routeName="Notifications" href="/notifications">
{({isActive}) => {
const Icon = isActive ? BellIconSolid : BellIcon

View File

@ -314,27 +314,26 @@ export function DesktopLeftNav() {
}
label={_(msg`Search`)}
/>
<NavItem
href="/feeds"
icon={
<HashtagIcon
strokeWidth={2.25}
style={pal.text as FontAwesomeIconStyle}
size={isDesktop ? 24 : 28}
/>
}
iconFilled={
<HashtagIcon
strokeWidth={2.5}
style={pal.text as FontAwesomeIconStyle}
size={isDesktop ? 24 : 28}
/>
}
label={_(msg`Feeds`)}
/>
{hasSession && (
<>
<NavItem
href="/feeds"
icon={
<HashtagIcon
strokeWidth={2.25}
style={pal.text as FontAwesomeIconStyle}
size={isDesktop ? 24 : 28}
/>
}
iconFilled={
<HashtagIcon
strokeWidth={2.5}
style={pal.text as FontAwesomeIconStyle}
size={isDesktop ? 24 : 28}
/>
}
label={_(msg`Feeds`)}
/>
<NavItem
href="/notifications"
count={numUnread}

View File

@ -48,10 +48,10 @@
typed-emitter "^2.1.0"
zod "^3.21.4"
"@atproto/api@^0.7.3":
version "0.7.3"
resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.7.3.tgz#3224000353619970d5e397a157c6e189e195ef47"
integrity sha512-fKU+W+S4kKxClE6IcPBHPZAjcyBYxG28S0FW/bv3T/ZYDkNxGzDV4xuoHOyEDGtB30slltl5U83njuuRZs5xtw==
"@atproto/api@^0.7.4":
version "0.7.4"
resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.7.4.tgz#0dd6e725c88d1f941c57670dc82b60fde10f4ec6"
integrity sha512-7DBy6/OcXemzCPzA0dx52LLYRABBs8bq9Docs3is+WRgEx5/Pd1kHSAlCHIaBhsym8fZ3/U4Fks/5FSHkSm4yQ==
dependencies:
"@atproto/common-web" "^0.2.3"
"@atproto/lexicon" "^0.3.1"