It's named "Bluesky on Crack".. Modded social-app with a couple of extra cool and niche features. tvworld.darkworld.download

Merge branch 'main' of https://github.com/bluesky-social/social-app

kris.darkworld.download a373264f b2976627

verified
+211 -467
+1 -1
LICENSE
··· 7 7 8 8 ====== 9 9 10 - Copyright 2023–2025 Bluesky Social PBC 10 + Copyright 2023–2026 Bluesky Social PBC 11 11 12 12 Permission is hereby granted, free of charge, to any person obtaining a copy of 13 13 this software and associated documentation files (the “Software”), to deal in
+3
bskyembed/package.json
··· 28 28 "typescript": "^5.8.3", 29 29 "vite": "^7.0.4", 30 30 "vite-tsconfig-paths": "^5.1.4" 31 + }, 32 + "resolutions": { 33 + "@types/estree": "1.0.6" 31 34 } 32 35 }
+4 -4
bskyembed/yarn.lock
··· 1358 1358 resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz#0a7eecae41f463d6591c8fecd7a5c5087345ee36" 1359 1359 integrity sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA== 1360 1360 1361 - "@types/estree@1.0.8": 1362 - version "1.0.8" 1363 - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" 1364 - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== 1361 + "@types/estree@1.0.6", "@types/estree@1.0.8": 1362 + version "1.0.6" 1363 + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" 1364 + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== 1365 1365 1366 1366 "@types/json-schema@^7.0.9": 1367 1367 version "7.0.15"
-1
jest/jestSetup.js
··· 114 114 }, 115 115 })) 116 116 117 - jest.mock('../src/logger/bitdrift/lib', () => ({})) 118 117 jest.mock('../src/lib/statsig/statsig', () => ({}))
+3 -2
package.json
··· 1 1 { 2 2 "name": "bsky.app", 3 - "version": "1.114.0", 3 + "version": "1.115.0", 4 4 "private": true, 5 5 "engines": { 6 6 "node": ">=20" ··· 291 291 "**/expo-device": "7.1.4", 292 292 "**/zod": "3.23.8", 293 293 "**/multiformats": "9.9.0", 294 - "unicode-segmenter": "0.14.5" 294 + "unicode-segmenter": "0.14.5", 295 + "@types/estree": "1.0.6" 295 296 }, 296 297 "jest": { 297 298 "preset": "jest-expo/ios",
+4 -3
src/App.native.tsx
··· 1 1 import '#/logger/sentry/setup' 2 - import '#/logger/bitdrift/setup' 3 2 import '#/view/icons' 4 3 5 4 import React, {useEffect, useState} from 'react' ··· 67 66 import {Provider as PortalProvider} from '#/components/Portal' 68 67 import {Provider as VideoVolumeProvider} from '#/components/Post/Embed/VideoEmbed/VideoVolumeContext' 69 68 import {ToastOutlet} from '#/components/Toast' 70 - import {Provider as AgeAssuranceV2Provider} from '#/ageAssurance' 71 - import {prefetchAgeAssuranceConfig} from '#/ageAssurance' 69 + import { 70 + prefetchAgeAssuranceConfig, 71 + Provider as AgeAssuranceV2Provider, 72 + } from '#/ageAssurance' 72 73 import {IS_ANDROID, IS_IOS} from '#/env' 73 74 import { 74 75 prefetchLiveEvents,
+3 -5
src/components/FeedInterstitials.tsx
··· 7 7 import {useNavigation} from '@react-navigation/native' 8 8 9 9 import {type NavigationProp} from '#/lib/routes/types' 10 - import {logEvent, useGate} from '#/lib/statsig/statsig' 10 + import {logEvent} from '#/lib/statsig/statsig' 11 11 import {logger} from '#/logger' 12 12 import {type MetricEvents} from '#/logger/metrics' 13 13 import {useCrackSettings} from '#/state/preferences' ··· 442 442 }) { 443 443 const t = useTheme() 444 444 const {_} = useLingui() 445 - const gate = useGate() 446 445 const moderationOpts = useModerationOpts() 447 446 const {gtMobile} = useBreakpoints() 448 447 const followDialogControl = useDialogControl() ··· 450 449 const isLoading = isSuggestionsLoading || !moderationOpts 451 450 const isProfileHeaderContext = viewContext === 'profileHeader' 452 451 const isFeedContext = viewContext === 'feed' 453 - const showDismissButton = onDismiss && gate('suggested_users_dismiss') 454 452 455 453 const maxLength = gtMobile ? 3 : isProfileHeaderContext ? 12 : 6 456 454 const minLength = gtMobile ? 3 : 4 ··· 591 589 (hovered || pressed) && t.atoms.border_contrast_high, 592 590 ]}> 593 591 <ProfileCard.Outer> 594 - {showDismissButton && ( 592 + {onDismiss && ( 595 593 <Button 596 594 label={_(msg`Dismiss this suggestion`)} 597 595 onPress={e => { 598 596 e.preventDefault() 599 - onDismiss!(profile.did) 597 + onDismiss(profile.did) 600 598 logEvent('suggestedUser:dismiss', { 601 599 logContext: isFeedContext 602 600 ? 'InterstitialDiscover'
+1 -8
src/components/PostControls/ShareMenu/index.tsx
··· 12 12 13 13 import {makeProfileLink} from '#/lib/routes/links' 14 14 import {shareUrl} from '#/lib/sharing' 15 - import {useGate} from '#/lib/statsig/statsig' 16 15 import {toShareUrl} from '#/lib/strings/url-helpers' 17 16 import {logger} from '#/logger' 18 17 import {type Shadow} from '#/state/cache/post-shadow' 19 18 import {useFeedFeedbackContext} from '#/state/feed-feedback' 20 19 import {EventStopper} from '#/view/com/util/EventStopper' 21 20 import {native} from '#/alf' 22 - import {ArrowOutOfBoxModified_Stroke2_Corner2_Rounded as ArrowOutOfBoxIcon} from '#/components/icons/ArrowOutOfBox' 23 21 import {ArrowShareRight_Stroke2_Corner2_Rounded as ArrowShareRightIcon} from '#/components/icons/ArrowShareRight' 24 22 import {useMenuControl} from '#/components/Menu' 25 23 import * as Menu from '#/components/Menu' ··· 50 48 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo' 51 49 }): React.ReactNode => { 52 50 const {_} = useLingui() 53 - const gate = useGate() 54 51 const {feedDescriptor} = useFeedFeedbackContext() 55 - 56 - const ShareIcon = gate('alt_share_icon') 57 - ? ArrowShareRightIcon 58 - : ArrowOutOfBoxIcon 59 52 60 53 const menuControl = useMenuControl() 61 54 const [hasBeenOpen, setHasBeenOpen] = useState(false) ··· 114 107 {...props} 115 108 onLongPress={native(onNativeLongPress)} 116 109 hitSlop={hitSlop}> 117 - <PostControlButtonIcon icon={ShareIcon} /> 110 + <PostControlButtonIcon icon={ArrowShareRightIcon} /> 118 111 </PostControlButton> 119 112 ) 120 113 }}
+1 -4
src/components/contacts/FindContactsBannerNUX.tsx
··· 6 6 import {useLingui} from '@lingui/react' 7 7 8 8 import {HITSLOP_10} from '#/lib/constants' 9 - import {useGate} from '#/lib/statsig/statsig' 10 9 import {logger} from '#/logger' 11 10 import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs' 12 11 import {atoms as a, useTheme} from '#/alf' ··· 89 88 const {mutate: save, variables} = useSaveNux() 90 89 const hidden = !!variables 91 90 const isFeatureEnabled = useIsFindContactsFeatureEnabledBasedOnGeolocation() 92 - const gate = useGate() 93 91 94 92 const visible = useMemo(() => { 95 93 if (IS_WEB) return false 96 94 if (hidden) return false 97 95 if (nux && nux.completed) return false 98 96 if (!isFeatureEnabled) return false 99 - if (gate('disable_settings_find_contacts')) return false 100 97 return true 101 - }, [hidden, nux, isFeatureEnabled, gate]) 98 + }, [hidden, nux, isFeatureEnabled]) 102 99 103 100 const close = () => { 104 101 save({
+1 -2
src/components/dialogs/nuxs/LiveNowBetaDialog.tsx
··· 15 15 } from '#/components/dialogs/nuxs/utils' 16 16 import {Beaker_Stroke2_Corner2_Rounded as BeakerIcon} from '#/components/icons/Beaker' 17 17 import {Text} from '#/components/Typography' 18 - import {IS_WEB} from '#/env' 19 - import {IS_E2E} from '#/env' 18 + import {IS_E2E, IS_WEB} from '#/env' 20 19 21 20 export const enabled = createIsEnabledCheck(props => { 22 21 return (
+1 -1
src/components/live/LiveStatusDialog.tsx
··· 226 226 a.flex_row, 227 227 a.align_center, 228 228 a.justify_between, 229 - a.flex_1, 229 + a.w_full, 230 230 a.pt_sm, 231 231 ]}> 232 232 <View style={[a.flex_row, a.align_center, a.gap_xs, a.flex_1]}>
-4
src/lib/assets.native.ts
··· 1 - import {type ImageRequireSource} from 'react-native' 2 - 3 - export const DEF_AVATAR: ImageRequireSource = require('../../assets/default-avatar.png') 4 - export const CLOUD_SPLASH: ImageRequireSource = require('../../assets/splash.png')
-6
src/lib/assets.ts
··· 1 - import {type ImageRequireSource} from 'react-native' 2 - 3 - // @ts-ignore we need to pretend -prf 4 - export const DEF_AVATAR: ImageRequireSource = {uri: '/img/default-avatar.png'} 5 - // @ts-ignore we need to pretend -prf 6 - export const CLOUD_SPLASH: ImageRequireSource = {uri: '/img/splash.png'}
-2
src/lib/build-flags.ts
··· 1 - export const LOGIN_INCLUDE_DEV_SERVERS = true 2 - export const PWI_ENABLED = true
-15
src/lib/canvas.ts
··· 1 - export const getCanvas = (base64: string): Promise<HTMLCanvasElement> => { 2 - return new Promise(resolve => { 3 - const image = new Image() 4 - image.onload = () => { 5 - const canvas = document.createElement('canvas') 6 - canvas.width = image.width 7 - canvas.height = image.height 8 - 9 - const ctx = canvas.getContext('2d') 10 - ctx?.drawImage(image, 0, 0) 11 - resolve(canvas) 12 - } 13 - image.src = base64 14 - }) 15 - }
+3 -28
src/lib/statsig/gates.ts
··· 1 1 export type Gate = 2 2 // Keep this alphabetic please. 3 - | 'alt_share_icon' 4 3 | 'debug_show_feedcontext' 5 - | 'debug_subscriptions' 6 - | 'disable_live_now_beta' 4 + | 'is_bsky_team_member' // special, do not remove 7 5 | 'disable_onboarding_find_contacts' 8 6 | 'disable_settings_find_contacts' 9 - | 'explore_show_suggested_feeds' 10 - | 'feed_reply_button_open_thread' 11 - | 'is_bsky_team_member' // special, do not remove 12 - | 'old_postonboarding' 13 - | 'onboarding_add_video_feed' 14 - | 'onboarding_suggested_starterpacks' 15 - | 'remove_show_latest_button' 16 - | 'show_composer_prompt' 17 - | 'suggested_users_dismiss' 18 - | 'test_gate_1' 19 - | 'test_gate_2' 7 + | 'disable_live_now_beta' 20 8 21 9 export const GATES: Gate[] = [ 22 - // Keep this alphabetic please. 23 - 'alt_share_icon', 24 10 'debug_show_feedcontext', 25 - 'debug_subscriptions', 11 + 'is_bsky_team_member', // special, do not remove 26 12 'disable_onboarding_find_contacts', 27 13 'disable_settings_find_contacts', 28 - 'explore_show_suggested_feeds', 29 - 'feed_reply_button_open_thread', 30 - 'is_bsky_team_member', 31 14 'disable_live_now_beta', 32 - 'old_postonboarding', 33 - 'onboarding_add_video_feed', 34 - 'onboarding_suggested_starterpacks', 35 - 'remove_show_latest_button', 36 - 'show_composer_prompt', 37 - 'suggested_users_dismiss', 38 - 'test_gate_1', 39 - 'test_gate_2', 40 15 ]
+134 -134
src/locale/locales/en/messages.po
··· 78 78 msgid "{0, plural, one {# second} other {# seconds}}" 79 79 msgstr "" 80 80 81 - #: src/view/shell/bottom-bar/BottomBar.tsx:225 82 - #: src/view/shell/bottom-bar/BottomBar.tsx:257 81 + #: src/view/shell/bottom-bar/BottomBar.tsx:222 82 + #: src/view/shell/bottom-bar/BottomBar.tsx:254 83 83 #: src/view/shell/Drawer.tsx:498 84 84 msgid "{0, plural, one {# unread item} other {# unread items}}" 85 85 msgstr "" ··· 427 427 msgid "{minutes, plural, one {# minute} other {# minutes}}" 428 428 msgstr "" 429 429 430 - #: src/view/shell/bottom-bar/BottomBarWeb.tsx:282 430 + #: src/view/shell/bottom-bar/BottomBarWeb.tsx:277 431 431 msgid "{notificationCount, plural, one {# unread item} other {# unread items}}" 432 432 msgstr "" 433 433 ··· 562 562 msgstr "" 563 563 564 564 #. Contains a post that originally appeared in English. Consider translating the post text if it makes sense in your language, and noting that the post was translated from English. 565 - #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:147 565 + #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:146 566 566 msgid "A screenshot of a post from @esb.lol, showing the user is currently livestreaming content on Twitch. The post reads: \"Hello! I'm live on Twitch, and I'm testing Bluesky's latest feature too!\"" 567 567 msgstr "" 568 568 ··· 577 577 578 578 #: src/Navigation.tsx:534 579 579 #: src/screens/Settings/AboutSettings.tsx:75 580 - #: src/screens/Settings/Settings.tsx:262 581 - #: src/screens/Settings/Settings.tsx:265 580 + #: src/screens/Settings/Settings.tsx:260 581 + #: src/screens/Settings/Settings.tsx:263 582 582 msgid "About" 583 583 msgstr "" 584 584 ··· 605 605 msgstr "" 606 606 607 607 #: src/screens/Settings/AccessibilitySettings.tsx:44 608 - #: src/screens/Settings/Settings.tsx:238 609 - #: src/screens/Settings/Settings.tsx:241 608 + #: src/screens/Settings/Settings.tsx:236 609 + #: src/screens/Settings/Settings.tsx:239 610 610 msgid "Accessibility" 611 611 msgstr "" 612 612 ··· 617 617 #: src/Navigation.tsx:401 618 618 #: src/screens/Login/LoginForm.tsx:194 619 619 #: src/screens/Settings/AccountSettings.tsx:51 620 - #: src/screens/Settings/Settings.tsx:180 621 - #: src/screens/Settings/Settings.tsx:183 620 + #: src/screens/Settings/Settings.tsx:178 621 + #: src/screens/Settings/Settings.tsx:181 622 622 msgid "Account" 623 623 msgstr "" 624 624 ··· 649 649 msgid "Account Muted by List" 650 650 msgstr "" 651 651 652 - #: src/screens/Settings/Settings.tsx:646 652 + #: src/screens/Settings/Settings.tsx:644 653 653 msgid "Account options" 654 654 msgstr "" 655 655 ··· 657 657 msgid "Account provider" 658 658 msgstr "" 659 659 660 - #: src/screens/Settings/Settings.tsx:682 660 + #: src/screens/Settings/Settings.tsx:680 661 661 msgid "Account removed from quick access" 662 662 msgstr "" 663 663 ··· 742 742 msgid "Add alt text (optional)" 743 743 msgstr "" 744 744 745 - #: src/screens/Settings/Settings.tsx:584 746 - #: src/screens/Settings/Settings.tsx:587 745 + #: src/screens/Settings/Settings.tsx:582 746 + #: src/screens/Settings/Settings.tsx:585 747 747 #: src/view/shell/desktop/LeftNav.tsx:262 748 748 #: src/view/shell/desktop/LeftNav.tsx:266 749 749 msgid "Add another account" ··· 1203 1203 msgstr "" 1204 1204 1205 1205 #: src/Navigation.tsx:542 1206 - #: src/screens/Settings/AppIconSettings/index.tsx:67 1206 + #: src/screens/Settings/AppIconSettings/index.tsx:64 1207 1207 #: src/screens/Settings/AppIconSettings/SettingsListItem.tsx:18 1208 1208 #: src/screens/Settings/AppIconSettings/SettingsListItem.tsx:23 1209 1209 msgid "App Icon" ··· 1286 1286 1287 1287 #: src/Navigation.tsx:393 1288 1288 #: src/screens/Settings/AppearanceSettings.tsx:73 1289 - #: src/screens/Settings/Settings.tsx:230 1290 - #: src/screens/Settings/Settings.tsx:233 1289 + #: src/screens/Settings/Settings.tsx:228 1290 + #: src/screens/Settings/Settings.tsx:231 1291 1291 msgid "Appearance" 1292 1292 msgstr "" 1293 1293 ··· 1296 1296 msgid "Apply default recommended feeds" 1297 1297 msgstr "" 1298 1298 1299 + #: src/screens/Settings/Settings.tsx:514 1299 1300 #: src/screens/Settings/Settings.tsx:516 1300 - #: src/screens/Settings/Settings.tsx:518 1301 1301 msgid "Apply Pull Request" 1302 1302 msgstr "" 1303 1303 ··· 1462 1462 msgid "Begin the age assurance process by completing the fields below." 1463 1463 msgstr "" 1464 1464 1465 - #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:99 1465 + #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:98 1466 1466 msgid "Beta Feature" 1467 1467 msgstr "" 1468 1468 ··· 1630 1630 msgid "Bluesky will proactively verify notable and authentic accounts." 1631 1631 msgstr "" 1632 1632 1633 - #: src/screens/Settings/AppIconSettings/index.tsx:99 1633 + #: src/screens/Settings/AppIconSettings/index.tsx:96 1634 1634 msgid "Bluesky+" 1635 1635 msgstr "" 1636 1636 1637 - #: src/screens/Settings/AppIconSettings/index.tsx:102 1637 + #: src/screens/Settings/AppIconSettings/index.tsx:99 1638 1638 msgid "Bluesky+ icons" 1639 1639 msgstr "" 1640 1640 ··· 1659 1659 msgid "Browse custom feeds" 1660 1660 msgstr "" 1661 1661 1662 - #: src/components/FeedInterstitials.tsx:779 1662 + #: src/components/FeedInterstitials.tsx:777 1663 1663 msgid "Browse more accounts" 1664 1664 msgstr "" 1665 1665 1666 - #: src/components/FeedInterstitials.tsx:908 1666 + #: src/components/FeedInterstitials.tsx:906 1667 1667 msgid "Browse more feeds on the Explore page" 1668 1668 msgstr "" 1669 1669 1670 - #: src/components/FeedInterstitials.tsx:889 1671 - #: src/components/FeedInterstitials.tsx:892 1670 + #: src/components/FeedInterstitials.tsx:887 1671 + #: src/components/FeedInterstitials.tsx:890 1672 1672 msgid "Browse more suggestions" 1673 1673 msgstr "" 1674 1674 1675 - #: src/components/FeedInterstitials.tsx:917 1675 + #: src/components/FeedInterstitials.tsx:915 1676 1676 msgid "Browse more suggestions on the Explore page" 1677 1677 msgstr "" 1678 1678 ··· 1774 1774 #: src/screens/Profile/Header/EditProfileDialog.tsx:218 1775 1775 #: src/screens/Profile/Header/EditProfileDialog.tsx:226 1776 1776 #: src/screens/Search/Shell.tsx:370 1777 - #: src/screens/Settings/AppIconSettings/index.tsx:44 1778 - #: src/screens/Settings/AppIconSettings/index.tsx:230 1777 + #: src/screens/Settings/AppIconSettings/index.tsx:41 1778 + #: src/screens/Settings/AppIconSettings/index.tsx:227 1779 1779 #: src/screens/Settings/components/ChangeHandleDialog.tsx:78 1780 1780 #: src/screens/Settings/components/ChangeHandleDialog.tsx:85 1781 1781 #: src/screens/Settings/components/ChangePasswordDialog.tsx:247 1782 1782 #: src/screens/Settings/components/ChangePasswordDialog.tsx:253 1783 - #: src/screens/Settings/Settings.tsx:307 1783 + #: src/screens/Settings/Settings.tsx:305 1784 1784 #: src/screens/Takendown.tsx:102 1785 1785 #: src/screens/Takendown.tsx:105 1786 1786 #: src/view/com/composer/Composer.tsx:1050 ··· 1838 1838 msgid "Change" 1839 1839 msgstr "" 1840 1840 1841 - #: src/screens/Settings/AppIconSettings/index.tsx:39 1841 + #: src/screens/Settings/AppIconSettings/index.tsx:36 1842 1842 msgid "Change app icon" 1843 1843 msgstr "" 1844 1844 1845 - #: src/screens/Settings/AppIconSettings/index.tsx:38 1846 - #: src/screens/Settings/AppIconSettings/index.tsx:226 1845 + #: src/screens/Settings/AppIconSettings/index.tsx:35 1846 + #: src/screens/Settings/AppIconSettings/index.tsx:223 1847 1847 msgid "Change app icon to \"{0}\"" 1848 1848 msgstr "" 1849 1849 ··· 1881 1881 msgid "Change your password" 1882 1882 msgstr "" 1883 1883 1884 - #: src/screens/Settings/AppIconSettings/index.tsx:221 1884 + #: src/screens/Settings/AppIconSettings/index.tsx:218 1885 1885 msgid "Changes app icon" 1886 1886 msgstr "" 1887 1887 ··· 1896 1896 1897 1897 #: src/lib/hooks/useNotificationHandler.ts:99 1898 1898 #: src/Navigation.tsx:559 1899 - #: src/view/shell/bottom-bar/BottomBar.tsx:221 1899 + #: src/view/shell/bottom-bar/BottomBar.tsx:218 1900 1900 #: src/view/shell/desktop/LeftNav.tsx:608 1901 1901 #: src/view/shell/Drawer.tsx:466 1902 1902 msgid "Chat" ··· 2020 2020 msgid "Choose your username" 2021 2021 msgstr "" 2022 2022 2023 - #: src/screens/Settings/Settings.tsx:508 2023 + #: src/screens/Settings/Settings.tsx:506 2024 2024 msgid "Clear all storage data" 2025 2025 msgstr "" 2026 2026 2027 - #: src/screens/Settings/Settings.tsx:510 2027 + #: src/screens/Settings/Settings.tsx:508 2028 2028 msgid "Clear all storage data (restart after this)" 2029 2029 msgstr "" 2030 2030 ··· 2093 2093 #: src/components/dialogs/nuxs/BookmarksAnnouncement.tsx:171 2094 2094 #: src/components/dialogs/nuxs/InitialVerificationAnnouncement.tsx:178 2095 2095 #: src/components/dialogs/nuxs/InitialVerificationAnnouncement.tsx:187 2096 - #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:191 2097 - #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:199 2096 + #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:190 2097 + #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:198 2098 2098 #: src/components/dialogs/SearchablePeopleList.tsx:295 2099 2099 #: src/components/dialogs/StarterPackDialog.tsx:179 2100 2100 #: src/components/dms/AfterReportDialog.tsx:93 ··· 2229 2229 msgid "Community Guidelines" 2230 2230 msgstr "" 2231 2231 2232 - #: src/screens/Onboarding/StepFinished/index.tsx:328 2232 + #: src/screens/Onboarding/StepFinished/index.tsx:322 2233 2233 msgid "Complete onboarding and start using your account" 2234 2234 msgstr "" 2235 2235 ··· 2342 2342 msgid "Content & Media" 2343 2343 msgstr "" 2344 2344 2345 - #: src/screens/Settings/Settings.tsx:210 2346 - #: src/screens/Settings/Settings.tsx:213 2345 + #: src/screens/Settings/Settings.tsx:208 2346 + #: src/screens/Settings/Settings.tsx:211 2347 2347 msgid "Content and media" 2348 2348 msgstr "" 2349 2349 ··· 2651 2651 #: src/components/WelcomeModal.tsx:163 2652 2652 #: src/view/com/auth/SplashScreen.tsx:72 2653 2653 #: src/view/com/auth/SplashScreen.web.tsx:121 2654 - #: src/view/shell/bottom-bar/BottomBar.tsx:345 2655 - #: src/view/shell/bottom-bar/BottomBar.tsx:350 2654 + #: src/view/shell/bottom-bar/BottomBar.tsx:342 2655 + #: src/view/shell/bottom-bar/BottomBar.tsx:347 2656 + #: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 2656 2657 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:206 2657 - #: src/view/shell/bottom-bar/BottomBarWeb.tsx:211 2658 2658 #: src/view/shell/NavSignupCard.tsx:47 2659 2659 #: src/view/shell/NavSignupCard.tsx:52 2660 2660 msgid "Create account" ··· 2771 2771 msgid "Deactivate account" 2772 2772 msgstr "" 2773 2773 2774 - #: src/screens/Settings/Settings.tsx:473 2774 + #: src/screens/Settings/Settings.tsx:471 2775 2775 msgid "Debug Moderation" 2776 2776 msgstr "" 2777 2777 ··· 2787 2787 msgid "Default" 2788 2788 msgstr "" 2789 2789 2790 - #: src/screens/Settings/AppIconSettings/index.tsx:75 2790 + #: src/screens/Settings/AppIconSettings/index.tsx:72 2791 2791 msgid "Default icons" 2792 2792 msgstr "" 2793 2793 ··· 2824 2824 msgid "Delete chat" 2825 2825 msgstr "" 2826 2826 2827 - #: src/screens/Settings/Settings.tsx:480 2827 + #: src/screens/Settings/Settings.tsx:478 2828 2828 msgid "Delete chat declaration record" 2829 2829 msgstr "" 2830 2830 ··· 2937 2937 msgid "Developer mode enabled" 2938 2938 msgstr "" 2939 2939 2940 - #: src/screens/Settings/Settings.tsx:289 2941 - #: src/screens/Settings/Settings.tsx:292 2940 + #: src/screens/Settings/Settings.tsx:287 2941 + #: src/screens/Settings/Settings.tsx:290 2942 2942 msgid "Developer options" 2943 2943 msgstr "" 2944 2944 ··· 3028 3028 msgid "Dismiss" 3029 3029 msgstr "" 3030 3030 3031 - #: src/components/contacts/FindContactsBannerNUX.tsx:76 3031 + #: src/components/contacts/FindContactsBannerNUX.tsx:75 3032 3032 msgid "Dismiss banner" 3033 3033 msgstr "" 3034 3034 ··· 3048 3048 msgid "Dismiss this section" 3049 3049 msgstr "" 3050 3050 3051 - #: src/components/FeedInterstitials.tsx:589 3051 + #: src/components/FeedInterstitials.tsx:587 3052 3052 msgid "Dismiss this suggestion" 3053 3053 msgstr "" 3054 3054 ··· 3633 3633 3634 3634 #: src/Navigation.tsx:788 3635 3635 #: src/screens/Search/Shell.tsx:327 3636 - #: src/view/shell/desktop/LeftNav.tsx:690 3636 + #: src/view/shell/desktop/LeftNav.tsx:687 3637 3637 #: src/view/shell/Drawer.tsx:414 3638 3638 msgid "Explore" 3639 3639 msgstr "" ··· 3952 3952 #: src/screens/StarterPack/StarterPackScreen.tsx:190 3953 3953 #: src/view/screens/Feeds.tsx:511 3954 3954 #: src/view/screens/Profile.tsx:239 3955 - #: src/view/shell/desktop/LeftNav.tsx:728 3955 + #: src/view/shell/desktop/LeftNav.tsx:725 3956 3956 #: src/view/shell/Drawer.tsx:530 3957 3957 msgid "Feeds" 3958 3958 msgstr "" ··· 3999 3999 msgid "Filter who you receive notifications from" 4000 4000 msgstr "" 4001 4001 4002 - #: src/screens/Onboarding/StepFinished/index.tsx:334 4002 + #: src/screens/Onboarding/StepFinished/index.tsx:328 4003 4003 msgid "Finalizing" 4004 4004 msgstr "" 4005 4005 ··· 4026 4026 msgid "Find Friends" 4027 4027 msgstr "" 4028 4028 4029 - #: src/screens/Settings/Settings.tsx:221 4030 - #: src/screens/Settings/Settings.tsx:224 4029 + #: src/screens/Settings/Settings.tsx:219 4030 + #: src/screens/Settings/Settings.tsx:222 4031 4031 msgid "Find friends from contacts" 4032 4032 msgstr "" 4033 4033 ··· 4583 4583 msgid "Held by Bluesky for 7 days to prevent abuse, then deleted" 4584 4584 msgstr "" 4585 4585 4586 - #: src/screens/Settings/Settings.tsx:254 4587 - #: src/screens/Settings/Settings.tsx:258 4586 + #: src/screens/Settings/Settings.tsx:252 4587 + #: src/screens/Settings/Settings.tsx:256 4588 4588 #: src/view/shell/desktop/RightNav.tsx:128 4589 4589 #: src/view/shell/desktop/RightNav.tsx:131 4590 4590 #: src/view/shell/Drawer.tsx:381 ··· 4755 4755 4756 4756 #: src/Navigation.tsx:783 4757 4757 #: src/Navigation.tsx:803 4758 - #: src/view/shell/bottom-bar/BottomBar.tsx:178 4759 - #: src/view/shell/desktop/LeftNav.tsx:672 4758 + #: src/view/shell/bottom-bar/BottomBar.tsx:175 4759 + #: src/view/shell/desktop/LeftNav.tsx:669 4760 4760 #: src/view/shell/Drawer.tsx:440 4761 4761 msgid "Home" 4762 4762 msgstr "" ··· 4909 4909 msgid "Import Contacts" 4910 4910 msgstr "" 4911 4911 4912 - #: src/components/contacts/FindContactsBannerNUX.tsx:32 4913 - #: src/components/contacts/FindContactsBannerNUX.tsx:70 4912 + #: src/components/contacts/FindContactsBannerNUX.tsx:31 4913 + #: src/components/contacts/FindContactsBannerNUX.tsx:69 4914 4914 msgid "Import contacts to find your friends" 4915 4915 msgstr "" 4916 4916 ··· 5151 5151 msgstr "" 5152 5152 5153 5153 #: src/screens/Settings/LanguageSettings.tsx:78 5154 - #: src/screens/Settings/Settings.tsx:246 5155 - #: src/screens/Settings/Settings.tsx:249 5154 + #: src/screens/Settings/Settings.tsx:244 5155 + #: src/screens/Settings/Settings.tsx:247 5156 5156 msgid "Languages" 5157 5157 msgstr "" 5158 5158 ··· 5290 5290 msgid "Let's get your password reset!" 5291 5291 msgstr "" 5292 5292 5293 - #: src/screens/Onboarding/StepFinished/index.tsx:336 5293 + #: src/screens/Onboarding/StepFinished/index.tsx:330 5294 5294 msgid "Let's go!" 5295 5295 msgstr "" 5296 5296 ··· 5468 5468 #: src/view/screens/Lists.tsx:67 5469 5469 #: src/view/screens/Profile.tsx:233 5470 5470 #: src/view/screens/Profile.tsx:241 5471 - #: src/view/shell/desktop/LeftNav.tsx:746 5471 + #: src/view/shell/desktop/LeftNav.tsx:743 5472 5472 #: src/view/shell/Drawer.tsx:545 5473 5473 msgid "Lists" 5474 5474 msgstr "" ··· 5713 5713 5714 5714 #: src/Navigation.tsx:179 5715 5715 #: src/screens/Moderation/index.tsx:99 5716 - #: src/screens/Settings/Settings.tsx:194 5717 - #: src/screens/Settings/Settings.tsx:197 5716 + #: src/screens/Settings/Settings.tsx:192 5717 + #: src/screens/Settings/Settings.tsx:195 5718 5718 msgid "Moderation" 5719 5719 msgstr "" 5720 5720 ··· 6068 6068 #: src/screens/Login/LoginForm.tsx:353 6069 6069 #: src/screens/Login/SetNewPasswordForm.tsx:182 6070 6070 #: src/screens/Login/SetNewPasswordForm.tsx:188 6071 - #: src/screens/Onboarding/StepFinished/index.tsx:329 6072 - #: src/screens/Onboarding/StepFinished/index.tsx:338 6071 + #: src/screens/Onboarding/StepFinished/index.tsx:323 6072 + #: src/screens/Onboarding/StepFinished/index.tsx:332 6073 6073 #: src/screens/Settings/components/AddAppPasswordDialog.tsx:157 6074 6074 #: src/screens/Settings/components/AddAppPasswordDialog.tsx:165 6075 6075 #: src/screens/Signup/BackNextButtons.tsx:67 ··· 6342 6342 #: src/screens/Settings/NotificationSettings/ReplyNotificationSettings.tsx:30 6343 6343 #: src/screens/Settings/NotificationSettings/RepostNotificationSettings.tsx:30 6344 6344 #: src/screens/Settings/NotificationSettings/RepostsOnRepostsNotificationSettings.tsx:30 6345 - #: src/screens/Settings/Settings.tsx:202 6346 - #: src/screens/Settings/Settings.tsx:205 6345 + #: src/screens/Settings/Settings.tsx:200 6346 + #: src/screens/Settings/Settings.tsx:203 6347 6347 #: src/view/screens/Notifications.tsx:130 6348 - #: src/view/shell/bottom-bar/BottomBar.tsx:252 6349 - #: src/view/shell/desktop/LeftNav.tsx:709 6348 + #: src/view/shell/bottom-bar/BottomBar.tsx:249 6349 + #: src/view/shell/desktop/LeftNav.tsx:706 6350 6350 #: src/view/shell/Drawer.tsx:493 6351 6351 msgid "Notifications" 6352 6352 msgstr "" ··· 6387 6387 #: src/components/contacts/screens/GetContacts.tsx:314 6388 6388 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 6389 6389 #: src/screens/Search/modules/ExploreInterestsCard.tsx:48 6390 - #: src/screens/Settings/AppIconSettings/index.tsx:48 6391 - #: src/screens/Settings/AppIconSettings/index.tsx:234 6390 + #: src/screens/Settings/AppIconSettings/index.tsx:45 6391 + #: src/screens/Settings/AppIconSettings/index.tsx:231 6392 6392 msgid "OK" 6393 6393 msgstr "" 6394 6394 ··· 6408 6408 msgid "on<0><1/><2><3/></2></0>" 6409 6409 msgstr "" 6410 6410 6411 - #: src/screens/Settings/Settings.tsx:406 6411 + #: src/screens/Settings/Settings.tsx:404 6412 6412 msgid "Onboarding reset" 6413 6413 msgstr "" 6414 6414 ··· 6510 6510 msgid "Open message options" 6511 6511 msgstr "" 6512 6512 6513 - #: src/screens/Settings/Settings.tsx:471 6513 + #: src/screens/Settings/Settings.tsx:469 6514 6514 msgid "Open moderation debug page" 6515 6515 msgstr "" 6516 6516 ··· 6531 6531 msgid "Open profile" 6532 6532 msgstr "" 6533 6533 6534 - #: src/components/PostControls/ShareMenu/index.tsx:107 6534 + #: src/components/PostControls/ShareMenu/index.tsx:100 6535 6535 msgid "Open share menu" 6536 6536 msgstr "" 6537 6537 ··· 6539 6539 msgid "Open starter pack menu" 6540 6540 msgstr "" 6541 6541 6542 - #: src/screens/Settings/Settings.tsx:464 6543 - #: src/screens/Settings/Settings.tsx:478 6542 + #: src/screens/Settings/Settings.tsx:462 6543 + #: src/screens/Settings/Settings.tsx:476 6544 6544 msgid "Open storybook page" 6545 6545 msgstr "" 6546 6546 6547 - #: src/screens/Settings/Settings.tsx:457 6547 + #: src/screens/Settings/Settings.tsx:455 6548 6548 msgid "Open system log" 6549 6549 msgstr "" 6550 6550 ··· 6611 6611 msgid "Opens GIF select dialog" 6612 6612 msgstr "" 6613 6613 6614 - #: src/screens/Settings/Settings.tsx:255 6614 + #: src/screens/Settings/Settings.tsx:253 6615 6615 msgid "Opens helpdesk in browser" 6616 6616 msgstr "" 6617 6617 ··· 7229 7229 msgid "Privacy" 7230 7230 msgstr "" 7231 7231 7232 - #: src/screens/Settings/Settings.tsx:188 7233 - #: src/screens/Settings/Settings.tsx:191 7232 + #: src/screens/Settings/Settings.tsx:186 7233 + #: src/screens/Settings/Settings.tsx:189 7234 7234 msgid "Privacy and security" 7235 7235 msgstr "" 7236 7236 ··· 7275 7275 msgid "profile" 7276 7276 msgstr "" 7277 7277 7278 - #: src/view/shell/bottom-bar/BottomBar.tsx:316 7279 - #: src/view/shell/desktop/LeftNav.tsx:787 7278 + #: src/view/shell/bottom-bar/BottomBar.tsx:313 7279 + #: src/view/shell/desktop/LeftNav.tsx:784 7280 7280 #: src/view/shell/Drawer.tsx:77 7281 7281 #: src/view/shell/Drawer.tsx:596 7282 7282 msgid "Profile" ··· 7508 7508 #: src/components/StarterPack/Wizard/WizardListCard.tsx:105 7509 7509 #: src/components/StarterPack/Wizard/WizardListCard.tsx:112 7510 7510 #: src/screens/Bookmarks/index.tsx:266 7511 - #: src/screens/Settings/Settings.tsx:684 7511 + #: src/screens/Settings/Settings.tsx:682 7512 7512 #: src/view/com/modals/UserAddRemoveLists.tsx:235 7513 7513 #: src/view/com/posts/PostFeedErrorMessage.tsx:220 7514 7514 msgid "Remove" ··· 7522 7522 msgid "Remove {historyItem}" 7523 7523 msgstr "" 7524 7524 7525 - #: src/screens/Settings/Settings.tsx:663 7526 - #: src/screens/Settings/Settings.tsx:666 7525 + #: src/screens/Settings/Settings.tsx:661 7526 + #: src/screens/Settings/Settings.tsx:664 7527 7527 msgid "Remove account" 7528 7528 msgstr "" 7529 7529 ··· 7568 7568 msgid "Remove from my feeds" 7569 7569 msgstr "" 7570 7570 7571 - #: src/screens/Settings/Settings.tsx:676 7571 + #: src/screens/Settings/Settings.tsx:674 7572 7572 msgid "Remove from quick access?" 7573 7573 msgstr "" 7574 7574 ··· 7949 7949 msgid "Resend Verification Email" 7950 7950 msgstr "" 7951 7951 7952 + #: src/screens/Settings/Settings.tsx:498 7952 7953 #: src/screens/Settings/Settings.tsx:500 7953 - #: src/screens/Settings/Settings.tsx:502 7954 7954 msgid "Reset activity subscription nudge" 7955 7955 msgstr "" 7956 7956 ··· 7958 7958 msgid "Reset code" 7959 7959 msgstr "" 7960 7960 7961 + #: src/screens/Settings/Settings.tsx:483 7961 7962 #: src/screens/Settings/Settings.tsx:485 7962 - #: src/screens/Settings/Settings.tsx:487 7963 7963 msgid "Reset onboarding state" 7964 7964 msgstr "" 7965 7965 ··· 8097 8097 msgid "Save to my feeds" 8098 8098 msgstr "" 8099 8099 8100 - #: src/view/shell/desktop/LeftNav.tsx:765 8100 + #: src/view/shell/desktop/LeftNav.tsx:762 8101 8101 #: src/view/shell/Drawer.tsx:571 8102 8102 msgctxt "link to bookmarks screen" 8103 8103 msgid "Saved" ··· 8150 8150 #: src/components/forms/SearchInput.tsx:36 8151 8151 #: src/screens/Search/Shell.tsx:327 8152 8152 #: src/screens/Search/Shell.tsx:514 8153 - #: src/view/shell/bottom-bar/BottomBar.tsx:198 8153 + #: src/view/shell/bottom-bar/BottomBar.tsx:195 8154 8154 msgid "Search" 8155 8155 msgstr "" 8156 8156 ··· 8278 8278 msgid "See jobs at Bluesky" 8279 8279 msgstr "" 8280 8280 8281 - #: src/components/FeedInterstitials.tsx:732 8282 - #: src/components/FeedInterstitials.tsx:793 8281 + #: src/components/FeedInterstitials.tsx:730 8282 + #: src/components/FeedInterstitials.tsx:791 8283 8283 msgid "See more" 8284 8284 msgstr "" 8285 8285 8286 - #: src/components/FeedInterstitials.tsx:714 8286 + #: src/components/FeedInterstitials.tsx:712 8287 8287 msgid "See more suggested profiles" 8288 8288 msgstr "" 8289 8289 ··· 8530 8530 msgid "Server address" 8531 8531 msgstr "" 8532 8532 8533 - #: src/screens/Settings/AppIconSettings/index.tsx:178 8533 + #: src/screens/Settings/AppIconSettings/index.tsx:175 8534 8534 msgid "Set app icon to {0}" 8535 8535 msgstr "" 8536 8536 ··· 8559 8559 msgstr "" 8560 8560 8561 8561 #: src/Navigation.tsx:215 8562 - #: src/screens/Settings/Settings.tsx:105 8563 - #: src/view/shell/desktop/LeftNav.tsx:805 8562 + #: src/screens/Settings/Settings.tsx:103 8563 + #: src/view/shell/desktop/LeftNav.tsx:802 8564 8564 #: src/view/shell/Drawer.tsx:609 8565 8565 msgid "Settings" 8566 8566 msgstr "" ··· 8810 8810 msgid "Show warning and filter from feeds" 8811 8811 msgstr "" 8812 8812 8813 - #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:60 8814 - #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:170 8813 + #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:59 8814 + #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:169 8815 8815 msgid "Show when you’re live" 8816 8816 msgstr "" 8817 8817 ··· 8819 8819 msgid "Shows information about when this post was created" 8820 8820 msgstr "" 8821 8821 8822 - #: src/screens/Settings/Settings.tsx:131 8822 + #: src/screens/Settings/Settings.tsx:129 8823 8823 msgid "Shows other accounts you can switch to" 8824 8824 msgstr "" 8825 8825 ··· 8841 8841 #: src/view/com/auth/SplashScreen.tsx:89 8842 8842 #: src/view/com/auth/SplashScreen.web.tsx:127 8843 8843 #: src/view/com/auth/SplashScreen.web.tsx:135 8844 - #: src/view/shell/bottom-bar/BottomBar.tsx:355 8845 - #: src/view/shell/bottom-bar/BottomBar.tsx:360 8844 + #: src/view/shell/bottom-bar/BottomBar.tsx:352 8845 + #: src/view/shell/bottom-bar/BottomBar.tsx:357 8846 + #: src/view/shell/bottom-bar/BottomBarWeb.tsx:211 8846 8847 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:216 8847 - #: src/view/shell/bottom-bar/BottomBarWeb.tsx:221 8848 8848 #: src/view/shell/NavSignupCard.tsx:57 8849 8849 #: src/view/shell/NavSignupCard.tsx:62 8850 8850 msgid "Sign in" ··· 8880 8880 msgid "Sign in to view post" 8881 8881 msgstr "" 8882 8882 8883 + #: src/screens/Settings/Settings.tsx:270 8883 8884 #: src/screens/Settings/Settings.tsx:272 8884 - #: src/screens/Settings/Settings.tsx:274 8885 - #: src/screens/Settings/Settings.tsx:306 8885 + #: src/screens/Settings/Settings.tsx:304 8886 8886 #: src/screens/SignupQueued.tsx:93 8887 8887 #: src/screens/SignupQueued.tsx:96 8888 8888 #: src/screens/Takendown.tsx:88 ··· 8896 8896 msgid "Sign Out" 8897 8897 msgstr "" 8898 8898 8899 - #: src/screens/Settings/Settings.tsx:303 8899 + #: src/screens/Settings/Settings.tsx:301 8900 8900 #: src/view/shell/desktop/LeftNav.tsx:209 8901 8901 msgid "Sign out?" 8902 8902 msgstr "" ··· 8911 8911 msgid "Signed in as @{0}" 8912 8912 msgstr "" 8913 8913 8914 - #: src/components/FeedInterstitials.tsx:709 8914 + #: src/components/FeedInterstitials.tsx:707 8915 8915 msgid "Similar accounts" 8916 8916 msgstr "" 8917 8917 ··· 8919 8919 #: src/components/contacts/screens/VerifyNumber.tsx:202 8920 8920 #: src/screens/Onboarding/StepFindContactsIntro/index.tsx:78 8921 8921 #: src/screens/Onboarding/StepFindContactsIntro/index.tsx:82 8922 - #: src/screens/Onboarding/StepFinished/index.tsx:294 8923 - #: src/screens/Onboarding/StepFinished/index.tsx:316 8922 + #: src/screens/Onboarding/StepFinished/index.tsx:288 8923 + #: src/screens/Onboarding/StepFinished/index.tsx:310 8924 8924 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:252 8925 8925 #: src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx:104 8926 8926 #: src/screens/StarterPack/Wizard/index.tsx:218 ··· 8932 8932 msgid "Skip contact sharing and continue to the app" 8933 8933 msgstr "" 8934 8934 8935 - #: src/screens/Onboarding/StepFinished/index.tsx:287 8936 - #: src/screens/Onboarding/StepFinished/index.tsx:313 8935 + #: src/screens/Onboarding/StepFinished/index.tsx:281 8936 + #: src/screens/Onboarding/StepFinished/index.tsx:307 8937 8937 msgid "Skip introduction and start using your account" 8938 8938 msgstr "" 8939 8939 ··· 8962 8962 msgid "Some of your verifications are invalid." 8963 8963 msgstr "" 8964 8964 8965 - #: src/components/FeedInterstitials.tsx:871 8965 + #: src/components/FeedInterstitials.tsx:869 8966 8966 msgid "Some other feeds you might like" 8967 8967 msgstr "" 8968 8968 ··· 9019 9019 msgid "Sorry, we're unable to load account suggestions at this time." 9020 9020 msgstr "" 9021 9021 9022 - #: src/App.native.tsx:131 9022 + #: src/App.native.tsx:132 9023 9023 #: src/App.web.tsx:104 9024 9024 msgid "Sorry! Your session expired. Please sign in again." 9025 9025 msgstr "" ··· 9122 9122 msgid "Step {0} of {1}" 9123 9123 msgstr "" 9124 9124 9125 - #: src/screens/Settings/Settings.tsx:411 9125 + #: src/screens/Settings/Settings.tsx:409 9126 9126 msgid "Storage cleared, you need to restart the app now." 9127 9127 msgstr "" 9128 9128 ··· 9131 9131 msgstr "" 9132 9132 9133 9133 #: src/Navigation.tsx:308 9134 - #: src/screens/Settings/Settings.tsx:466 9134 + #: src/screens/Settings/Settings.tsx:464 9135 9135 msgid "Storybook" 9136 9136 msgstr "" 9137 9137 9138 - #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:181 9138 + #: src/components/dialogs/nuxs/LiveNowBetaDialog.tsx:180 9139 9139 msgid "Streaming on Twitch? Set your live status on Bluesky to add a badge to your avatar. Tapping it takes people straight to your stream." 9140 9140 msgstr "" 9141 9141 ··· 9207 9207 msgstr "" 9208 9208 9209 9209 #. Accounts suggested to the user for them to follow 9210 - #: src/components/FeedInterstitials.tsx:707 9210 + #: src/components/FeedInterstitials.tsx:705 9211 9211 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:155 9212 9212 msgid "Suggested for you" 9213 9213 msgstr "" ··· 9237 9237 msgid "Support for this feature in your country has not been enabled yet! Please check back later." 9238 9238 msgstr "" 9239 9239 9240 - #: src/screens/Settings/Settings.tsx:129 9241 - #: src/screens/Settings/Settings.tsx:143 9242 - #: src/screens/Settings/Settings.tsx:624 9240 + #: src/screens/Settings/Settings.tsx:127 9241 + #: src/screens/Settings/Settings.tsx:141 9242 + #: src/screens/Settings/Settings.tsx:622 9243 9243 #: src/view/shell/desktop/LeftNav.tsx:247 9244 9244 msgid "Switch account" 9245 9245 msgstr "" ··· 9267 9267 #: src/screens/Log.tsx:58 9268 9268 #: src/screens/Settings/AboutSettings.tsx:107 9269 9269 #: src/screens/Settings/AboutSettings.tsx:110 9270 - #: src/screens/Settings/Settings.tsx:459 9270 + #: src/screens/Settings/Settings.tsx:457 9271 9271 msgid "System log" 9272 9272 msgstr "" 9273 9273 ··· 9408 9408 msgid "The account will be able to interact with you after unblocking." 9409 9409 msgstr "" 9410 9410 9411 - #: src/screens/Settings/AppIconSettings/index.tsx:41 9412 - #: src/screens/Settings/AppIconSettings/index.tsx:227 9411 + #: src/screens/Settings/AppIconSettings/index.tsx:38 9412 + #: src/screens/Settings/AppIconSettings/index.tsx:224 9413 9413 msgid "The app will be restarted" 9414 9414 msgstr "" 9415 9415 ··· 9551 9551 msgstr "" 9552 9552 9553 9553 #: src/screens/Search/Explore.tsx:999 9554 - #: src/view/com/posts/PostFeed.tsx:758 9554 + #: src/view/com/posts/PostFeed.tsx:755 9555 9555 msgid "There was an issue fetching posts. Tap here to try again." 9556 9556 msgstr "" 9557 9557 ··· 9882 9882 msgid "This will delete \"{0}\" from your muted words. You can always add it back later." 9883 9883 msgstr "" 9884 9884 9885 - #: src/screens/Settings/Settings.tsx:678 9885 + #: src/screens/Settings/Settings.tsx:676 9886 9886 msgid "This will remove @{0} from the quick access list." 9887 9887 msgstr "" 9888 9888 ··· 10065 10065 msgid "Unable to delete" 10066 10066 msgstr "" 10067 10067 10068 - #: src/screens/Settings/Settings.tsx:525 10068 + #: src/screens/Settings/Settings.tsx:523 10069 10069 msgid "Unapply Pull Request" 10070 10070 msgstr "" 10071 10071 10072 - #: src/screens/Settings/Settings.tsx:527 10072 + #: src/screens/Settings/Settings.tsx:525 10073 10073 msgid "Unapply Pull Request {currentChannel}" 10074 10074 msgstr "" 10075 10075 ··· 10266 10266 msgid "Unpinned list" 10267 10267 msgstr "" 10268 10268 10269 + #: src/screens/Settings/Settings.tsx:490 10269 10270 #: src/screens/Settings/Settings.tsx:492 10270 - #: src/screens/Settings/Settings.tsx:494 10271 10271 msgid "Unsnooze email reminder" 10272 10272 msgstr "" 10273 10273 ··· 11456 11456 msgid "You previously deactivated @{0}." 11457 11457 msgstr "" 11458 11458 11459 - #: src/screens/Settings/Settings.tsx:422 11459 + #: src/screens/Settings/Settings.tsx:420 11460 11460 msgid "You probably want to restart the app now." 11461 11461 msgstr "" 11462 11462 ··· 11473 11473 msgid "You recently changed your birthdate" 11474 11474 msgstr "" 11475 11475 11476 - #: src/screens/Settings/Settings.tsx:304 11476 + #: src/screens/Settings/Settings.tsx:302 11477 11477 #: src/view/shell/desktop/LeftNav.tsx:210 11478 11478 msgid "You will be signed out of all your accounts." 11479 11479 msgstr ""
-1
src/logger/bitdrift/lib/index.ts
··· 1 - export {debug, error, info, warn} from '@bitdrift/react-native'
-4
src/logger/bitdrift/lib/index.web.ts
··· 1 - export function debug() {} 2 - export function error() {} 3 - export function info() {} 4 - export function warn() {}
-27
src/logger/bitdrift/setup/index.ts
··· 1 - import {init, SessionStrategy} from '@bitdrift/react-native' 2 - import {Statsig} from 'statsig-react-native-expo' 3 - 4 - import {initPromise} from '#/lib/statsig/statsig' 5 - import {BITDRIFT_API_KEY} from '#/env' 6 - 7 - initPromise.then(() => { 8 - let isEnabled = false 9 - let isNetworkEnabled = false 10 - try { 11 - if (Statsig.checkGate('enable_bitdrift_v2')) { 12 - isEnabled = true 13 - } 14 - if (Statsig.checkGate('enable_bitdrift_v2_networking')) { 15 - isNetworkEnabled = true 16 - } 17 - } catch (e) { 18 - // Statsig may complain about it being called too early. 19 - } 20 - if (isEnabled && BITDRIFT_API_KEY) { 21 - init(BITDRIFT_API_KEY, SessionStrategy.Activity, { 22 - url: 'https://api-bsky.bitdrift.io', 23 - // Only effects iOS, Android instrumentation is set via Gradle Plugin 24 - enableNetworkInstrumentation: isNetworkEnabled, 25 - }) 26 - } 27 - })
src/logger/bitdrift/setup/index.web.ts

This is a binary file and will not be displayed.

+1 -5
src/logger/index.ts
··· 3 3 import {logEvent} from '#/lib/statsig/statsig' 4 4 import {add} from '#/logger/logDump' 5 5 import {type MetricEvents} from '#/logger/metrics' 6 - import {bitdriftTransport} from '#/logger/transports/bitdrift' 7 6 import {consoleTransport} from '#/logger/transports/console' 8 7 import {sentryTransport} from '#/logger/transports/sentry' 9 8 import { ··· 13 12 type Transport, 14 13 } from '#/logger/types' 15 14 import {enabledLogLevels} from '#/logger/util' 16 - import {IS_NATIVE} from '#/env' 17 15 import {ENV} from '#/env' 18 16 19 17 export {type MetricEvents as Metrics} from '#/logger/metrics' ··· 21 19 const TRANSPORTS: Transport[] = (function configureTransports() { 22 20 switch (ENV) { 23 21 case 'production': { 24 - return [sentryTransport, IS_NATIVE && bitdriftTransport].filter( 25 - Boolean, 26 - ) as Transport[] 22 + return [sentryTransport].filter(Boolean) 27 23 } 28 24 case 'test': { 29 25 return []
-24
src/logger/transports/bitdrift.ts
··· 1 - import {debug, error, info, warn} from '#/logger/bitdrift/lib' 2 - import {LogLevel, type Transport} from '#/logger/types' 3 - import {prepareMetadata} from '#/logger/util' 4 - 5 - const logFunctions = { 6 - [LogLevel.Debug]: debug, 7 - [LogLevel.Info]: info, 8 - [LogLevel.Log]: info, 9 - [LogLevel.Warn]: warn, 10 - [LogLevel.Error]: error, 11 - } as const 12 - 13 - export const bitdriftTransport: Transport = ( 14 - level, 15 - context, 16 - message, 17 - metadata, 18 - ) => { 19 - const log = logFunctions[level] 20 - log(message.toString(), { 21 - __context__: context, 22 - ...prepareMetadata(metadata), 23 - }) 24 - }
+5 -11
src/screens/Onboarding/StepFinished/index.tsx
··· 20 20 VIDEO_SAVED_FEED, 21 21 } from '#/lib/constants' 22 22 import {useRequestNotificationsPermission} from '#/lib/notifications/notifications' 23 - import {logEvent, useGate} from '#/lib/statsig/statsig' 23 + import {logEvent} from '#/lib/statsig/statsig' 24 24 import {logger} from '#/logger' 25 25 import {useSetHasCheckedForStarterPack} from '#/state/preferences/used-starter-packs' 26 26 import {getAllListMembers} from '#/state/queries/list-members' ··· 61 61 const setActiveStarterPack = useSetActiveStarterPack() 62 62 const setHasCheckedForStarterPack = useSetHasCheckedForStarterPack() 63 63 const {startProgressGuide} = useProgressGuideControls() 64 - const gate = useGate() 65 64 66 65 const finishOnboarding = useCallback(async () => { 67 66 setSaving(true) ··· 114 113 ...TIMELINE_SAVED_FEED, 115 114 id: TID.nextStr(), 116 115 }, 117 - ] 118 - if (gate('onboarding_add_video_feed')) { 119 - feedsToSave.push({ 116 + { 120 117 ...VIDEO_SAVED_FEED, 121 118 id: TID.nextStr(), 122 - }) 123 - } 119 + }, 120 + ] 124 121 125 122 // Any starter pack feeds will be pinned _after_ the defaults 126 123 if (starterPack && starterPack.feeds?.length) { ··· 200 197 setSaving(false) 201 198 setActiveStarterPack(undefined) 202 199 setHasCheckedForStarterPack(true) 203 - startProgressGuide( 204 - gate('old_postonboarding') ? 'like-10-and-follow-7' : 'follow-10', 205 - ) 200 + startProgressGuide('follow-10') 206 201 dispatch({type: 'finish'}) 207 202 onboardDispatch({type: 'finish'}) 208 203 logEvent('onboarding:finished:nextPressed', { ··· 238 233 setActiveStarterPack, 239 234 setHasCheckedForStarterPack, 240 235 startProgressGuide, 241 - gate, 242 236 ]) 243 237 244 238 return (
+3 -7
src/screens/Onboarding/index.tsx
··· 23 23 import {useFindContactsFlowState} from '#/components/contacts/state' 24 24 import {Portal} from '#/components/Portal' 25 25 import {ScreenTransition} from '#/components/ScreenTransition' 26 - import {IS_NATIVE} from '#/env' 27 - import {ENV} from '#/env' 26 + import {ENV, IS_NATIVE} from '#/env' 28 27 import {StepFindContacts} from './StepFindContacts' 29 28 import {StepFindContactsIntro} from './StepFindContactsIntro' 30 29 import {StepSuggestedAccounts} from './StepSuggestedAccounts' 31 30 import {StepSuggestedStarterpacks} from './StepSuggestedStarterpacks' 32 31 33 32 export function Onboarding() { 34 - const gate = useGate() 35 33 const t = useTheme() 34 + const gate = useGate() 36 35 37 36 const {contentLanguages} = useLanguagePrefs() 38 37 const probablySpeaksEnglish = useMemo(() => { ··· 41 40 }, [contentLanguages]) 42 41 43 42 // starter packs screen is currently geared towards english-speaking accounts 44 - const showSuggestedStarterpacks = 45 - ENV !== 'e2e' && 46 - probablySpeaksEnglish && 47 - gate('onboarding_suggested_starterpacks') 43 + const showSuggestedStarterpacks = ENV !== 'e2e' && probablySpeaksEnglish 48 44 49 45 const findContactsEnabled = 50 46 useIsFindContactsFeatureEnabledBasedOnGeolocation()
+2 -5
src/screens/Settings/AppIconSettings/index.tsx
··· 7 7 8 8 import {PressableScale} from '#/lib/custom-animations/PressableScale' 9 9 import {type CommonNavigatorParams} from '#/lib/routes/types' 10 - import {useGate} from '#/lib/statsig/statsig' 11 10 import {AppIconImage} from '#/screens/Settings/AppIconSettings/AppIconImage' 12 11 import {type AppIconSet} from '#/screens/Settings/AppIconSettings/types' 13 12 import {useAppIconSets} from '#/screens/Settings/AppIconSettings/useAppIconSets' ··· 15 14 import * as Toggle from '#/components/forms/Toggle' 16 15 import * as Layout from '#/components/Layout' 17 16 import {Text} from '#/components/Typography' 18 - import {IS_ANDROID} from '#/env' 19 - import {IS_INTERNAL} from '#/env' 17 + import {IS_ANDROID, IS_INTERNAL} from '#/env' 20 18 21 19 type Props = NativeStackScreenProps<CommonNavigatorParams, 'AppIconSettings'> 22 20 export function AppIconSettingsScreen({}: Props) { 23 21 const t = useTheme() 24 22 const {_} = useLingui() 25 23 const sets = useAppIconSets() 26 - const gate = useGate() 27 24 const [currentAppIcon, setCurrentAppIcon] = useState(() => 28 25 getAppIconName(DynamicAppIcon.getAppIcon()), 29 26 ) ··· 86 83 ))} 87 84 </Group> 88 85 89 - {IS_INTERNAL && gate('debug_subscriptions') && ( 86 + {IS_INTERNAL && ( 90 87 <> 91 88 <Text 92 89 style={[
+2 -4
src/screens/Settings/Settings.tsx
··· 1 1 import {useState} from 'react' 2 - import {Alert, LayoutAnimation, Pressable, View} from 'react-native' 3 - import {Linking} from 'react-native' 2 + import {Alert, LayoutAnimation, Linking, Pressable, View} from 'react-native' 4 3 import {useReducedMotion} from 'react-native-reanimated' 5 4 import {type AppBskyActorDefs, moderateProfile} from '@atproto/api' 6 5 import {msg, Trans} from '@lingui/macro' ··· 72 71 shouldShowVerificationCheckButton, 73 72 VerificationCheckButton, 74 73 } from '#/components/verification/VerificationCheckButton' 75 - import {IS_IOS, IS_NATIVE} from '#/env' 76 - import {IS_INTERNAL} from '#/env' 74 + import {IS_INTERNAL, IS_IOS, IS_NATIVE} from '#/env' 77 75 import {device, useStorage} from '#/storage' 78 76 import {useActivitySubscriptionsNudged} from '#/storage/hooks/activity-subscriptions-nudged' 79 77
+6 -92
src/state/session/logging.ts
··· 1 1 import {type AtpSessionData, type AtpSessionEvent} from '@atproto/api' 2 - import {sha256} from 'js-sha256' 3 - import {Statsig} from 'statsig-react-native-expo' 4 2 5 - import {IS_INTERNAL} from '#/env' 6 3 import {type Schema} from '../persisted' 7 4 import {type Action, type State} from './reducer' 8 5 import {type SessionAccount} from './types' ··· 68 65 } 69 66 } 70 67 71 - let nextMessageIndex = 0 72 - const MAX_SLICE_LENGTH = 1000 73 - 74 - // Not gated. 75 - export function addSessionErrorLog(did: string, event: AtpSessionEvent) { 76 - try { 77 - if (!Statsig.initializeCalled() || !Statsig.getStableID()) { 78 - return 79 - } 80 - const stack = (new Error().stack ?? '').slice(0, MAX_SLICE_LENGTH) 81 - Statsig.logEvent('session:error', null, { 82 - did, 83 - event, 84 - stack, 85 - }) 86 - } catch (e) { 87 - console.error(e) 88 - } 89 - } 90 - 91 - export function addSessionDebugLog(log: Log) { 92 - try { 93 - if (!Statsig.initializeCalled() || !Statsig.getStableID()) { 94 - // Drop these logs for now. 95 - return 96 - } 97 - // DISABLING THIS GATE DUE TO EME @TODO EME-GATE 98 - if (!IS_INTERNAL) { 99 - return 100 - } 101 - // if (!Statsig.checkGate('debug_session')) { 102 - // return 103 - // } 104 - const messageIndex = nextMessageIndex++ 105 - const {type, ...content} = log 106 - let payload = JSON.stringify(content, replacer) 107 - 108 - let nextSliceIndex = 0 109 - while (payload.length > 0) { 110 - const sliceIndex = nextSliceIndex++ 111 - const slice = payload.slice(0, MAX_SLICE_LENGTH) 112 - payload = payload.slice(MAX_SLICE_LENGTH) 113 - Statsig.logEvent('session:debug', null, { 114 - realmId, 115 - messageIndex: String(messageIndex), 116 - messageType: type, 117 - sliceIndex: String(sliceIndex), 118 - slice, 119 - }) 120 - } 121 - } catch (e) { 122 - console.error(e) 123 - } 124 - } 125 - 126 - let agentIds = new WeakMap<object, string>() 127 - let realmId = Math.random().toString(36).slice(2) 128 - let nextAgentId = 1 129 - 130 - function getAgentId(agent: object) { 131 - let id = agentIds.get(agent) 132 - if (id === undefined) { 133 - id = realmId + '::' + nextAgentId++ 134 - agentIds.set(agent, id) 135 - } 136 - return id 137 - } 138 - 139 - function replacer(key: string, value: unknown) { 140 - if (typeof value === 'object' && value != null && 'api' in value) { 141 - return getAgentId(value) 142 - } 143 - if ( 144 - key === 'service' || 145 - key === 'email' || 146 - key === 'emailConfirmed' || 147 - key === 'emailAuthFactor' || 148 - key === 'pdsUrl' 149 - ) { 150 - return undefined 151 - } 152 - if ( 153 - typeof value === 'string' && 154 - (key === 'refreshJwt' || key === 'accessJwt') 155 - ) { 156 - return sha256(value) 157 - } 158 - return value 159 - } 68 + /** 69 + * Stubs, previously used to log session errors to Statsig. We may revive this 70 + * using Sentry or Bitdrift in the future. 71 + */ 72 + export function addSessionErrorLog(_did: string, _event: AtpSessionEvent) {} 73 + export function addSessionDebugLog(_log: Log) {}
+3 -6
src/view/com/posts/PostFeed.tsx
··· 31 31 import {DISCOVER_FEED_URI, KNOWN_SHUTDOWN_FEEDS} from '#/lib/constants' 32 32 import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' 33 33 import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' 34 - import {logEvent, useGate} from '#/lib/statsig/statsig' 34 + import {logEvent} from '#/lib/statsig/statsig' 35 35 import {isNetworkError} from '#/lib/strings/errors' 36 36 import {logger} from '#/logger' 37 37 import {usePostAuthorShadowFilter} from '#/state/cache/profile-shadow' ··· 235 235 const {_} = useLingui() 236 236 const queryClient = useQueryClient() 237 237 const {currentAccount, hasSession} = useSession() 238 - const gate = useGate() 239 238 const initialNumToRender = useInitialNumToRender() 240 239 const feedFeedback = useFeedFeedbackContext() 241 240 const [isPTRing, setIsPTRing] = useState(false) ··· 523 522 if ( 524 523 hasSession && 525 524 (feedUriOrActorDid === DISCOVER_FEED_URI || 526 - feed === 'following') && 527 - gate('show_composer_prompt') 525 + feed === 'following') 528 526 ) { 529 527 arr.push({ 530 528 type: 'composerPrompt', ··· 547 545 } else if (feedKind === 'following') { 548 546 if (sliceIndex === 0) { 549 547 // Show composer prompt for Following feed 550 - if (hasSession && gate('show_composer_prompt')) { 548 + if (hasSession) { 551 549 arr.push({ 552 550 type: 'composerPrompt', 553 551 key: 'composerPrompt-' + sliceIndex, ··· 681 679 hasPressedShowLessUris, 682 680 ageAssuranceBannerState, 683 681 isCurrentFeedAtStartupSelected, 684 - gate, 685 682 blockedOrMutedAuthors, 686 683 ]) 687 684
+12 -25
src/view/com/posts/PostFeedItem.tsx
··· 9 9 type ModerationDecision, 10 10 RichText as RichTextAPI, 11 11 } from '@atproto/api' 12 - import {useNavigation} from '@react-navigation/native' 13 12 import {useQueryClient} from '@tanstack/react-query' 14 13 15 14 import {useActorStatus} from '#/lib/actor-status' ··· 18 17 import {useOpenComposer} from '#/lib/hooks/useOpenComposer' 19 18 import {usePalette} from '#/lib/hooks/usePalette' 20 19 import {makeProfileLink} from '#/lib/routes/links' 21 - import {type NavigationProp} from '#/lib/routes/types' 22 - import {useGate} from '#/lib/statsig/statsig' 23 20 import {countLines} from '#/lib/strings/helpers' 24 21 import {logger} from '#/logger' 25 22 import { ··· 51 48 import {DiscoverDebug} from '#/components/PostControls/DiscoverDebug' 52 49 import {RichText} from '#/components/RichText' 53 50 import {SubtleHover} from '#/components/SubtleHover' 54 - import {ENV} from '#/env' 55 51 import * as bsky from '#/types/bsky' 56 52 import {PostFeedReason} from './PostFeedReason' 57 53 ··· 164 160 }): React.ReactNode => { 165 161 const queryClient = useQueryClient() 166 162 const {openComposer} = useOpenComposer() 167 - const navigation = useNavigation<NavigationProp>() 168 163 const pal = usePalette('default') 169 - const gate = useGate() 170 164 171 165 const [hover, setHover] = useState(false) 172 166 173 - const [href, rkey] = useMemo(() => { 167 + const [href] = useMemo(() => { 174 168 const urip = new AtUri(post.uri) 175 169 return [makeProfileLink(post.author, 'post', urip.rkey), urip.rkey] 176 170 }, [post.uri, post.author]) ··· 184 178 feedContext, 185 179 reqId, 186 180 }) 187 - if (gate('feed_reply_button_open_thread') && ENV !== 'e2e') { 188 - navigation.navigate('PostThread', { 189 - name: post.author.did, 190 - rkey, 191 - }) 192 - } else { 193 - openComposer({ 194 - replyTo: { 195 - uri: post.uri, 196 - cid: post.cid, 197 - text: record.text || '', 198 - author: post.author, 199 - embed: post.embed, 200 - moderation, 201 - langs: record.langs, 202 - }, 203 - }) 204 - } 181 + openComposer({ 182 + replyTo: { 183 + uri: post.uri, 184 + cid: post.cid, 185 + text: record.text || '', 186 + author: post.author, 187 + embed: post.embed, 188 + moderation, 189 + langs: record.langs, 190 + }, 191 + }) 205 192 } 206 193 207 194 const onOpenAuthor = () => {
-6
src/view/com/util/load-latest/LoadLatestBtn.tsx
··· 8 8 import {useMinimalShellFabTransform} from '#/lib/hooks/useMinimalShellTransform' 9 9 import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' 10 10 import {clamp} from '#/lib/numbers' 11 - import {useGate} from '#/lib/statsig/statsig' 12 11 import {useSession} from '#/state/session' 13 12 import {atoms as a, useLayoutBreakpoints, useTheme, web} from '#/alf' 14 13 import {useInteractionState} from '#/components/hooks/useInteractionState' ··· 39 38 40 39 // move button inline if it starts overlapping the left nav 41 40 const isTallViewport = useMediaQuery({minHeight: 700}) 42 - 43 - const gate = useGate() 44 - if (gate('remove_show_latest_button')) { 45 - return null 46 - } 47 41 48 42 // Adjust height of the fab if we have a session only on mobile web. If we don't have a session, we want to adjust 49 43 // it on both tablet and mobile since we are showing the bottom bar (see createNativeStackNavigatorWithAuth)
+4 -7
src/view/shell/bottom-bar/BottomBar.tsx
··· 18 18 import {usePalette} from '#/lib/hooks/usePalette' 19 19 import {clamp} from '#/lib/numbers' 20 20 import {getTabState, TabState} from '#/lib/routes/helpers' 21 - import {useGate} from '#/lib/statsig/statsig' 22 21 import {emitSoftReset} from '#/state/events' 23 - import {useHomeBadge} from '#/state/home-badge' 24 22 import {useUnreadMessageCount} from '#/state/queries/messages/list-conversations' 25 23 import {useUnreadNotifications} from '#/state/queries/notifications/unread' 26 24 import {useProfileQuery} from '#/state/queries/profile' ··· 43 41 HomeOpen_Filled_Corner0_Rounded as HomeFilled, 44 42 HomeOpen_Stoke2_Corner0_Rounded as Home, 45 43 } from '#/components/icons/HomeOpen' 46 - import {MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled} from '#/components/icons/MagnifyingGlass' 47 - import {MagnifyingGlass_Stroke2_Corner0_Rounded as MagnifyingGlass} from '#/components/icons/MagnifyingGlass' 44 + import { 45 + MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled, 46 + MagnifyingGlass_Stroke2_Corner0_Rounded as MagnifyingGlass, 47 + } from '#/components/icons/MagnifyingGlass' 48 48 import { 49 49 Message_Stroke2_Corner0_Rounded as Message, 50 50 Message_Stroke2_Corner0_Rounded_Filled as MessageFilled, ··· 72 72 const dedupe = useDedupe() 73 73 const accountSwitchControl = useDialogControl() 74 74 const playHaptic = useHaptics() 75 - const hasHomeBadge = useHomeBadge() 76 - const gate = useGate() 77 75 const hideBorder = useHideBottomBarBorder() 78 76 const iconWidth = 28 79 77 ··· 172 170 /> 173 171 ) 174 172 } 175 - hasNew={hasHomeBadge && gate('remove_show_latest_button')} 176 173 onPress={onPressHome} 177 174 accessibilityRole="tab" 178 175 accessibilityLabel={_(msg`Home`)}
+5 -10
src/view/shell/bottom-bar/BottomBarWeb.tsx
··· 10 10 import {getCurrentRoute, isTab} from '#/lib/routes/helpers' 11 11 import {makeProfileLink} from '#/lib/routes/links' 12 12 import {type CommonNavigatorParams} from '#/lib/routes/types' 13 - import {useGate} from '#/lib/statsig/statsig' 14 - import {useHomeBadge} from '#/state/home-badge' 15 13 import {useUnreadMessageCount} from '#/state/queries/messages/list-conversations' 16 14 import {useUnreadNotifications} from '#/state/queries/notifications/unread' 17 15 import {useSession} from '#/state/session' ··· 31 29 HomeOpen_Filled_Corner0_Rounded as HomeFilled, 32 30 HomeOpen_Stoke2_Corner0_Rounded as Home, 33 31 } from '#/components/icons/HomeOpen' 34 - import {MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled} from '#/components/icons/MagnifyingGlass' 35 - import {MagnifyingGlass_Stroke2_Corner0_Rounded as MagnifyingGlass} from '#/components/icons/MagnifyingGlass' 32 + import { 33 + MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled, 34 + MagnifyingGlass_Stroke2_Corner0_Rounded as MagnifyingGlass, 35 + } from '#/components/icons/MagnifyingGlass' 36 36 import { 37 37 Message_Stroke2_Corner0_Rounded as Message, 38 38 Message_Stroke2_Corner0_Rounded_Filled as MessageFilled, ··· 57 57 58 58 const unreadMessageCount = useUnreadMessageCount() 59 59 const notificationCountStr = useUnreadNotifications() 60 - const hasHomeBadge = useHomeBadge() 61 - const gate = useGate() 62 60 63 61 const showSignIn = React.useCallback(() => { 64 62 closeAllActiveElements() ··· 86 84 onLayout={event => footerHeight.set(event.nativeEvent.layout.height)}> 87 85 {hasSession ? ( 88 86 <> 89 - <NavItem 90 - routeName="Home" 91 - href="/" 92 - hasNew={hasHomeBadge && gate('remove_show_latest_button')}> 87 + <NavItem routeName="Home" href="/"> 93 88 {({isActive}) => { 94 89 const Icon = isActive ? HomeFilled : Home 95 90 return (
+1 -2
src/view/shell/createNativeStackNavigatorWithAuth.tsx
··· 25 25 type NativeStackNavigatorProps, 26 26 } from '@react-navigation/native-stack' 27 27 28 - import {PWI_ENABLED} from '#/lib/build-flags' 29 28 import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' 30 29 import {useSession} from '#/state/session' 31 30 import {useOnboardingState} from '#/state/shell' ··· 115 114 const {setShowLoggedOut} = useLoggedOutViewControls() 116 115 const {isMobile} = useWebMediaQueries() 117 116 const {leftNavMinimal} = useLayoutBreakpoints() 118 - if (!hasSession && (!PWI_ENABLED || activeRouteRequiresAuth || IS_NATIVE)) { 117 + if (!hasSession && (activeRouteRequiresAuth || IS_NATIVE)) { 119 118 return <LoggedOut /> 120 119 } 121 120 if (hasSession && currentAccount?.signupQueued) {
+4 -7
src/view/shell/desktop/LeftNav.tsx
··· 16 16 type CommonNavigatorParams, 17 17 type NavigationProp, 18 18 } from '#/lib/routes/types' 19 - import {useGate} from '#/lib/statsig/statsig' 20 19 import {sanitizeDisplayName} from '#/lib/strings/display-names' 21 20 import {isInvalidHandle, sanitizeHandle} from '#/lib/strings/handles' 22 21 import {useAlterEgoProfileFields} from '#/state/crack/alter-ego' 23 22 import {emitSoftReset} from '#/state/events' 24 - import {useHomeBadge} from '#/state/home-badge' 25 23 import {useFetchHandle} from '#/state/queries/handle' 26 24 import {useUnreadMessageCount} from '#/state/queries/messages/list-conversations' 27 25 import {useUnreadNotifications} from '#/state/queries/notifications/unread' ··· 57 55 HomeOpen_Filled_Corner0_Rounded as HomeFilled, 58 56 HomeOpen_Stoke2_Corner0_Rounded as Home, 59 57 } from '#/components/icons/HomeOpen' 60 - import {MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled} from '#/components/icons/MagnifyingGlass' 61 - import {MagnifyingGlass_Stroke2_Corner0_Rounded as MagnifyingGlass} from '#/components/icons/MagnifyingGlass' 58 + import { 59 + MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled, 60 + MagnifyingGlass_Stroke2_Corner0_Rounded as MagnifyingGlass, 61 + } from '#/components/icons/MagnifyingGlass' 62 62 import { 63 63 Message_Stroke2_Corner0_Rounded as Message, 64 64 Message_Stroke2_Corner0_Rounded_Filled as MessageFilled, ··· 642 642 const {isDesktop} = useWebMediaQueries() 643 643 const {leftNavMinimal, centerColumnOffset} = useLayoutBreakpoints() 644 644 const numUnreadNotifications = useUnreadNotifications() 645 - const hasHomeBadge = useHomeBadge() 646 - const gate = useGate() 647 645 648 646 if (!hasSession && !isDesktop) { 649 647 return null ··· 679 677 <> 680 678 <NavItem 681 679 href="/" 682 - hasNew={hasHomeBadge && gate('remove_show_latest_button')} 683 680 icon={ 684 681 <Home 685 682 aria-hidden={true}
+4 -4
yarn.lock
··· 7462 7462 "@types/estree" "*" 7463 7463 "@types/json-schema" "*" 7464 7464 7465 - "@types/estree@*", "@types/estree@^1.0.0": 7466 - version "1.0.1" 7467 - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" 7468 - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== 7465 + "@types/estree@*", "@types/estree@1.0.6", "@types/estree@^1.0.0", "@types/estree@^1.0.6": 7466 + version "1.0.6" 7467 + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" 7468 + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== 7469 7469 7470 7470 "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": 7471 7471 version "4.17.35"