···4646 <Dialog.Handle />
4747 <Dialog.ScrollableInner
4848 label={_(
4949- msg`Would you like to block this account or delete this conversation?`,
4949+ msg`Would you like to block this user and/or delete this conversation?`,
5050 )}
5151 style={[web({maxWidth: 400})]}>
5252 <DialogInner params={params} currentScreen={currentScreen} />
···177177 </Text>
178178 </View>
179179 <Toggle.Group
180180- label={_(msg`Block and/or delete this conversation`)}
180180+ label={_(msg`Block user and/or delete this conversation`)}
181181 values={actions}
182182 onChange={setActions}>
183183 <View style={[a.gap_md]}>
+2-2
src/components/moderation/LabelsOnMeDialog.tsx
···11import React, {useState} from 'react'
22import {View} from 'react-native'
33-import {type ComAtprotoLabelDefs, ComAtprotoModerationDefs} from '@atproto/api'
33+import {type ComAtprotoLabelDefs, ToolsOzoneReportDefs} from '@atproto/api'
44import {XRPCError} from '@atproto/xrpc'
55import {msg, Trans} from '@lingui/macro'
66import {useLingui} from '@lingui/react'
···239239 : 'com.atproto.admin.defs#repoRef'
240240 await agent.createModerationReport(
241241 {
242242- reasonType: ComAtprotoModerationDefs.REASONAPPEAL,
242242+ reasonType: ToolsOzoneReportDefs.REASONAPPEAL,
243243 subject: {
244244 $type,
245245 ...subject,
+23
src/lib/jwt.ts
···11+import {jwtDecode} from 'jwt-decode'
22+33+import {logger} from '#/logger'
44+55+/**
66+ * Simple check if a JWT token has expired. Does *not* validate the token or check for revocation status,
77+ * just checks the expiration time.
88+ *
99+ * @param token The JWT token to check.
1010+ * @returns `true` if the token has expired, `false` otherwise.
1111+ */
1212+export function isJwtExpired(token: string) {
1313+ try {
1414+ const payload = jwtDecode(token)
1515+1616+ if (!payload.exp) return true
1717+ const now = Math.floor(Date.now() / 1000)
1818+ return now >= payload.exp
1919+ } catch {
2020+ logger.error(`session: could not decode jwt`)
2121+ return true // invalid token or parse error
2222+ }
2323+}
-122
src/lib/moderation/useReportOptions.ts
···11-import {useMemo} from 'react'
22-import {ComAtprotoModerationDefs} from '@atproto/api'
33-import {msg} from '@lingui/macro'
44-import {useLingui} from '@lingui/react'
55-66-export interface ReportOption {
77- reason: string
88- title: string
99- description: string
1010-}
1111-1212-interface ReportOptions {
1313- account: ReportOption[]
1414- post: ReportOption[]
1515- list: ReportOption[]
1616- starterpack: ReportOption[]
1717- feedgen: ReportOption[]
1818- other: ReportOption[]
1919- convoMessage: ReportOption[]
2020-}
2121-2222-export function useReportOptions(): ReportOptions {
2323- const {_} = useLingui()
2424- return useMemo(() => {
2525- const other = {
2626- reason: ComAtprotoModerationDefs.REASONOTHER,
2727- title: _(msg`Other`),
2828- description: _(msg`An issue not included in these options`),
2929- }
3030- const common = [
3131- {
3232- reason: ComAtprotoModerationDefs.REASONRUDE,
3333- title: _(msg`Anti-Social Behavior`),
3434- description: _(msg`Harassment, trolling, or intolerance`),
3535- },
3636- {
3737- reason: ComAtprotoModerationDefs.REASONVIOLATION,
3838- title: _(msg`Illegal and Urgent`),
3939- description: _(msg`Glaring violations of law or terms of service`),
4040- },
4141- other,
4242- ]
4343- return {
4444- account: [
4545- {
4646- reason: ComAtprotoModerationDefs.REASONMISLEADING,
4747- title: _(msg`Misleading Account`),
4848- description: _(
4949- msg`Impersonation or false claims about identity or affiliation`,
5050- ),
5151- },
5252- {
5353- reason: ComAtprotoModerationDefs.REASONSPAM,
5454- title: _(msg`Frequently Posts Unwanted Content`),
5555- description: _(msg`Spam; excessive mentions or replies`),
5656- },
5757- {
5858- reason: ComAtprotoModerationDefs.REASONVIOLATION,
5959- title: _(msg`Name or Description Violates Community Standards`),
6060- description: _(msg`Terms used violate community standards`),
6161- },
6262- other,
6363- ],
6464- post: [
6565- {
6666- reason: ComAtprotoModerationDefs.REASONMISLEADING,
6767- title: _(msg`Misleading Post`),
6868- description: _(msg`Impersonation, misinformation, or false claims`),
6969- },
7070- {
7171- reason: ComAtprotoModerationDefs.REASONSPAM,
7272- title: _(msg`Spam`),
7373- description: _(msg`Excessive mentions or replies`),
7474- },
7575- {
7676- reason: ComAtprotoModerationDefs.REASONSEXUAL,
7777- title: _(msg`Unwanted Sexual Content`),
7878- description: _(msg`Nudity or adult content not labeled as such`),
7979- },
8080- ...common,
8181- ],
8282- convoMessage: [
8383- {
8484- reason: ComAtprotoModerationDefs.REASONSPAM,
8585- title: _(msg`Spam`),
8686- description: _(msg`Excessive or unwanted messages`),
8787- },
8888- {
8989- reason: ComAtprotoModerationDefs.REASONSEXUAL,
9090- title: _(msg`Unwanted Sexual Content`),
9191- description: _(msg`Inappropriate messages or explicit links`),
9292- },
9393- ...common,
9494- ],
9595- list: [
9696- {
9797- reason: ComAtprotoModerationDefs.REASONVIOLATION,
9898- title: _(msg`Name or Description Violates Community Standards`),
9999- description: _(msg`Terms used violate community standards`),
100100- },
101101- ...common,
102102- ],
103103- starterpack: [
104104- {
105105- reason: ComAtprotoModerationDefs.REASONVIOLATION,
106106- title: _(msg`Name or Description Violates Community Standards`),
107107- description: _(msg`Terms used violate community standards`),
108108- },
109109- ...common,
110110- ],
111111- feedgen: [
112112- {
113113- reason: ComAtprotoModerationDefs.REASONVIOLATION,
114114- title: _(msg`Name or Description Violates Community Standards`),
115115- description: _(msg`Terms used violate community standards`),
116116- },
117117- ...common,
118118- ],
119119- other: common,
120120- }
121121- }, [_])
122122-}
+89-181
src/locale/locales/en/messages.po
···10471047msgstr ""
1048104810491049#: src/components/moderation/ReportDialog/utils/useReportOptions.ts:239
10501050-#: src/lib/moderation/useReportOptions.ts:28
10511050msgid "An issue not included in these options"
10521051msgstr ""
10531052···10631062#: src/components/hooks/useFollowMethods.ts:50
10641063#: src/components/ProfileCard.tsx:484
10651064#: src/components/ProfileCard.tsx:505
10661066-#: src/view/com/profile/FollowButton.tsx:38
10671067-#: src/view/com/profile/FollowButton.tsx:48
10681065msgid "An issue occurred, please try again."
10691066msgstr ""
10701067···1105110211061103#: src/components/dialogs/nuxs/InitialVerificationAnnouncement.tsx:37
11071104msgid "Announcing verification on Bluesky"
11081108-msgstr ""
11091109-11101110-#: src/lib/moderation/useReportOptions.ts:33
11111111-msgid "Anti-Social Behavior"
11121105msgstr ""
1113110611141107#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:48
···1304129713051298#: src/components/moderation/LabelsOnMeDialog.tsx:333
13061299#: src/components/moderation/LabelsOnMeDialog.tsx:334
13071307-#: src/screens/Login/ChooseAccountForm.tsx:90
13081308-#: src/screens/Login/ChooseAccountForm.tsx:95
13001300+#: src/screens/Login/ChooseAccountForm.tsx:91
13011301+#: src/screens/Login/ChooseAccountForm.tsx:96
13091302#: src/screens/Login/ForgotPasswordForm.tsx:123
13101303#: src/screens/Login/ForgotPasswordForm.tsx:129
13111304#: src/screens/Login/LoginForm.tsx:310
···14121405msgid "Block and Delete"
14131406msgstr ""
1414140714151415-#: src/components/dms/AfterReportDialog.tsx:180
14161416-msgid "Block and/or delete this conversation"
14171417-msgstr ""
14181418-14191408#: src/screens/ProfileList/components/SubscribeMenu.tsx:125
14201409msgid "Block list"
14211410msgstr ""
···14371426msgid "Block User"
14381427msgstr ""
1439142814291429+#: src/components/dms/AfterReportDialog.tsx:180
14301430+msgid "Block user and/or delete this conversation"
14311431+msgstr ""
14321432+14401433#: src/components/Post/Embed/index.tsx:186
14411434msgid "Blocked"
14421435msgstr ""
···15921585#: src/components/LabelingServiceCard/index.tsx:62
15931586#: src/components/moderation/ReportDialog/index.tsx:834
15941587#: src/screens/Search/components/StarterPackCard.tsx:106
15951595-#: src/screens/Search/Explore.tsx:937
15881588+#: src/screens/Search/Explore.tsx:936
15961589msgid "By {0}"
15971590msgstr ""
1598159115991599-#: src/screens/Profile/components/ProfileFeedHeader.tsx:451
15921592+#: src/screens/Profile/components/ProfileFeedHeader.tsx:453
16001593msgid "By <0>{0}</0>"
16011594msgstr ""
16021595···16421635#: src/components/live/GoLiveDialog.tsx:244
16431636#: src/components/live/GoLiveDialog.tsx:250
16441637#: src/components/Menu/index.tsx:350
16451645-#: src/components/PostControls/RepostButton.tsx:210
16381638+#: src/components/PostControls/RepostButton.tsx:209
16461639#: src/components/Prompt.tsx:144
16471640#: src/components/Prompt.tsx:146
16481641#: src/screens/Deactivated.tsx:158
···22602253msgid "Continue"
22612254msgstr ""
2262225522632263-#: src/components/AccountList.tsx:128
22562256+#: src/components/AccountList.tsx:135
22642257msgid "Continue as {0} (currently signed in)"
22652258msgstr ""
22662259···28392832msgid "Discover new custom feeds"
28402833msgstr ""
2841283428422842-#: src/screens/Search/Explore.tsx:432
28352835+#: src/screens/Search/Explore.tsx:431
28432836#: src/view/screens/Feeds.tsx:730
28442837msgid "Discover New Feeds"
28452838msgstr ""
···29512944msgid "Double tap to close the dialog"
29522945msgstr ""
2953294629542954-#: src/screens/VideoFeed/index.tsx:1087
29472947+#: src/screens/VideoFeed/index.tsx:1101
29552948msgid "Double tap to like"
29562949msgstr ""
29572950···33513344msgid "Everything else"
33523345msgstr ""
3353334633543354-#: src/lib/moderation/useReportOptions.ts:73
33553355-msgid "Excessive mentions or replies"
33563356-msgstr ""
33573357-33583358-#: src/lib/moderation/useReportOptions.ts:86
33593359-msgid "Excessive or unwanted messages"
33603360-msgstr ""
33613361-33623347#: src/components/dialogs/MutedWords.tsx:316
33633348msgid "Exclude users you follow"
33643349msgstr ""
···33953380msgid "Expand post text"
33963381msgstr ""
3397338233983398-#: src/screens/VideoFeed/index.tsx:972
33833383+#: src/screens/VideoFeed/index.tsx:973
33993384msgid "Expands or collapses post text"
34003385msgstr ""
34013386···35363521msgid "Failed to load conversations"
35373522msgstr ""
3538352335393539-#: src/screens/Search/Explore.tsx:468
35403540-#: src/screens/Search/Explore.tsx:520
35413541-#: src/screens/Search/Explore.tsx:558
35423542-#: src/screens/Search/Explore.tsx:597
35243524+#: src/screens/Search/Explore.tsx:467
35253525+#: src/screens/Search/Explore.tsx:519
35263526+#: src/screens/Search/Explore.tsx:557
35273527+#: src/screens/Search/Explore.tsx:596
35433528msgid "Failed to load feeds preferences"
35443529msgstr ""
35453530···35693554msgid "Failed to load preference."
35703555msgstr ""
3571355635723572-#: src/screens/Search/Explore.tsx:461
35733573-#: src/screens/Search/Explore.tsx:513
35743574-#: src/screens/Search/Explore.tsx:551
35753575-#: src/screens/Search/Explore.tsx:590
35573557+#: src/screens/Search/Explore.tsx:460
35583558+#: src/screens/Search/Explore.tsx:512
35593559+#: src/screens/Search/Explore.tsx:550
35603560+#: src/screens/Search/Explore.tsx:589
35763561msgid "Failed to load suggested feeds"
35773562msgstr ""
3578356335793579-#: src/screens/Search/Explore.tsx:371
35643564+#: src/screens/Search/Explore.tsx:370
35803565msgid "Failed to load suggested follows"
35813566msgstr ""
35823567···37033688msgid "Feed identifier"
37043689msgstr ""
3705369037063706-#: src/screens/Profile/components/ProfileFeedHeader.tsx:354
36913691+#: src/screens/Profile/components/ProfileFeedHeader.tsx:355
37073692msgid "Feed menu"
37083693msgstr ""
37093694···38463831#: src/components/ProfileHoverCard/index.web.tsx:507
38473832#: src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx:131
38483833#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:258
38493849-#: src/screens/VideoFeed/index.tsx:856
38503850-msgid "Follow"
38513851-msgstr ""
38523852-38533853-#: src/view/com/profile/FollowButton.tsx:72
38543854-msgctxt "action"
38343834+#: src/screens/VideoFeed/index.tsx:857
38553835msgid "Follow"
38563836msgstr ""
38573837···38603840msgid "Follow {0}"
38613841msgstr ""
3862384238633863-#: src/screens/VideoFeed/index.tsx:833
38433843+#: src/screens/VideoFeed/index.tsx:834
38643844msgid "Follow {handle}"
38653845msgstr ""
38663846···38973877msgid "Follow back"
38983878msgstr ""
3899387939003900-#: src/view/com/profile/FollowButton.tsx:81
39013901-msgctxt "action"
39023902-msgid "Follow back"
39033903-msgstr ""
39043904-39053880#: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:113
39063881msgid "Followed all accounts!"
39073882msgstr ""
···39373912#: src/components/ProfileHoverCard/index.web.tsx:506
39383913#: src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx:134
39393914#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:254
39403940-#: src/screens/VideoFeed/index.tsx:854
39153915+#: src/screens/VideoFeed/index.tsx:855
39413916msgid "Following"
39423917msgstr ""
39433918···39523927msgid "Following {0}"
39533928msgstr ""
3954392939553955-#: src/screens/VideoFeed/index.tsx:832
39303930+#: src/screens/VideoFeed/index.tsx:833
39563931msgid "Following {handle}"
39573932msgstr ""
39583933···4031400640324007#: src/screens/Onboarding/StepFinished/ValuePropositionPager.shared.tsx:12
40334008msgid "Free your feed"
40344034-msgstr ""
40354035-40364036-#: src/lib/moderation/useReportOptions.ts:54
40374037-msgid "Frequently Posts Unwanted Content"
40384009msgstr ""
4039401040404011#: src/screens/Settings/NotificationSettings/components/PreferenceControls.tsx:157
···41314102msgid "Give your profile a face"
41324103msgstr ""
4133410441344134-#: src/lib/moderation/useReportOptions.ts:39
41354135-msgid "Glaring violations of law or terms of service"
41364136-msgstr ""
41374137-41384105#: src/components/moderation/ReportDialog/utils/useReportOptions.ts:142
41394106msgid "Glorification of violence"
41404107msgstr ""
···41494116#: src/screens/ProfileList/components/ErrorScreen.tsx:34
41504117#: src/screens/ProfileList/components/ErrorScreen.tsx:40
41514118#: src/screens/VideoFeed/components/Header.tsx:163
41524152-#: src/screens/VideoFeed/index.tsx:1148
41534153-#: src/screens/VideoFeed/index.tsx:1152
41194119+#: src/screens/VideoFeed/index.tsx:1162
41204120+#: src/screens/VideoFeed/index.tsx:1166
41544121#: src/view/com/auth/LoggedOut.tsx:72
41554122#: src/view/screens/NotFound.tsx:57
41564123msgid "Go back"
···42854252msgid "Harassment or hate"
42864253msgstr ""
4287425442884288-#: src/lib/moderation/useReportOptions.ts:34
42894289-msgid "Harassment, trolling, or intolerance"
42904290-msgstr ""
42914291-42924255#: src/components/moderation/ReportDialog/utils/useReportOptions.ts:189
42934256msgid "Harmful or high-risk activities"
42944257msgstr ""
···43444307msgid "Hidden"
43454308msgstr ""
4346430943474347-#: src/screens/VideoFeed/index.tsx:630
43104310+#: src/screens/VideoFeed/index.tsx:631
43484311msgid "Hidden by your moderation settings."
43494312msgstr ""
43504313···45534516msgid "If you're trying to change your handle or email, do so before you deactivate."
45544517msgstr ""
4555451845564556-#: src/lib/moderation/useReportOptions.ts:38
45574557-msgid "Illegal and Urgent"
45584558-msgstr ""
45594559-45604519#: src/view/com/util/images/Gallery.tsx:75
45614520msgid "Image"
45624521msgstr ""
···45834542msgid "Impersonation"
45844543msgstr ""
4585454445864586-#: src/lib/moderation/useReportOptions.ts:49
45874587-msgid "Impersonation or false claims about identity or affiliation"
45884588-msgstr ""
45894589-45904590-#: src/lib/moderation/useReportOptions.ts:68
45914591-msgid "Impersonation, misinformation, or false claims"
45924592-msgstr ""
45934593-45944545#: src/screens/Settings/NotificationSettings/index.tsx:284
45954546msgid "In-app"
45964547msgstr ""
···4617456846184569#: src/screens/Settings/NotificationSettings/index.tsx:273
46194570msgid "In-app, Push, People you follow"
46204620-msgstr ""
46214621-46224622-#: src/lib/moderation/useReportOptions.ts:91
46234623-msgid "Inappropriate messages or explicit links"
46244571msgstr ""
4625457246264573#. Title message shown in chat requests inbox when it's empty
···49444891msgid "Light"
49454892msgstr ""
4946489349474947-#: src/screens/Profile/components/ProfileFeedHeader.tsx:518
48944894+#: src/screens/Profile/components/ProfileFeedHeader.tsx:515
49484895msgid "Like"
49494896msgstr ""
49504897···49664913msgid "Like notifications"
49674914msgstr ""
4968491549694969-#: src/screens/Profile/components/ProfileFeedHeader.tsx:505
49164916+#: src/screens/Profile/components/ProfileFeedHeader.tsx:502
49704917msgid "Like this feed"
49714918msgstr ""
49724919···49914938msgstr ""
4992493949934940#: src/components/LabelingServiceCard/index.tsx:96
49944994-#: src/screens/Profile/components/ProfileFeedHeader.tsx:493
49414941+#: src/screens/Profile/components/ProfileFeedHeader.tsx:490
49954942#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:290
49964943#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:304
49974944msgid "Liked by {likeCount, plural, one {# user} other {# users}}"
···51325079msgid "Live link"
51335080msgstr ""
5134508151355135-#: src/screens/Search/Explore.tsx:84
50825082+#: src/screens/Search/Explore.tsx:83
51365083msgid "Load more"
51375084msgstr ""
5138508551395139-#: src/screens/Search/Explore.tsx:502
51405140-#: src/screens/Search/Explore.tsx:579
50865086+#: src/screens/Search/Explore.tsx:501
50875087+#: src/screens/Search/Explore.tsx:578
51415088msgid "Load more suggested feeds"
51425089msgstr ""
51435090···5158510551595106#: src/Navigation.tsx:321
51605107msgid "Log"
51085108+msgstr ""
51095109+51105110+#: src/components/AccountList.tsx:191
51115111+msgid "Logged out"
51615112msgstr ""
5162511351635114#: src/screens/Settings/PrivacyAndSecuritySettings.tsx:106
···53255276msgid "Misleading"
53265277msgstr ""
5327527853285328-#: src/lib/moderation/useReportOptions.ts:47
53295329-msgid "Misleading Account"
53305330-msgstr ""
53315331-53325332-#: src/lib/moderation/useReportOptions.ts:67
53335333-msgid "Misleading Post"
53345334-msgstr ""
53355335-53365279#: src/Navigation.tsx:177
53375280#: src/screens/Moderation/index.tsx:100
53385281#: src/screens/Settings/Settings.tsx:188
···5536547955375480#: src/components/dialogs/lists/CreateOrEditListDialog.tsx:399
55385481msgid "Name"
55395539-msgstr ""
55405540-55415541-#: src/lib/moderation/useReportOptions.ts:59
55425542-#: src/lib/moderation/useReportOptions.ts:98
55435543-#: src/lib/moderation/useReportOptions.ts:106
55445544-#: src/lib/moderation/useReportOptions.ts:114
55455545-msgid "Name or Description Violates Community Standards"
55465482msgstr ""
5547548355485484#: src/lib/interests.ts:66
···55855521msgid "New"
55865522msgstr ""
5587552355885588-#: src/view/screens/Lists.tsx:79
55245524+#: src/view/screens/Lists.tsx:78
55895525#: src/view/screens/ModerationModlists.tsx:79
55905526msgctxt "action"
55915527msgid "New"
···58055741msgid "No results"
58065742msgstr ""
5807574358085808-#: src/screens/Search/Explore.tsx:794
57445744+#: src/screens/Search/Explore.tsx:793
58095745msgid "No results for \"{0}\"."
58105746msgstr ""
58115747···58235759msgid "No results found for {query}"
58245760msgstr ""
5825576158265826-#: src/screens/Search/Explore.tsx:798
57625762+#: src/screens/Search/Explore.tsx:797
58275763msgid "No results."
58285764msgstr ""
58295765···59565892msgid "Nudity"
59575893msgstr ""
5958589459595959-#: src/lib/moderation/useReportOptions.ts:78
59605960-msgid "Nudity or adult content not labeled as such"
59615961-msgstr ""
59625962-59635895#: src/lib/moderation/useLabelBehaviorDescription.ts:14
59645896#: src/screens/Settings/NotificationSettings/index.tsx:291
59655897msgid "Off"
···60675999msgid "Open conversation options"
60686000msgstr ""
6069600160706070-#: src/components/Layout/Header/index.tsx:160
60026002+#: src/components/Layout/Header/index.tsx:159
60716003msgid "Open drawer menu"
60726004msgstr ""
60736005···60806012msgid "Open feed info screen"
60816013msgstr ""
6082601460836083-#: src/screens/Profile/components/ProfileFeedHeader.tsx:291
60846084-#: src/screens/Profile/components/ProfileFeedHeader.tsx:296
60156015+#: src/screens/Profile/components/ProfileFeedHeader.tsx:292
60166016+#: src/screens/Profile/components/ProfileFeedHeader.tsx:297
60856017msgid "Open feed options menu"
60866018msgstr ""
60876019···6249618162506182#: src/components/moderation/ReportDialog/utils/useReportOptions.ts:238
62516183#: src/components/moderation/ReportDialog/utils/useReportOptions.ts:242
62526252-#: src/lib/moderation/useReportOptions.ts:27
62536184#: src/view/com/composer/labels/LabelsBtn.tsx:185
62546185msgid "Other"
62556186msgstr ""
6256618762576257-#: src/components/AccountList.tsx:88
61886188+#: src/components/AccountList.tsx:93
62586189msgid "Other account"
62596190msgstr ""
62606191···63836314msgid "Pictures meant for adults."
63846315msgstr ""
6385631663866386-#: src/screens/Profile/components/ProfileFeedHeader.tsx:523
63876387-#: src/screens/Profile/components/ProfileFeedHeader.tsx:530
63176317+#: src/screens/Profile/components/ProfileFeedHeader.tsx:520
63186318+#: src/screens/Profile/components/ProfileFeedHeader.tsx:527
63886319#: src/screens/SavedFeeds.tsx:351
63896320msgid "Pin feed"
63906321msgstr ""
···63986329msgid "Pin to home"
63996330msgstr ""
6400633164016401-#: src/screens/Profile/components/ProfileFeedHeader.tsx:337
63326332+#: src/screens/Profile/components/ProfileFeedHeader.tsx:338
64026333msgid "Pin to Home"
64036334msgstr ""
64046335···66476578#: src/screens/PostThread/components/ThreadItemAnchor.tsx:134
66486579#: src/screens/PostThread/components/ThreadItemPost.tsx:112
66496580#: src/screens/PostThread/components/ThreadItemTreePost.tsx:108
66506650-#: src/screens/VideoFeed/index.tsx:534
65816581+#: src/screens/VideoFeed/index.tsx:535
66516582msgid "Post has been deleted"
66526583msgstr ""
66536584···69406871msgid "Read blog post"
69416872msgstr ""
6942687369436943-#: src/screens/VideoFeed/index.tsx:973
68746874+#: src/screens/VideoFeed/index.tsx:974
69446875msgid "Read less"
69456876msgstr ""
6946687769476947-#: src/screens/VideoFeed/index.tsx:973
68786878+#: src/screens/VideoFeed/index.tsx:974
69486879msgid "Read more"
69496880msgstr ""
69506881···70777008msgid "Remove feed?"
70787009msgstr ""
7079701070807080-#: src/screens/Profile/components/ProfileFeedHeader.tsx:319
70817081-#: src/screens/Profile/components/ProfileFeedHeader.tsx:325
70117011+#: src/screens/Profile/components/ProfileFeedHeader.tsx:320
70127012+#: src/screens/Profile/components/ProfileFeedHeader.tsx:326
70827013#: src/screens/ProfileList/components/MoreOptionsMenu.tsx:181
70837014#: src/screens/ProfileList/components/MoreOptionsMenu.tsx:184
70847015#: src/screens/SavedFeeds.tsx:340
···72967227msgid "Report dialog"
72977228msgstr ""
7298722972997299-#: src/screens/Profile/components/ProfileFeedHeader.tsx:546
73007300-#: src/screens/Profile/components/ProfileFeedHeader.tsx:552
72307230+#: src/screens/Profile/components/ProfileFeedHeader.tsx:543
72317231+#: src/screens/Profile/components/ProfileFeedHeader.tsx:549
73017232msgid "Report feed"
73027233msgstr ""
73037234···75237454#: src/screens/Profile/ProfileFeed/index.tsx:93
75247455#: src/screens/ProfileList/components/ErrorScreen.tsx:35
75257456#: src/screens/Settings/components/ChangeHandleDialog.tsx:569
75267526-#: src/screens/VideoFeed/index.tsx:1149
74577457+#: src/screens/VideoFeed/index.tsx:1163
75277458#: src/view/screens/NotFound.tsx:60
75287459msgid "Returns to previous page"
75297460msgstr ""
···75827513msgid "Save QR code"
75837514msgstr ""
7584751575857585-#: src/screens/Profile/components/ProfileFeedHeader.tsx:320
75867586-#: src/screens/Profile/components/ProfileFeedHeader.tsx:326
75167516+#: src/screens/Profile/components/ProfileFeedHeader.tsx:321
75177517+#: src/screens/Profile/components/ProfileFeedHeader.tsx:327
75877518msgid "Save to my feeds"
75887519msgstr ""
75897520···76807611msgid "Search for feeds that you want to suggest to others."
76817612msgstr ""
7682761376837683-#: src/screens/Search/Explore.tsx:358
76147614+#: src/screens/Search/Explore.tsx:357
76847615msgid "Search for more accounts"
76857616msgstr ""
7686761776877687-#: src/screens/Search/Explore.tsx:435
76187618+#: src/screens/Search/Explore.tsx:434
76887619msgid "Search for more feeds"
76897620msgstr ""
76907621···81128043msgid "Share QR code"
81138044msgstr ""
8114804581158115-#: src/screens/Profile/components/ProfileFeedHeader.tsx:474
80468046+#: src/screens/Profile/components/ProfileFeedHeader.tsx:471
81168047msgid "Share this feed"
81178048msgstr ""
81188049···81568087#: src/components/moderation/ScreenHider.tsx:178
81578088#: src/components/moderation/ScreenHider.tsx:181
81588089#: src/screens/List/ListHiddenScreen.tsx:190
81598159-#: src/screens/VideoFeed/index.tsx:633
81608160-#: src/screens/VideoFeed/index.tsx:639
80908090+#: src/screens/VideoFeed/index.tsx:634
80918091+#: src/screens/VideoFeed/index.tsx:640
81618092msgid "Show anyway"
81628093msgstr ""
81638094···82728203msgid "Sign in"
82738204msgstr ""
8274820582758275-#: src/components/AccountList.tsx:129
82068206+#: src/components/AccountList.tsx:136
82768207msgid "Sign in as {0}"
82778208msgstr ""
8278820982798279-#: src/screens/Login/ChooseAccountForm.tsx:80
82108210+#: src/screens/Login/ChooseAccountForm.tsx:81
82808211msgid "Sign in as..."
82818212msgstr ""
82828213···82898220msgid "Sign in or create your account to join the conversation!"
82908221msgstr ""
8291822282928292-#: src/components/AccountList.tsx:68
82238223+#: src/components/AccountList.tsx:70
82938224msgid "Sign in to account that is not listed"
82948225msgstr ""
82958226···84258356msgid "Something went wrong. Please try again."
84268357msgstr ""
8427835884288428-#: src/screens/Profile/components/ProfileFeedHeader.tsx:542
83598359+#: src/screens/Profile/components/ProfileFeedHeader.tsx:539
84298360msgid "Something wrong? Let us know."
84308361msgstr ""
84318362···84568387msgstr ""
8457838884588389#: src/components/moderation/ReportDialog/utils/useReportOptions.ts:39
84598459-#: src/lib/moderation/useReportOptions.ts:72
84608460-#: src/lib/moderation/useReportOptions.ts:85
84618390msgid "Spam"
84628391msgstr ""
84638392···84658394msgid "Spam or other inauthentic behavior or deception"
84668395msgstr ""
8467839684688468-#: src/lib/moderation/useReportOptions.ts:55
84698469-msgid "Spam; excessive mentions or replies"
84708470-msgstr ""
84718471-84728397#: src/lib/interests.ts:72
84738398#: src/screens/Onboarding/index.tsx:58
84748399#: src/screens/Search/modules/ExploreTrendingTopics.tsx:230
···85208445msgid "Starter pack is invalid"
85218446msgstr ""
8522844785238523-#: src/screens/Search/Explore.tsx:626
84488448+#: src/screens/Search/Explore.tsx:625
85248449#: src/view/screens/Profile.tsx:231
85258450msgid "Starter Packs"
85268451msgstr ""
···86078532msgid "Successfully verified"
86088533msgstr ""
8609853486108610-#: src/screens/Search/Explore.tsx:355
85358535+#: src/screens/Search/Explore.tsx:354
86118536msgid "Suggested Accounts"
86128537msgstr ""
86138538···87548679msgid "Terms of Service"
87558680msgstr ""
8756868187578757-#: src/lib/moderation/useReportOptions.ts:60
87588758-#: src/lib/moderation/useReportOptions.ts:99
87598759-#: src/lib/moderation/useReportOptions.ts:107
87608760-#: src/lib/moderation/useReportOptions.ts:115
87618761-msgid "Terms used violate community standards"
87628762-msgstr ""
87638763-87648682#: src/components/dialogs/MutedWords.tsx:271
87658683msgid "Text & tags"
87668684msgstr ""
···88048722msgid "That's all, folks!"
88058723msgstr ""
8806872488078807-#: src/screens/VideoFeed/index.tsx:1121
87258725+#: src/screens/VideoFeed/index.tsx:1135
88088726msgid "That's everything!"
88098727msgstr ""
88108728···89328850msgid "There was an issue contacting the server"
89338851msgstr ""
8934885289358935-#: src/screens/Profile/components/ProfileFeedHeader.tsx:418
88538853+#: src/screens/Profile/components/ProfileFeedHeader.tsx:419
89368854#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:109
89378855msgid "There was an issue contacting the server, please check your internet connection and try again."
89388856msgstr ""
···89418859msgid "There was an issue fetching notifications. Tap here to try again."
89428860msgstr ""
8943886189448944-#: src/screens/Search/Explore.tsx:993
88628862+#: src/screens/Search/Explore.tsx:992
89458863#: src/view/com/posts/PostFeed.tsx:712
89468864msgid "There was an issue fetching posts. Tap here to try again."
89478865msgstr ""
···94739391msgid "Undo repost ({0, plural, one {# repost} other {# reposts}})"
94749392msgstr ""
9475939394769476-#: src/view/com/profile/FollowButton.tsx:63
94779477-msgctxt "action"
94789478-msgid "Unfollow"
94799479-msgstr ""
94809480-94819394#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242
94829395msgid "Unfollow {0}"
94839396msgstr ""
···94879400msgid "Unfollow account"
94889401msgstr ""
9489940294909490-#: src/screens/VideoFeed/index.tsx:837
94039403+#: src/screens/VideoFeed/index.tsx:838
94919404msgid "Unfollows the user"
94929405msgstr ""
94939406···95119424msgid "Unlabeled, abusive, or non-consensual adult content"
95129425msgstr ""
9513942695149514-#: src/screens/Profile/components/ProfileFeedHeader.tsx:518
94279427+#: src/screens/Profile/components/ProfileFeedHeader.tsx:515
95159428msgid "Unlike"
95169429msgstr ""
95179430···95669479msgid "Unpin"
95679480msgstr ""
9568948195699569-#: src/screens/Profile/components/ProfileFeedHeader.tsx:523
95709570-#: src/screens/Profile/components/ProfileFeedHeader.tsx:530
94829482+#: src/screens/Profile/components/ProfileFeedHeader.tsx:520
94839483+#: src/screens/Profile/components/ProfileFeedHeader.tsx:527
95719484#: src/screens/SavedFeeds.tsx:351
95729485msgid "Unpin feed"
95739486msgstr ""
···95769489msgid "Unpin Feed"
95779490msgstr ""
9578949195799579-#: src/screens/Profile/components/ProfileFeedHeader.tsx:310
95809580-#: src/screens/Profile/components/ProfileFeedHeader.tsx:312
94929492+#: src/screens/Profile/components/ProfileFeedHeader.tsx:311
94939493+#: src/screens/Profile/components/ProfileFeedHeader.tsx:313
95819494msgid "Unpin from home"
95829495msgstr ""
95839496···9627954096289541#: src/view/com/composer/Composer.tsx:895
96299542msgid "Unsupported video type: {mimeType}"
96309630-msgstr ""
96319631-96329632-#: src/lib/moderation/useReportOptions.ts:77
96339633-#: src/lib/moderation/useReportOptions.ts:90
96349634-msgid "Unwanted Sexual Content"
96359543msgstr ""
9636954496379545#: src/screens/Settings/components/OTAInfo.tsx:58
···99519859msgid "Video Games"
99529860msgstr ""
9953986199549954-#: src/screens/VideoFeed/index.tsx:1079
98629862+#: src/screens/VideoFeed/index.tsx:1093
99559863msgid "Video is paused"
99569864msgstr ""
9957986599589958-#: src/screens/VideoFeed/index.tsx:1079
98669866+#: src/screens/VideoFeed/index.tsx:1093
99599867msgid "Video is playing"
99609868msgstr ""
99619869···99939901msgstr ""
9994990299959903#: src/components/ProfileCard.tsx:124
99969996-#: src/screens/Profile/components/ProfileFeedHeader.tsx:454
99049904+#: src/screens/Profile/components/ProfileFeedHeader.tsx:456
99979905#: src/screens/Search/components/SearchProfileCard.tsx:36
99989998-#: src/screens/VideoFeed/index.tsx:796
99069906+#: src/screens/VideoFeed/index.tsx:797
99999907#: src/view/com/notifications/NotificationFeedItem.tsx:599
100009908msgid "View {0}'s profile"
100019909msgstr ""
···100169924msgid "View debug entry"
100179925msgstr ""
1001899261001910019-#: src/screens/VideoFeed/index.tsx:661
1002010020-#: src/screens/VideoFeed/index.tsx:679
99279927+#: src/screens/VideoFeed/index.tsx:662
99289928+#: src/screens/VideoFeed/index.tsx:680
100219929msgid "View details"
100229930msgstr ""
100239931···100659973msgid "View this user's verifications"
100669974msgstr ""
1006799751006810068-#: src/screens/Profile/components/ProfileFeedHeader.tsx:489
99769976+#: src/screens/Profile/components/ProfileFeedHeader.tsx:486
100699977msgid "View users who like this feed"
100709978msgstr ""
100719979···1039110299msgstr ""
10392103001039310301#: src/components/dms/AfterReportDialog.tsx:49
1039410394-msgid "Would you like to block this account or delete this conversation?"
1030210302+msgid "Would you like to block this user and/or delete this conversation?"
1039510303msgstr ""
10396103041039710305#: src/screens/Messages/components/MessageInput.tsx:154
···1086110769msgid "You've reached your daily limit for video uploads (too many videos)"
1086210770msgstr ""
10863107711086410864-#: src/screens/VideoFeed/index.tsx:1130
1077210772+#: src/screens/VideoFeed/index.tsx:1144
1086510773msgid "You've run out of videos to watch. Maybe it's a good time to take a break?"
1086610774msgstr ""
1086710775
+3-2
src/screens/Login/ChooseAccountForm.tsx
···88import {type SessionAccount, useSession, useSessionApi} from '#/state/session'
99import {useLoggedOutViewControls} from '#/state/shell/logged-out'
1010import * as Toast from '#/view/com/util/Toast'
1111-import {atoms as a} from '#/alf'
1111+import {atoms as a, web} from '#/alf'
1212import {AccountList} from '#/components/AccountList'
1313import {Button, ButtonText} from '#/components/Button'
1414import * as TextField from '#/components/forms/TextField'
···7474 return (
7575 <FormContainer
7676 testID="chooseAccountForm"
7777- titleText={<Trans>Select account</Trans>}>
7777+ titleText={<Trans>Select account</Trans>}
7878+ style={web([a.py_2xl])}>
7879 <View>
7980 <TextField.LabelText>
8081 <Trans>Sign in as...</Trans>
+2-2
src/screens/Messages/components/ChatDisabled.tsx
···11import {useCallback, useState} from 'react'
22import {View} from 'react-native'
33-import {ComAtprotoModerationDefs} from '@atproto/api'
33+import {ToolsOzoneReportDefs} from '@atproto/api'
44import {msg, Trans} from '@lingui/macro'
55import {useLingui} from '@lingui/react'
66import {useMutation} from '@tanstack/react-query'
···8181 throw new Error('No current account, should be unreachable')
8282 await agent.createModerationReport(
8383 {
8484- reasonType: ComAtprotoModerationDefs.REASONAPPEAL,
8484+ reasonType: ToolsOzoneReportDefs.REASONAPPEAL,
8585 subject: {
8686 $type: 'com.atproto.admin.defs#repoRef',
8787 did: currentAccount.did,
+4-4
src/screens/Profile/Header/Shell.tsx
···99} from 'react-native-reanimated'
1010import {useSafeAreaInsets} from 'react-native-safe-area-context'
1111import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api'
1212+import {utils} from '@bsky.app/alf'
1213import {msg} from '@lingui/macro'
1314import {useLingui} from '@lingui/react'
1415import {useNavigation} from '@react-navigation/native'
···2627import {UserAvatar} from '#/view/com/util/UserAvatar'
2728import {UserBanner} from '#/view/com/util/UserBanner'
2829import {atoms as a, platform, useTheme} from '#/alf'
2929-import {transparentifyColor} from '#/alf/util/colorGeneration'
3030import {Button} from '#/components/Button'
3131import {useDialogControl} from '#/components/Dialog'
3232import {ArrowLeft_Stroke2_Corner0_Rounded as ArrowLeftIcon} from '#/components/icons/Arrow'
···175175 style={[
176176 a.align_center,
177177 a.justify_center,
178178- a.rounded_sm,
178178+ a.rounded_full,
179179 {
180180 width: 31,
181181 height: 31,
182182- backgroundColor: transparentifyColor('#000', 0.5),
182182+ backgroundColor: utils.alpha('#000', 0.5),
183183 },
184184 hovered && {
185185- backgroundColor: transparentifyColor('#000', 0.75),
185185+ backgroundColor: utils.alpha('#000', 0.75),
186186 },
187187 ]}>
188188 <ArrowLeftIcon size="lg" fill="white" />
+1-2
src/screens/Search/Explore.tsx
···1515import {sanitizeHandle} from '#/lib/strings/handles'
1616import {logger} from '#/logger'
1717import {type MetricEvents} from '#/logger/metrics'
1818-import {isNative} from '#/platform/detection'
1918import {useLanguagePrefs} from '#/state/preferences/languages'
2019import {useModerationOpts} from '#/state/preferences/moderation-opts'
2120import {RQKEY_ROOT_PAGINATED as useActorSearchPaginatedQueryKeyRoot} from '#/state/queries/actor-search'
···924923 }
925924 case 'preview:header': {
926925 return (
927927- <ModuleHeader.Container style={[a.pt_xs]} bottomBorder={isNative}>
926926+ <ModuleHeader.Container style={[a.pt_xs]} bottomBorder>
928927 {/* Very non-scientific way to avoid small gap on scroll */}
929928 <View style={[a.absolute, a.inset_0, t.atoms.bg, {top: -2}]} />
930929 <ModuleHeader.FeedLink feed={item.feed}>