Merge remote-tracking branch 'origin/main' into hailey/79fab
This commit is contained in:
+2
-2
@@ -90,7 +90,7 @@
|
|||||||
"@lingui/react": "^4.14.1",
|
"@lingui/react": "^4.14.1",
|
||||||
"@mattermost/react-native-paste-input": "^0.7.1",
|
"@mattermost/react-native-paste-input": "^0.7.1",
|
||||||
"@miblanchard/react-native-slider": "^2.6.0",
|
"@miblanchard/react-native-slider": "^2.6.0",
|
||||||
"@mozzius/expo-dynamic-app-icon": "1.5.0",
|
"@mozzius/expo-dynamic-app-icon": "^1.5.0",
|
||||||
"@react-native-async-storage/async-storage": "2.1.2",
|
"@react-native-async-storage/async-storage": "2.1.2",
|
||||||
"@react-native-menu/menu": "^1.2.3",
|
"@react-native-menu/menu": "^1.2.3",
|
||||||
"@react-native-picker/picker": "2.11.0",
|
"@react-native-picker/picker": "2.11.0",
|
||||||
@@ -223,7 +223,7 @@
|
|||||||
"@babel/core": "^7.26.0",
|
"@babel/core": "^7.26.0",
|
||||||
"@babel/preset-env": "^7.26.0",
|
"@babel/preset-env": "^7.26.0",
|
||||||
"@babel/runtime": "^7.26.0",
|
"@babel/runtime": "^7.26.0",
|
||||||
"@expo/config-plugins": "~10.0.0",
|
"@expo/config-plugins": "~10.0.2",
|
||||||
"@lingui/cli": "^4.14.1",
|
"@lingui/cli": "^4.14.1",
|
||||||
"@lingui/macro": "^4.14.1",
|
"@lingui/macro": "^4.14.1",
|
||||||
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import {type AppBskyFeedDefs, type BskyAgent} from '@atproto/api'
|
||||||
|
|
||||||
|
import {DEMO_FEED} from '#/lib/demo'
|
||||||
|
import {type FeedAPI, type FeedAPIResponse} from './types'
|
||||||
|
|
||||||
|
export class DemoFeedAPI implements FeedAPI {
|
||||||
|
agent: BskyAgent
|
||||||
|
|
||||||
|
constructor({agent}: {agent: BskyAgent}) {
|
||||||
|
this.agent = agent
|
||||||
|
}
|
||||||
|
|
||||||
|
async peekLatest(): Promise<AppBskyFeedDefs.FeedViewPost> {
|
||||||
|
return DEMO_FEED.feed[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
async fetch(): Promise<FeedAPIResponse> {
|
||||||
|
return DEMO_FEED
|
||||||
|
}
|
||||||
|
}
|
||||||
+202
@@ -0,0 +1,202 @@
|
|||||||
|
import {type AppBskyFeedGetFeed} from '@atproto/api'
|
||||||
|
import {subDays, subMinutes} from 'date-fns'
|
||||||
|
|
||||||
|
const DID = `did:plc:z72i7hdynmk6r22z27h6tvur`
|
||||||
|
const NOW = new Date()
|
||||||
|
const POST_1_DATE = subMinutes(NOW, 2).toISOString()
|
||||||
|
const POST_2_DATE = subMinutes(NOW, 4).toISOString()
|
||||||
|
const POST_3_DATE = subMinutes(NOW, 5).toISOString()
|
||||||
|
|
||||||
|
export const DEMO_FEED = {
|
||||||
|
feed: [
|
||||||
|
{
|
||||||
|
post: {
|
||||||
|
uri: 'at://did:plc:pvooorihapc2lf2pijehgrdf/app.bsky.feed.post/3lniysofyll2d',
|
||||||
|
cid: 'bafyreihwh3wxxme732ylbylhhdyz7ex6t4jtu6s3gjxxvnnh4feddhg3ku',
|
||||||
|
author: {
|
||||||
|
did: 'did:plc:pvooorihapc2lf2pijehgrdf',
|
||||||
|
handle: 'forkedriverband.bsky.social',
|
||||||
|
displayName: 'Forked River Band',
|
||||||
|
avatar: 'https://bsky.social/about/adi/post_1_avi.jpg',
|
||||||
|
viewer: {
|
||||||
|
muted: false,
|
||||||
|
blockedBy: false,
|
||||||
|
following: `at://${DID}/app.bsky.graph.follow/post1`,
|
||||||
|
},
|
||||||
|
labels: [],
|
||||||
|
createdAt: POST_1_DATE,
|
||||||
|
verification: {
|
||||||
|
verifications: [
|
||||||
|
{
|
||||||
|
issuer: DID,
|
||||||
|
uri: `at://${DID}/app.bsky.graph.verification/post1`,
|
||||||
|
isValid: true,
|
||||||
|
createdAt: subDays(NOW, 11).toISOString(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
verifiedStatus: 'valid',
|
||||||
|
trustedVerifierStatus: 'none',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
record: {
|
||||||
|
$type: 'app.bsky.feed.post',
|
||||||
|
createdAt: POST_1_DATE,
|
||||||
|
// embed: {
|
||||||
|
// $type: 'app.bsky.embed.images',
|
||||||
|
// images: [
|
||||||
|
// {
|
||||||
|
// alt: 'Fake flier for Sebastapol Bluegrass Fest',
|
||||||
|
// aspectRatio: {
|
||||||
|
// height: 1350,
|
||||||
|
// width: 900,
|
||||||
|
// },
|
||||||
|
// image: {
|
||||||
|
// $type: 'blob',
|
||||||
|
// ref: {
|
||||||
|
// $link:
|
||||||
|
// 'bafkreig7gnirmz5guhhjutf3mqbjjzxzi3w4wvs5qy2gnxma5g3brbaidi',
|
||||||
|
// },
|
||||||
|
// mimeType: 'image/jpeg',
|
||||||
|
// size: 562871,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
|
langs: ['en'],
|
||||||
|
text: 'Sonoma County folks: Come tip your hats our way and see us play new and old bluegrass tunes at Sebastopol Solstice Fest on June 20th.',
|
||||||
|
},
|
||||||
|
embed: {
|
||||||
|
$type: 'app.bsky.embed.images#view',
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
thumb: 'https://bsky.social/about/adi/post_1_image.jpg',
|
||||||
|
fullsize: 'https://bsky.social/about/adi/post_1_image.jpg',
|
||||||
|
alt: 'Fake flier for Sebastapol Bluegrass Fest',
|
||||||
|
aspectRatio: {
|
||||||
|
height: 1350,
|
||||||
|
width: 900,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
replyCount: 1,
|
||||||
|
repostCount: 4,
|
||||||
|
likeCount: 18,
|
||||||
|
quoteCount: 0,
|
||||||
|
indexedAt: POST_1_DATE,
|
||||||
|
viewer: {
|
||||||
|
threadMuted: false,
|
||||||
|
embeddingDisabled: false,
|
||||||
|
},
|
||||||
|
labels: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
post: {
|
||||||
|
uri: 'at://did:plc:fhhqii56ppgyh5qcm2b3mokf/app.bsky.feed.post/3lnizc7fug52c',
|
||||||
|
cid: 'bafyreienuabsr55rycirdf4ewue5tjcseg5lzqompcsh2brqzag6hvxllm',
|
||||||
|
author: {
|
||||||
|
did: 'did:plc:fhhqii56ppgyh5qcm2b3mokf',
|
||||||
|
handle: 'dinh-designs.bsky.social',
|
||||||
|
displayName: 'Rich Dinh Designs',
|
||||||
|
avatar: 'https://bsky.social/about/adi/post_2_avi.jpg',
|
||||||
|
viewer: {
|
||||||
|
muted: false,
|
||||||
|
blockedBy: false,
|
||||||
|
following: `at://${DID}/app.bsky.graph.follow/post2`,
|
||||||
|
},
|
||||||
|
labels: [],
|
||||||
|
createdAt: POST_2_DATE,
|
||||||
|
},
|
||||||
|
record: {
|
||||||
|
$type: 'app.bsky.feed.post',
|
||||||
|
createdAt: POST_2_DATE,
|
||||||
|
// embed: {
|
||||||
|
// $type: 'app.bsky.embed.images',
|
||||||
|
// images: [
|
||||||
|
// {
|
||||||
|
// alt: 'Placeholder image of interior design',
|
||||||
|
// aspectRatio: {
|
||||||
|
// height: 872,
|
||||||
|
// width: 598,
|
||||||
|
// },
|
||||||
|
// image: {
|
||||||
|
// $type: 'blob',
|
||||||
|
// ref: {
|
||||||
|
// $link:
|
||||||
|
// 'bafkreidcjc6bjb4jjjejruin5cldhj5zovsuu4tydulenyprneziq5rfeu',
|
||||||
|
// },
|
||||||
|
// mimeType: 'image/jpeg',
|
||||||
|
// size: 296003,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
|
langs: ['en'],
|
||||||
|
text: 'Details from our install at the Lucas residence in Joshua Tree. We populated the space with rich, earthy tones and locally-sourced materials to suit the landscape.',
|
||||||
|
},
|
||||||
|
embed: {
|
||||||
|
$type: 'app.bsky.embed.images#view',
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
thumb: 'https://bsky.social/about/adi/post_2_image.jpg',
|
||||||
|
fullsize: 'https://bsky.social/about/adi/post_2_image.jpg',
|
||||||
|
alt: 'Placeholder image of interior design',
|
||||||
|
aspectRatio: {
|
||||||
|
height: 872,
|
||||||
|
width: 598,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
replyCount: 3,
|
||||||
|
repostCount: 1,
|
||||||
|
likeCount: 4,
|
||||||
|
quoteCount: 0,
|
||||||
|
indexedAt: POST_2_DATE,
|
||||||
|
viewer: {
|
||||||
|
threadMuted: false,
|
||||||
|
embeddingDisabled: false,
|
||||||
|
},
|
||||||
|
labels: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
post: {
|
||||||
|
uri: 'at://did:plc:h7fwnfejmmifveeea5eyxgkc/app.bsky.feed.post/3lnizna3g4f2t',
|
||||||
|
cid: 'bafyreiepn7obmlshliori4j34texpaukrqkyyu7cq6nmpzk4lkis7nqeae',
|
||||||
|
author: {
|
||||||
|
did: 'did:plc:h7fwnfejmmifveeea5eyxgkc',
|
||||||
|
handle: 'rodyalbuerne.bsky.social',
|
||||||
|
displayName: 'Rody Albuerne',
|
||||||
|
avatar: 'https://bsky.social/about/adi/post_3_avi.jpg',
|
||||||
|
viewer: {
|
||||||
|
muted: false,
|
||||||
|
blockedBy: false,
|
||||||
|
following: `at://${DID}/app.bsky.graph.follow/post3`,
|
||||||
|
},
|
||||||
|
labels: [],
|
||||||
|
createdAt: POST_3_DATE,
|
||||||
|
},
|
||||||
|
record: {
|
||||||
|
$type: 'app.bsky.feed.post',
|
||||||
|
createdAt: POST_3_DATE,
|
||||||
|
langs: ['en'],
|
||||||
|
text: 'Tinkering with the basics of traditional wooden joinery in my shop lately. Starting small with this ox, made using simple mortise and tenon joints.',
|
||||||
|
},
|
||||||
|
replyCount: 11,
|
||||||
|
repostCount: 97,
|
||||||
|
likeCount: 399,
|
||||||
|
quoteCount: 0,
|
||||||
|
indexedAt: POST_3_DATE,
|
||||||
|
viewer: {
|
||||||
|
threadMuted: false,
|
||||||
|
embeddingDisabled: false,
|
||||||
|
},
|
||||||
|
labels: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
} satisfies AppBskyFeedGetFeed.OutputSchema
|
||||||
|
|
||||||
|
export const BOTTOM_BAR_AVI = 'https://bsky.social/about/adi/user_avi.jpg'
|
||||||
@@ -74,8 +74,8 @@ msgstr ""
|
|||||||
msgid "{0, plural, one {# second} other {# seconds}}"
|
msgid "{0, plural, one {# second} other {# seconds}}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:209
|
#: src/view/shell/bottom-bar/BottomBar.tsx:213
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:241
|
#: src/view/shell/bottom-bar/BottomBar.tsx:245
|
||||||
#: src/view/shell/Drawer.tsx:470
|
#: src/view/shell/Drawer.tsx:470
|
||||||
msgid "{0, plural, one {# unread item} other {# unread items}}"
|
msgid "{0, plural, one {# unread item} other {# unread items}}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -446,7 +446,7 @@ msgid "A new form of verification"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Navigation.tsx:401
|
#: src/Navigation.tsx:401
|
||||||
#: src/screens/Settings/AboutSettings.tsx:72
|
#: src/screens/Settings/AboutSettings.tsx:75
|
||||||
#: src/screens/Settings/Settings.tsx:224
|
#: src/screens/Settings/Settings.tsx:224
|
||||||
#: src/screens/Settings/Settings.tsx:227
|
#: src/screens/Settings/Settings.tsx:227
|
||||||
msgid "About"
|
msgid "About"
|
||||||
@@ -621,7 +621,7 @@ msgstr ""
|
|||||||
msgid "Add muted words and tags"
|
msgid "Add muted words and tags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1306
|
#: src/view/com/composer/Composer.tsx:1308
|
||||||
msgid "Add new post"
|
msgid "Add new post"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -822,7 +822,7 @@ msgstr ""
|
|||||||
msgid "An error occurred while fetching the feed."
|
msgid "An error occurred while fetching the feed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:336
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:337
|
||||||
msgid "An error occurred while generating your starter pack. Want to try again?"
|
msgid "An error occurred while generating your starter pack. Want to try again?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1119,7 +1119,7 @@ msgstr ""
|
|||||||
msgid "Before creating a post, you must first verify your email."
|
msgid "Before creating a post, you must first verify your email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:343
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:344
|
||||||
msgid "Before creating a starter pack, you must first verify your email."
|
msgid "Before creating a starter pack, you must first verify your email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1262,7 +1262,7 @@ msgstr ""
|
|||||||
msgid "Bluesky Social Terms of Service"
|
msgid "Bluesky Social Terms of Service"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:303
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:304
|
||||||
msgid "Bluesky will choose a set of recommended accounts from people in your network."
|
msgid "Bluesky will choose a set of recommended accounts from people in your network."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1519,7 +1519,7 @@ msgid "Changes hosting provider"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Navigation.tsx:426
|
#: src/Navigation.tsx:426
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:205
|
#: src/view/shell/bottom-bar/BottomBar.tsx:209
|
||||||
#: src/view/shell/desktop/LeftNav.tsx:535
|
#: src/view/shell/desktop/LeftNav.tsx:535
|
||||||
#: src/view/shell/Drawer.tsx:438
|
#: src/view/shell/Drawer.tsx:438
|
||||||
msgid "Chat"
|
msgid "Chat"
|
||||||
@@ -1587,7 +1587,7 @@ msgstr ""
|
|||||||
msgid "Choose Feeds"
|
msgid "Choose Feeds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:311
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:312
|
||||||
msgid "Choose for me"
|
msgid "Choose for me"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1627,8 +1627,8 @@ msgstr ""
|
|||||||
msgid "Clear all storage data (restart after this)"
|
msgid "Clear all storage data (restart after this)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:113
|
#: src/screens/Settings/AboutSettings.tsx:116
|
||||||
#: src/screens/Settings/AboutSettings.tsx:117
|
#: src/screens/Settings/AboutSettings.tsx:120
|
||||||
msgid "Clear image cache"
|
msgid "Clear image cache"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1807,7 +1807,7 @@ msgstr ""
|
|||||||
msgid "Compose reply"
|
msgid "Compose reply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1688
|
#: src/view/com/composer/Composer.tsx:1690
|
||||||
msgid "Compressing video..."
|
msgid "Compressing video..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1958,7 +1958,7 @@ msgstr ""
|
|||||||
msgid "Copied"
|
msgid "Copied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:148
|
#: src/screens/Settings/AboutSettings.tsx:151
|
||||||
msgid "Copied build version to clipboard"
|
msgid "Copied build version to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1976,7 +1976,7 @@ msgstr ""
|
|||||||
msgid "Copied!"
|
msgid "Copied!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:124
|
#: src/screens/Settings/AboutSettings.tsx:127
|
||||||
msgid "Copies build version to clipboard"
|
msgid "Copies build version to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2079,7 +2079,7 @@ msgstr ""
|
|||||||
msgid "Could not process your video"
|
msgid "Could not process your video"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:293
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:294
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2087,20 +2087,20 @@ msgstr ""
|
|||||||
msgid "Create a QR code for a starter pack"
|
msgid "Create a QR code for a starter pack"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:178
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:179
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:274
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:275
|
||||||
#: src/Navigation.tsx:461
|
#: src/Navigation.tsx:461
|
||||||
msgid "Create a starter pack"
|
msgid "Create a starter pack"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:255
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:256
|
||||||
msgid "Create a starter pack for me"
|
msgid "Create a starter pack for me"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/auth/SplashScreen.tsx:55
|
#: src/view/com/auth/SplashScreen.tsx:55
|
||||||
#: src/view/com/auth/SplashScreen.web.tsx:117
|
#: src/view/com/auth/SplashScreen.web.tsx:117
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:315
|
#: src/view/shell/bottom-bar/BottomBar.tsx:319
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:320
|
#: src/view/shell/bottom-bar/BottomBar.tsx:324
|
||||||
#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199
|
#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199
|
||||||
#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204
|
#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204
|
||||||
#: src/view/shell/NavSignupCard.tsx:47
|
#: src/view/shell/NavSignupCard.tsx:47
|
||||||
@@ -2126,7 +2126,7 @@ msgstr ""
|
|||||||
msgid "Create an avatar instead"
|
msgid "Create an avatar instead"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:185
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:186
|
||||||
msgid "Create another"
|
msgid "Create another"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2350,12 +2350,12 @@ msgstr ""
|
|||||||
msgid "Detach quote post?"
|
msgid "Detach quote post?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:137
|
#: src/screens/Settings/AboutSettings.tsx:140
|
||||||
msgctxt "toast"
|
msgctxt "toast"
|
||||||
msgid "Developer mode disabled"
|
msgid "Developer mode disabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:131
|
#: src/screens/Settings/AboutSettings.tsx:134
|
||||||
msgctxt "toast"
|
msgctxt "toast"
|
||||||
msgid "Developer mode enabled"
|
msgid "Developer mode enabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -2435,7 +2435,7 @@ msgstr ""
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1612
|
#: src/view/com/composer/Composer.tsx:1614
|
||||||
msgid "Dismiss error"
|
msgid "Dismiss error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2886,7 +2886,7 @@ msgstr ""
|
|||||||
msgid "Entertainment"
|
msgid "Entertainment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1697
|
#: src/view/com/composer/Composer.tsx:1699
|
||||||
#: src/view/com/util/error/ErrorScreen.tsx:42
|
#: src/view/com/util/error/ErrorScreen.tsx:42
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -3494,7 +3494,7 @@ msgstr ""
|
|||||||
msgid "Gallery"
|
msgid "Gallery"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:300
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:301
|
||||||
msgid "Generate a starter pack"
|
msgid "Generate a starter pack"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3780,7 +3780,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/Navigation.tsx:645
|
#: src/Navigation.tsx:645
|
||||||
#: src/Navigation.tsx:665
|
#: src/Navigation.tsx:665
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:162
|
#: src/view/shell/bottom-bar/BottomBar.tsx:166
|
||||||
#: src/view/shell/desktop/LeftNav.tsx:599
|
#: src/view/shell/desktop/LeftNav.tsx:599
|
||||||
#: src/view/shell/Drawer.tsx:412
|
#: src/view/shell/Drawer.tsx:412
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
@@ -3871,12 +3871,12 @@ msgstr ""
|
|||||||
msgid "Image"
|
msgid "Image"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:61
|
#: src/screens/Settings/AboutSettings.tsx:64
|
||||||
msgid "Image cache cleared"
|
msgid "Image cache cleared"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Android-only toast message which includes amount of space freed using localized number formatting
|
#. Android-only toast message which includes amount of space freed using localized number formatting
|
||||||
#: src/screens/Settings/AboutSettings.tsx:47
|
#: src/screens/Settings/AboutSettings.tsx:50
|
||||||
msgid "Image cache cleared, freed {0}"
|
msgid "Image cache cleared, freed {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3997,7 +3997,7 @@ msgstr ""
|
|||||||
msgid "It's just you right now! Add more people to your starter pack by searching above."
|
msgid "It's just you right now! Add more people to your starter pack by searching above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1631
|
#: src/view/com/composer/Composer.tsx:1633
|
||||||
msgid "Job ID: {0}"
|
msgid "Job ID: {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4158,7 +4158,7 @@ msgstr ""
|
|||||||
msgid "left to go."
|
msgid "left to go."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:316
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:317
|
||||||
msgid "Let me choose"
|
msgid "Let me choose"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4374,7 +4374,7 @@ msgstr ""
|
|||||||
msgid "Looks like you're missing a following feed. <0>Click here to add one.</0>"
|
msgid "Looks like you're missing a following feed. <0>Click here to add one.</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:269
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:270
|
||||||
msgid "Make one for me"
|
msgid "Make one for me"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5039,7 +5039,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/Navigation.tsx:655
|
#: src/Navigation.tsx:655
|
||||||
#: src/view/screens/Notifications.tsx:128
|
#: src/view/screens/Notifications.tsx:128
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:236
|
#: src/view/shell/bottom-bar/BottomBar.tsx:240
|
||||||
#: src/view/shell/desktop/LeftNav.tsx:636
|
#: src/view/shell/desktop/LeftNav.tsx:636
|
||||||
#: src/view/shell/Drawer.tsx:465
|
#: src/view/shell/Drawer.tsx:465
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
@@ -5141,8 +5141,8 @@ msgid "Oops, something went wrong!"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/Lists.tsx:173
|
#: src/components/Lists.tsx:173
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:325
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:326
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:334
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:335
|
||||||
#: src/screens/Settings/AppPasswords.tsx:59
|
#: src/screens/Settings/AppPasswords.tsx:59
|
||||||
#: src/screens/Settings/components/ChangeHandleDialog.tsx:106
|
#: src/screens/Settings/components/ChangeHandleDialog.tsx:106
|
||||||
#: src/screens/Settings/NotificationSettings.tsx:54
|
#: src/screens/Settings/NotificationSettings.tsx:54
|
||||||
@@ -5172,7 +5172,7 @@ msgid "Open drawer menu"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Messages/components/MessageInput.web.tsx:181
|
#: src/screens/Messages/components/MessageInput.web.tsx:181
|
||||||
#: src/view/com/composer/Composer.tsx:1292
|
#: src/view/com/composer/Composer.tsx:1293
|
||||||
msgid "Open emoji picker"
|
msgid "Open emoji picker"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5185,7 +5185,7 @@ msgstr ""
|
|||||||
msgid "Open feed options menu"
|
msgid "Open feed options menu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/dms/EmojiPopup.android.tsx:28
|
#: src/components/dms/EmojiPopup.android.tsx:27
|
||||||
msgid "Open full emoji list"
|
msgid "Open full emoji list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5266,7 +5266,7 @@ msgstr ""
|
|||||||
msgid "Opens device photo gallery"
|
msgid "Opens device photo gallery"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1293
|
#: src/view/com/composer/Composer.tsx:1294
|
||||||
msgid "Opens emoji picker"
|
msgid "Opens emoji picker"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5774,15 +5774,15 @@ msgid "Privacy and Security"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Navigation.tsx:301
|
#: src/Navigation.tsx:301
|
||||||
#: src/screens/Settings/AboutSettings.tsx:89
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:92
|
#: src/screens/Settings/AboutSettings.tsx:92
|
||||||
|
#: src/screens/Settings/AboutSettings.tsx:95
|
||||||
#: src/view/screens/PrivacyPolicy.tsx:31
|
#: src/view/screens/PrivacyPolicy.tsx:31
|
||||||
#: src/view/shell/Drawer.tsx:650
|
#: src/view/shell/Drawer.tsx:650
|
||||||
#: src/view/shell/Drawer.tsx:651
|
#: src/view/shell/Drawer.tsx:651
|
||||||
msgid "Privacy Policy"
|
msgid "Privacy Policy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1694
|
#: src/view/com/composer/Composer.tsx:1696
|
||||||
msgid "Processing video..."
|
msgid "Processing video..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5796,7 +5796,7 @@ msgstr ""
|
|||||||
msgid "profile"
|
msgid "profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:286
|
#: src/view/shell/bottom-bar/BottomBar.tsx:290
|
||||||
#: src/view/shell/desktop/LeftNav.tsx:691
|
#: src/view/shell/desktop/LeftNav.tsx:691
|
||||||
#: src/view/shell/Drawer.tsx:74
|
#: src/view/shell/Drawer.tsx:74
|
||||||
#: src/view/shell/Drawer.tsx:542
|
#: src/view/shell/Drawer.tsx:542
|
||||||
@@ -6412,7 +6412,7 @@ msgstr ""
|
|||||||
#: src/components/Error.tsx:65
|
#: src/components/Error.tsx:65
|
||||||
#: src/components/Lists.tsx:110
|
#: src/components/Lists.tsx:110
|
||||||
#: src/components/moderation/ReportDialog/index.tsx:221
|
#: src/components/moderation/ReportDialog/index.tsx:221
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:339
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:340
|
||||||
#: src/screens/Login/LoginForm.tsx:323
|
#: src/screens/Login/LoginForm.tsx:323
|
||||||
#: src/screens/Login/LoginForm.tsx:330
|
#: src/screens/Login/LoginForm.tsx:330
|
||||||
#: src/screens/Messages/ChatList.tsx:253
|
#: src/screens/Messages/ChatList.tsx:253
|
||||||
@@ -6473,7 +6473,7 @@ msgstr ""
|
|||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/lightbox/ImageViewing/index.tsx:608
|
#: src/view/com/lightbox/ImageViewing/index.tsx:610
|
||||||
#: src/view/com/modals/CreateOrEditList.tsx:325
|
#: src/view/com/modals/CreateOrEditList.tsx:325
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
@@ -6556,7 +6556,7 @@ msgstr ""
|
|||||||
#: src/components/forms/SearchInput.tsx:36
|
#: src/components/forms/SearchInput.tsx:36
|
||||||
#: src/screens/Search/Shell.tsx:307
|
#: src/screens/Search/Shell.tsx:307
|
||||||
#: src/screens/Search/Shell.tsx:464
|
#: src/screens/Search/Shell.tsx:464
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:182
|
#: src/view/shell/bottom-bar/BottomBar.tsx:186
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -6884,7 +6884,7 @@ msgstr ""
|
|||||||
msgid "Share"
|
msgid "Share"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/lightbox/ImageViewing/index.tsx:617
|
#: src/view/com/lightbox/ImageViewing/index.tsx:619
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Share"
|
msgid "Share"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -7073,8 +7073,8 @@ msgstr ""
|
|||||||
#: src/view/com/auth/SplashScreen.tsx:69
|
#: src/view/com/auth/SplashScreen.tsx:69
|
||||||
#: src/view/com/auth/SplashScreen.web.tsx:123
|
#: src/view/com/auth/SplashScreen.web.tsx:123
|
||||||
#: src/view/com/auth/SplashScreen.web.tsx:131
|
#: src/view/com/auth/SplashScreen.web.tsx:131
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:325
|
#: src/view/shell/bottom-bar/BottomBar.tsx:329
|
||||||
#: src/view/shell/bottom-bar/BottomBar.tsx:330
|
#: src/view/shell/bottom-bar/BottomBar.tsx:334
|
||||||
#: src/view/shell/bottom-bar/BottomBarWeb.tsx:209
|
#: src/view/shell/bottom-bar/BottomBarWeb.tsx:209
|
||||||
#: src/view/shell/bottom-bar/BottomBarWeb.tsx:214
|
#: src/view/shell/bottom-bar/BottomBarWeb.tsx:214
|
||||||
#: src/view/shell/NavSignupCard.tsx:57
|
#: src/view/shell/NavSignupCard.tsx:57
|
||||||
@@ -7217,7 +7217,7 @@ msgstr ""
|
|||||||
msgid "Something wrong? Let us know."
|
msgid "Something wrong? Let us know."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/App.native.tsx:122
|
#: src/App.native.tsx:121
|
||||||
#: src/App.web.tsx:98
|
#: src/App.web.tsx:98
|
||||||
msgid "Sorry! Your session expired. Please sign in again."
|
msgid "Sorry! Your session expired. Please sign in again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -7303,12 +7303,12 @@ msgstr ""
|
|||||||
msgid "Starter Packs"
|
msgid "Starter Packs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:247
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:248
|
||||||
msgid "Starter packs let you easily share your favorite feeds and people with your friends."
|
msgid "Starter packs let you easily share your favorite feeds and people with your friends."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:97
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:100
|
#: src/screens/Settings/AboutSettings.tsx:100
|
||||||
|
#: src/screens/Settings/AboutSettings.tsx:103
|
||||||
msgid "Status Page"
|
msgid "Status Page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -7430,8 +7430,8 @@ msgstr ""
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:104
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:107
|
#: src/screens/Settings/AboutSettings.tsx:107
|
||||||
|
#: src/screens/Settings/AboutSettings.tsx:110
|
||||||
#: src/screens/Settings/Settings.tsx:380
|
#: src/screens/Settings/Settings.tsx:380
|
||||||
msgid "System log"
|
msgid "System log"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -7485,8 +7485,8 @@ msgid "Terms"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Navigation.tsx:306
|
#: src/Navigation.tsx:306
|
||||||
#: src/screens/Settings/AboutSettings.tsx:81
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:84
|
#: src/screens/Settings/AboutSettings.tsx:84
|
||||||
|
#: src/screens/Settings/AboutSettings.tsx:87
|
||||||
#: src/view/screens/TermsOfService.tsx:31
|
#: src/view/screens/TermsOfService.tsx:31
|
||||||
#: src/view/shell/Drawer.tsx:643
|
#: src/view/shell/Drawer.tsx:643
|
||||||
#: src/view/shell/Drawer.tsx:645
|
#: src/view/shell/Drawer.tsx:645
|
||||||
@@ -8369,7 +8369,7 @@ msgstr ""
|
|||||||
msgid "Uploading link thumbnail..."
|
msgid "Uploading link thumbnail..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1691
|
#: src/view/com/composer/Composer.tsx:1693
|
||||||
msgid "Uploading video..."
|
msgid "Uploading video..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -8555,8 +8555,8 @@ msgstr ""
|
|||||||
msgid "Verify Your Email"
|
msgid "Verify Your Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/screens/Settings/AboutSettings.tsx:123
|
#: src/screens/Settings/AboutSettings.tsx:126
|
||||||
#: src/screens/Settings/AboutSettings.tsx:152
|
#: src/screens/Settings/AboutSettings.tsx:155
|
||||||
msgid "Version {appVersion}"
|
msgid "Version {appVersion}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -8599,7 +8599,7 @@ msgstr ""
|
|||||||
msgid "Video settings"
|
msgid "Video settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/composer/Composer.tsx:1701
|
#: src/view/com/composer/Composer.tsx:1703
|
||||||
msgid "Video uploaded"
|
msgid "Video uploaded"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -8655,7 +8655,7 @@ msgstr ""
|
|||||||
msgid "View details for reporting a copyright violation"
|
msgid "View details for reporting a copyright violation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/com/posts/ViewFullThread.tsx:56
|
#: src/view/com/posts/ViewFullThread.tsx:59
|
||||||
msgid "View full thread"
|
msgid "View full thread"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -9162,7 +9162,7 @@ msgstr ""
|
|||||||
msgid "You have temporarily reached the limit for video uploads. Please try again later."
|
msgid "You have temporarily reached the limit for video uploads. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:244
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:245
|
||||||
msgid "You haven't created a starter pack yet!"
|
msgid "You haven't created a starter pack yet!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -9199,7 +9199,7 @@ msgstr ""
|
|||||||
msgid "You must be 13 years of age or older to create an account."
|
msgid "You must be 13 years of age or older to create an account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/StarterPack/ProfileStarterPacks.tsx:327
|
#: src/components/StarterPack/ProfileStarterPacks.tsx:328
|
||||||
msgid "You must be following at least seven other people to generate a starter pack."
|
msgid "You must be following at least seven other people to generate a starter pack."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,10 @@ import {Statsig} from 'statsig-react-native-expo'
|
|||||||
import {appVersion, BUNDLE_DATE, bundleInfo} from '#/lib/app-info'
|
import {appVersion, BUNDLE_DATE, bundleInfo} from '#/lib/app-info'
|
||||||
import {STATUS_PAGE_URL} from '#/lib/constants'
|
import {STATUS_PAGE_URL} from '#/lib/constants'
|
||||||
import {type CommonNavigatorParams} from '#/lib/routes/types'
|
import {type CommonNavigatorParams} from '#/lib/routes/types'
|
||||||
import {isAndroid, isNative} from '#/platform/detection'
|
import {isAndroid, isIOS, isNative} from '#/platform/detection'
|
||||||
import * as Toast from '#/view/com/util/Toast'
|
import * as Toast from '#/view/com/util/Toast'
|
||||||
import * as SettingsList from '#/screens/Settings/components/SettingsList'
|
import * as SettingsList from '#/screens/Settings/components/SettingsList'
|
||||||
|
import {Atom_Stroke2_Corner0_Rounded as AtomIcon} from '#/components/icons/Atom'
|
||||||
import {BroomSparkle_Stroke2_Corner2_Rounded as BroomSparkleIcon} from '#/components/icons/BroomSparkle'
|
import {BroomSparkle_Stroke2_Corner2_Rounded as BroomSparkleIcon} from '#/components/icons/BroomSparkle'
|
||||||
import {CodeLines_Stroke2_Corner2_Rounded as CodeLinesIcon} from '#/components/icons/CodeLines'
|
import {CodeLines_Stroke2_Corner2_Rounded as CodeLinesIcon} from '#/components/icons/CodeLines'
|
||||||
import {Globe_Stroke2_Corner0_Rounded as GlobeIcon} from '#/components/icons/Globe'
|
import {Globe_Stroke2_Corner0_Rounded as GlobeIcon} from '#/components/icons/Globe'
|
||||||
@@ -22,6 +23,7 @@ import {Newspaper_Stroke2_Corner2_Rounded as NewspaperIcon} from '#/components/i
|
|||||||
import {Wrench_Stroke2_Corner2_Rounded as WrenchIcon} from '#/components/icons/Wrench'
|
import {Wrench_Stroke2_Corner2_Rounded as WrenchIcon} from '#/components/icons/Wrench'
|
||||||
import * as Layout from '#/components/Layout'
|
import * as Layout from '#/components/Layout'
|
||||||
import {Loader} from '#/components/Loader'
|
import {Loader} from '#/components/Loader'
|
||||||
|
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
||||||
import {useDevMode} from '#/storage/hooks/dev-mode'
|
import {useDevMode} from '#/storage/hooks/dev-mode'
|
||||||
import {OTAInfo} from './components/OTAInfo'
|
import {OTAInfo} from './components/OTAInfo'
|
||||||
|
|
||||||
@@ -29,6 +31,7 @@ type Props = NativeStackScreenProps<CommonNavigatorParams, 'AboutSettings'>
|
|||||||
export function AboutSettingsScreen({}: Props) {
|
export function AboutSettingsScreen({}: Props) {
|
||||||
const {_, i18n} = useLingui()
|
const {_, i18n} = useLingui()
|
||||||
const [devModeEnabled, setDevModeEnabled] = useDevMode()
|
const [devModeEnabled, setDevModeEnabled] = useDevMode()
|
||||||
|
const [demoModeEnabled, setDemoModeEnabled] = useDemoMode()
|
||||||
const stableID = useMemo(() => Statsig.getStableID(), [])
|
const stableID = useMemo(() => Statsig.getStableID(), [])
|
||||||
|
|
||||||
const {mutate: onClearImageCache, isPending: isClearingImageCache} =
|
const {mutate: onClearImageCache, isPending: isClearingImageCache} =
|
||||||
@@ -153,7 +156,31 @@ export function AboutSettingsScreen({}: Props) {
|
|||||||
</SettingsList.ItemText>
|
</SettingsList.ItemText>
|
||||||
<SettingsList.BadgeText>{bundleInfo}</SettingsList.BadgeText>
|
<SettingsList.BadgeText>{bundleInfo}</SettingsList.BadgeText>
|
||||||
</SettingsList.PressableItem>
|
</SettingsList.PressableItem>
|
||||||
{devModeEnabled && <OTAInfo />}
|
{devModeEnabled && (
|
||||||
|
<>
|
||||||
|
<OTAInfo />
|
||||||
|
{isIOS && (
|
||||||
|
<SettingsList.PressableItem
|
||||||
|
onPress={() => {
|
||||||
|
const newDemoModeEnabled = !demoModeEnabled
|
||||||
|
setDemoModeEnabled(newDemoModeEnabled)
|
||||||
|
Toast.show(
|
||||||
|
'Demo mode ' +
|
||||||
|
(newDemoModeEnabled ? 'enabled' : 'disabled'),
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
label={
|
||||||
|
demoModeEnabled ? 'Disable demo mode' : 'Enable demo mode'
|
||||||
|
}
|
||||||
|
disabled={isClearingImageCache}>
|
||||||
|
<SettingsList.ItemIcon icon={AtomIcon} />
|
||||||
|
<SettingsList.ItemText>
|
||||||
|
{demoModeEnabled ? 'Disable demo mode' : 'Enable demo mode'}
|
||||||
|
</SettingsList.ItemText>
|
||||||
|
</SettingsList.PressableItem>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</SettingsList.Container>
|
</SettingsList.Container>
|
||||||
</Layout.Content>
|
</Layout.Content>
|
||||||
</Layout.Screen>
|
</Layout.Screen>
|
||||||
|
|||||||
@@ -1,31 +1,32 @@
|
|||||||
import React, {useCallback, useEffect, useRef} from 'react'
|
import React, {useCallback, useEffect, useRef} from 'react'
|
||||||
import {AppState} from 'react-native'
|
import {AppState} from 'react-native'
|
||||||
import {
|
import {
|
||||||
AppBskyActorDefs,
|
type AppBskyActorDefs,
|
||||||
AppBskyFeedDefs,
|
AppBskyFeedDefs,
|
||||||
AppBskyFeedPost,
|
type AppBskyFeedPost,
|
||||||
AtUri,
|
AtUri,
|
||||||
BskyAgent,
|
type BskyAgent,
|
||||||
moderatePost,
|
moderatePost,
|
||||||
ModerationDecision,
|
type ModerationDecision,
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
import {
|
import {
|
||||||
InfiniteData,
|
type InfiniteData,
|
||||||
QueryClient,
|
type QueryClient,
|
||||||
QueryKey,
|
type QueryKey,
|
||||||
useInfiniteQuery,
|
useInfiniteQuery,
|
||||||
} from '@tanstack/react-query'
|
} from '@tanstack/react-query'
|
||||||
|
|
||||||
import {AuthorFeedAPI} from '#/lib/api/feed/author'
|
import {AuthorFeedAPI} from '#/lib/api/feed/author'
|
||||||
import {CustomFeedAPI} from '#/lib/api/feed/custom'
|
import {CustomFeedAPI} from '#/lib/api/feed/custom'
|
||||||
|
import {DemoFeedAPI} from '#/lib/api/feed/demo'
|
||||||
import {FollowingFeedAPI} from '#/lib/api/feed/following'
|
import {FollowingFeedAPI} from '#/lib/api/feed/following'
|
||||||
import {HomeFeedAPI} from '#/lib/api/feed/home'
|
import {HomeFeedAPI} from '#/lib/api/feed/home'
|
||||||
import {LikesFeedAPI} from '#/lib/api/feed/likes'
|
import {LikesFeedAPI} from '#/lib/api/feed/likes'
|
||||||
import {ListFeedAPI} from '#/lib/api/feed/list'
|
import {ListFeedAPI} from '#/lib/api/feed/list'
|
||||||
import {MergeFeedAPI} from '#/lib/api/feed/merge'
|
import {MergeFeedAPI} from '#/lib/api/feed/merge'
|
||||||
import {FeedAPI, ReasonFeedSource} from '#/lib/api/feed/types'
|
import {type FeedAPI, type ReasonFeedSource} from '#/lib/api/feed/types'
|
||||||
import {aggregateUserInterests} from '#/lib/api/feed/utils'
|
import {aggregateUserInterests} from '#/lib/api/feed/utils'
|
||||||
import {FeedTuner, FeedTunerFn} from '#/lib/api/feed-manip'
|
import {FeedTuner, type FeedTunerFn} from '#/lib/api/feed-manip'
|
||||||
import {DISCOVER_FEED_URI} from '#/lib/constants'
|
import {DISCOVER_FEED_URI} from '#/lib/constants'
|
||||||
import {BSKY_FEED_OWNER_DIDS} from '#/lib/constants'
|
import {BSKY_FEED_OWNER_DIDS} from '#/lib/constants'
|
||||||
import {logger} from '#/logger'
|
import {logger} from '#/logger'
|
||||||
@@ -59,6 +60,7 @@ export type FeedDescriptor =
|
|||||||
| `feedgen|${FeedUri}`
|
| `feedgen|${FeedUri}`
|
||||||
| `likes|${ActorDid}`
|
| `likes|${ActorDid}`
|
||||||
| `list|${ListUri}`
|
| `list|${ListUri}`
|
||||||
|
| 'demo'
|
||||||
export interface FeedParams {
|
export interface FeedParams {
|
||||||
mergeFeedEnabled?: boolean
|
mergeFeedEnabled?: boolean
|
||||||
mergeFeedSources?: string[]
|
mergeFeedSources?: string[]
|
||||||
@@ -483,6 +485,8 @@ function createApi({
|
|||||||
} else if (feedDesc.startsWith('list')) {
|
} else if (feedDesc.startsWith('list')) {
|
||||||
const [_, list] = feedDesc.split('|')
|
const [_, list] = feedDesc.split('|')
|
||||||
return new ListFeedAPI({agent, feedParams: {list}})
|
return new ListFeedAPI({agent, feedParams: {list}})
|
||||||
|
} else if (feedDesc === 'demo') {
|
||||||
|
return new DemoFeedAPI({agent})
|
||||||
} else {
|
} else {
|
||||||
// shouldnt happen
|
// shouldnt happen
|
||||||
return new FollowingFeedAPI({agent})
|
return new FollowingFeedAPI({agent})
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import {device, useStorage} from '#/storage'
|
||||||
|
|
||||||
|
export function useDemoMode() {
|
||||||
|
const [demoMode = false, setDemoMode] = useStorage(device, ['demoMode'])
|
||||||
|
|
||||||
|
return [demoMode, setDemoMode] as const
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ export type Device = {
|
|||||||
}
|
}
|
||||||
trendingBetaEnabled: boolean
|
trendingBetaEnabled: boolean
|
||||||
devMode: boolean
|
devMode: boolean
|
||||||
|
demoMode: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Account = {
|
export type Account = {
|
||||||
|
|||||||
@@ -8,28 +8,36 @@ import {useOTAUpdates} from '#/lib/hooks/useOTAUpdates'
|
|||||||
import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
||||||
import {useRequestNotificationsPermission} from '#/lib/notifications/notifications'
|
import {useRequestNotificationsPermission} from '#/lib/notifications/notifications'
|
||||||
import {
|
import {
|
||||||
HomeTabNavigatorParams,
|
type HomeTabNavigatorParams,
|
||||||
NativeStackScreenProps,
|
type NativeStackScreenProps,
|
||||||
} from '#/lib/routes/types'
|
} from '#/lib/routes/types'
|
||||||
import {logEvent} from '#/lib/statsig/statsig'
|
import {logEvent} from '#/lib/statsig/statsig'
|
||||||
import {isWeb} from '#/platform/detection'
|
import {isWeb} from '#/platform/detection'
|
||||||
import {emitSoftReset} from '#/state/events'
|
import {emitSoftReset} from '#/state/events'
|
||||||
import {SavedFeedSourceInfo, usePinnedFeedsInfos} from '#/state/queries/feed'
|
import {
|
||||||
import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed'
|
type SavedFeedSourceInfo,
|
||||||
|
usePinnedFeedsInfos,
|
||||||
|
} from '#/state/queries/feed'
|
||||||
|
import {type FeedDescriptor, type FeedParams} from '#/state/queries/post-feed'
|
||||||
import {usePreferencesQuery} from '#/state/queries/preferences'
|
import {usePreferencesQuery} from '#/state/queries/preferences'
|
||||||
import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
|
import {type UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
|
||||||
import {useSession} from '#/state/session'
|
import {useSession} from '#/state/session'
|
||||||
import {useSetMinimalShellMode} from '#/state/shell'
|
import {useSetMinimalShellMode} from '#/state/shell'
|
||||||
import {useLoggedOutViewControls} from '#/state/shell/logged-out'
|
import {useLoggedOutViewControls} from '#/state/shell/logged-out'
|
||||||
import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed'
|
import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed'
|
||||||
import {FeedPage} from '#/view/com/feeds/FeedPage'
|
import {FeedPage} from '#/view/com/feeds/FeedPage'
|
||||||
import {HomeHeader} from '#/view/com/home/HomeHeader'
|
import {HomeHeader} from '#/view/com/home/HomeHeader'
|
||||||
import {Pager, PagerRef, RenderTabBarFnProps} from '#/view/com/pager/Pager'
|
import {
|
||||||
|
Pager,
|
||||||
|
type PagerRef,
|
||||||
|
type RenderTabBarFnProps,
|
||||||
|
} from '#/view/com/pager/Pager'
|
||||||
import {CustomFeedEmptyState} from '#/view/com/posts/CustomFeedEmptyState'
|
import {CustomFeedEmptyState} from '#/view/com/posts/CustomFeedEmptyState'
|
||||||
import {FollowingEmptyState} from '#/view/com/posts/FollowingEmptyState'
|
import {FollowingEmptyState} from '#/view/com/posts/FollowingEmptyState'
|
||||||
import {FollowingEndOfFeed} from '#/view/com/posts/FollowingEndOfFeed'
|
import {FollowingEndOfFeed} from '#/view/com/posts/FollowingEndOfFeed'
|
||||||
import {NoFeedsPinned} from '#/screens/Home/NoFeedsPinned'
|
import {NoFeedsPinned} from '#/screens/Home/NoFeedsPinned'
|
||||||
import * as Layout from '#/components/Layout'
|
import * as Layout from '#/components/Layout'
|
||||||
|
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
||||||
|
|
||||||
type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home' | 'Start'>
|
type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home' | 'Start'>
|
||||||
export function HomeScreen(props: Props) {
|
export function HomeScreen(props: Props) {
|
||||||
@@ -184,8 +192,22 @@ function HomeScreenReady({
|
|||||||
[setMinimalShellMode],
|
[setMinimalShellMode],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const [demoMode] = useDemoMode()
|
||||||
|
|
||||||
const renderTabBar = React.useCallback(
|
const renderTabBar = React.useCallback(
|
||||||
(props: RenderTabBarFnProps) => {
|
(props: RenderTabBarFnProps) => {
|
||||||
|
if (demoMode) {
|
||||||
|
return (
|
||||||
|
<HomeHeader
|
||||||
|
key="FEEDS_TAB_BAR"
|
||||||
|
{...props}
|
||||||
|
testID="homeScreenFeedTabs"
|
||||||
|
onPressSelected={onPressSelected}
|
||||||
|
// @ts-ignore
|
||||||
|
feeds={[{displayName: 'Following'}, {displayName: 'Discover'}]}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<HomeHeader
|
<HomeHeader
|
||||||
key="FEEDS_TAB_BAR"
|
key="FEEDS_TAB_BAR"
|
||||||
@@ -196,7 +218,7 @@ function HomeScreenReady({
|
|||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
[onPressSelected, pinnedFeedInfos],
|
[onPressSelected, pinnedFeedInfos, demoMode],
|
||||||
)
|
)
|
||||||
|
|
||||||
const renderFollowingEmptyState = React.useCallback(() => {
|
const renderFollowingEmptyState = React.useCallback(() => {
|
||||||
@@ -218,6 +240,35 @@ function HomeScreenReady({
|
|||||||
}
|
}
|
||||||
}, [preferences])
|
}, [preferences])
|
||||||
|
|
||||||
|
if (demoMode) {
|
||||||
|
return (
|
||||||
|
<Pager
|
||||||
|
ref={pagerRef}
|
||||||
|
testID="homeScreen"
|
||||||
|
onPageSelected={onPageSelected}
|
||||||
|
onPageScrollStateChanged={onPageScrollStateChanged}
|
||||||
|
renderTabBar={renderTabBar}
|
||||||
|
initialPage={selectedIndex}>
|
||||||
|
<FeedPage
|
||||||
|
testID="demoFeedPage"
|
||||||
|
isPageFocused
|
||||||
|
isPageAdjacent={false}
|
||||||
|
feed="demo"
|
||||||
|
renderEmptyState={renderCustomFeedEmptyState}
|
||||||
|
feedInfo={pinnedFeedInfos[0]}
|
||||||
|
/>
|
||||||
|
<FeedPage
|
||||||
|
testID="customFeedPage"
|
||||||
|
isPageFocused
|
||||||
|
isPageAdjacent={false}
|
||||||
|
feed={`feedgen|${PROD_DEFAULT_FEED('whats-hot')}`}
|
||||||
|
renderEmptyState={renderCustomFeedEmptyState}
|
||||||
|
feedInfo={pinnedFeedInfos[0]}
|
||||||
|
/>
|
||||||
|
</Pager>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return hasSession ? (
|
return hasSession ? (
|
||||||
<Pager
|
<Pager
|
||||||
key={allFeeds.join(',')}
|
key={allFeeds.join(',')}
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
import React, {ComponentProps} from 'react'
|
import React, {type ComponentProps} from 'react'
|
||||||
import {GestureResponderEvent, View} from 'react-native'
|
import {type GestureResponderEvent, View} from 'react-native'
|
||||||
import Animated from 'react-native-reanimated'
|
import Animated from 'react-native-reanimated'
|
||||||
import {useSafeAreaInsets} from 'react-native-safe-area-context'
|
import {useSafeAreaInsets} from 'react-native-safe-area-context'
|
||||||
import {msg, plural, Trans} from '@lingui/macro'
|
import {msg, plural, Trans} from '@lingui/macro'
|
||||||
import {useLingui} from '@lingui/react'
|
import {useLingui} from '@lingui/react'
|
||||||
import {BottomTabBarProps} from '@react-navigation/bottom-tabs'
|
import {type BottomTabBarProps} from '@react-navigation/bottom-tabs'
|
||||||
import {StackActions} from '@react-navigation/native'
|
import {StackActions} from '@react-navigation/native'
|
||||||
|
|
||||||
import {PressableScale} from '#/lib/custom-animations/PressableScale'
|
import {PressableScale} from '#/lib/custom-animations/PressableScale'
|
||||||
|
import {BOTTOM_BAR_AVI} from '#/lib/demo'
|
||||||
import {useHaptics} from '#/lib/haptics'
|
import {useHaptics} from '#/lib/haptics'
|
||||||
import {useDedupe} from '#/lib/hooks/useDedupe'
|
import {useDedupe} from '#/lib/hooks/useDedupe'
|
||||||
import {useMinimalShellFooterTransform} from '#/lib/hooks/useMinimalShellTransform'
|
import {useMinimalShellFooterTransform} from '#/lib/hooks/useMinimalShellTransform'
|
||||||
@@ -47,6 +48,7 @@ import {
|
|||||||
Message_Stroke2_Corner0_Rounded as Message,
|
Message_Stroke2_Corner0_Rounded as Message,
|
||||||
Message_Stroke2_Corner0_Rounded_Filled as MessageFilled,
|
Message_Stroke2_Corner0_Rounded_Filled as MessageFilled,
|
||||||
} from '#/components/icons/Message'
|
} from '#/components/icons/Message'
|
||||||
|
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
||||||
import {styles} from './BottomBarStyles'
|
import {styles} from './BottomBarStyles'
|
||||||
|
|
||||||
type TabOptions =
|
type TabOptions =
|
||||||
@@ -124,6 +126,8 @@ export function BottomBar({navigation}: BottomTabBarProps) {
|
|||||||
accountSwitchControl.open()
|
accountSwitchControl.open()
|
||||||
}, [accountSwitchControl, playHaptic])
|
}, [accountSwitchControl, playHaptic])
|
||||||
|
|
||||||
|
const [demoMode] = useDemoMode()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<SwitchAccountDialog control={accountSwitchControl} />
|
<SwitchAccountDialog control={accountSwitchControl} />
|
||||||
@@ -259,7 +263,7 @@ export function BottomBar({navigation}: BottomTabBarProps) {
|
|||||||
{borderColor: pal.text.color},
|
{borderColor: pal.text.color},
|
||||||
]}>
|
]}>
|
||||||
<UserAvatar
|
<UserAvatar
|
||||||
avatar={profile?.avatar}
|
avatar={demoMode ? BOTTOM_BAR_AVI : profile?.avatar}
|
||||||
size={iconWidth - 3}
|
size={iconWidth - 3}
|
||||||
// See https://github.com/bluesky-social/social-app/pull/1801:
|
// See https://github.com/bluesky-social/social-app/pull/1801:
|
||||||
usePlainRNImage={true}
|
usePlainRNImage={true}
|
||||||
@@ -270,7 +274,7 @@ export function BottomBar({navigation}: BottomTabBarProps) {
|
|||||||
<View
|
<View
|
||||||
style={[styles.ctrlIcon, pal.text, styles.profileIcon]}>
|
style={[styles.ctrlIcon, pal.text, styles.profileIcon]}>
|
||||||
<UserAvatar
|
<UserAvatar
|
||||||
avatar={profile?.avatar}
|
avatar={demoMode ? BOTTOM_BAR_AVI : profile?.avatar}
|
||||||
size={iconWidth - 3}
|
size={iconWidth - 3}
|
||||||
// See https://github.com/bluesky-social/social-app/pull/1801:
|
// See https://github.com/bluesky-social/social-app/pull/1801:
|
||||||
usePlainRNImage={true}
|
usePlainRNImage={true}
|
||||||
|
|||||||
@@ -3859,7 +3859,7 @@
|
|||||||
xcode "^3.0.1"
|
xcode "^3.0.1"
|
||||||
xml2js "0.6.0"
|
xml2js "0.6.0"
|
||||||
|
|
||||||
"@expo/config-plugins@~10.0.0", "@expo/config-plugins@~10.0.1", "@expo/config-plugins@~10.0.2":
|
"@expo/config-plugins@~10.0.1", "@expo/config-plugins@~10.0.2":
|
||||||
version "10.0.2"
|
version "10.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-10.0.2.tgz#040867991e9c8c527b4f5c13a47bcf040a7479fe"
|
resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-10.0.2.tgz#040867991e9c8c527b4f5c13a47bcf040a7479fe"
|
||||||
integrity sha512-TzUn3pPdpwCS0yYaSlZOClgDmCX8N4I2lfgitX5oStqmvpPtB+vqtdyqsVM02fQ2tlJIAqwBW+NHaHqqy8Jv7g==
|
integrity sha512-TzUn3pPdpwCS0yYaSlZOClgDmCX8N4I2lfgitX5oStqmvpPtB+vqtdyqsVM02fQ2tlJIAqwBW+NHaHqqy8Jv7g==
|
||||||
@@ -5126,10 +5126,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@miblanchard/react-native-slider/-/react-native-slider-2.6.0.tgz#9f78c805d637ffaff0e3e7429932d2995a67edc9"
|
resolved "https://registry.yarnpkg.com/@miblanchard/react-native-slider/-/react-native-slider-2.6.0.tgz#9f78c805d637ffaff0e3e7429932d2995a67edc9"
|
||||||
integrity sha512-o7hk/f/8vkqh6QNR5L52m+ws846fQeD/qNCC9CCSRdBqjq66KiCgbxzlhRzKM/gbtxcvMYMIEEJ1yes5cr6I3A==
|
integrity sha512-o7hk/f/8vkqh6QNR5L52m+ws846fQeD/qNCC9CCSRdBqjq66KiCgbxzlhRzKM/gbtxcvMYMIEEJ1yes5cr6I3A==
|
||||||
|
|
||||||
"@mozzius/expo-dynamic-app-icon@1.5.0":
|
"@mozzius/expo-dynamic-app-icon@^1.5.0":
|
||||||
version "1.5.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/@mozzius/expo-dynamic-app-icon/-/expo-dynamic-app-icon-1.5.0.tgz#c5f88c309965b6d6b89cfd5e2c00faa7bda736af"
|
resolved "https://registry.yarnpkg.com/@mozzius/expo-dynamic-app-icon/-/expo-dynamic-app-icon-1.6.0.tgz#baed590c733a1c5d09b244c115abc7248f6e1a86"
|
||||||
integrity sha512-yE2yEPO+HQmOqsX7cECh7/vu/LXnqhHGsVm3UiVi/3gaK8u5hAkPTNzZ0Qu6vnMwjPnY+uFbN6X+6Aj9c9yjMQ==
|
integrity sha512-lPvEKEdMlZ1iC8qLjDM8DQGXyAUbJdYxFTvIv4YuyBRdmamIgesoeRLRubAoRNLKBm0pqPpxVomZwjnnZfobyg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/image-utils" "^0.6.3"
|
"@expo/image-utils" "^0.6.3"
|
||||||
expo-modules-core "^2.1.1"
|
expo-modules-core "^2.1.1"
|
||||||
@@ -14024,9 +14024,9 @@ kysely@^0.23.4:
|
|||||||
integrity sha512-TH+b56pVXQq0tsyooYLeNfV11j6ih7D50dyN8tkM0e7ndiUH28Nziojiog3qRFlmEj9XePYdZUrNJ2079Qjdow==
|
integrity sha512-TH+b56pVXQq0tsyooYLeNfV11j6ih7D50dyN8tkM0e7ndiUH28Nziojiog3qRFlmEj9XePYdZUrNJ2079Qjdow==
|
||||||
|
|
||||||
lan-network@^0.1.4:
|
lan-network@^0.1.4:
|
||||||
version "0.1.4"
|
version "0.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/lan-network/-/lan-network-0.1.4.tgz#e55742ec279f1c622911b9f61f9ace869344c750"
|
resolved "https://registry.yarnpkg.com/lan-network/-/lan-network-0.1.5.tgz#e781889b7bd4dbedd9126fff3ceddd809a83c3ff"
|
||||||
integrity sha512-9EzcRaFzlj3nSwcn2VOdxm30uHBBCgkX8/xzhSIlZXvQ1N1QV2cSwSrL+4bJC/WI+3k1f9SNJuPt4/F/9Au6hQ==
|
integrity sha512-CV3k7l8jW0Z1b+G41tB7JInVyJEKQzh/YPl2v9uXpZMusp0aa+rh3OqG77xWuX7+eVBa8PsdTuMznTAssF4qwg==
|
||||||
|
|
||||||
lande@^1.0.10:
|
lande@^1.0.10:
|
||||||
version "1.0.10"
|
version "1.0.10"
|
||||||
@@ -16750,11 +16750,11 @@ react-native-dotenv@^3.4.11:
|
|||||||
dotenv "^16.4.5"
|
dotenv "^16.4.5"
|
||||||
|
|
||||||
react-native-drawer-layout@^4.1.6:
|
react-native-drawer-layout@^4.1.6:
|
||||||
version "4.1.6"
|
version "4.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-drawer-layout/-/react-native-drawer-layout-4.1.6.tgz#4a806a83a812a366d042543fa66a3a345a217843"
|
resolved "https://registry.yarnpkg.com/react-native-drawer-layout/-/react-native-drawer-layout-4.1.7.tgz#1c741c9bf9c739d6672201692e4ba4839ca0c8ff"
|
||||||
integrity sha512-gfEFQ7jxIz/2dbLI/HvEOSXRIM0UAUVakwZ7PmgtV98kSXEl7SOGr1J2E5Gv37OIsvYA1Om3k+7Xr/DzX+zmmg==
|
integrity sha512-KeTGZsNEDbOmgo8ICwr1vBmvWjRrRsvbLc2IAfQnW5h5UtxVZVRxY4QaN84BSBQPXm6tQ6AXfII8TCXCv3c0Ew==
|
||||||
dependencies:
|
dependencies:
|
||||||
use-latest-callback "^0.2.1"
|
use-latest-callback "^0.2.3"
|
||||||
|
|
||||||
react-native-edge-to-edge@1.6.0, react-native-edge-to-edge@^1.6.0:
|
react-native-edge-to-edge@1.6.0, react-native-edge-to-edge@^1.6.0:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
@@ -19383,10 +19383,10 @@ use-latest-callback@^0.1.9:
|
|||||||
resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.9.tgz#10191dc54257e65a8e52322127643a8940271e2a"
|
resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.9.tgz#10191dc54257e65a8e52322127643a8940271e2a"
|
||||||
integrity sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==
|
integrity sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==
|
||||||
|
|
||||||
use-latest-callback@^0.2.1:
|
use-latest-callback@^0.2.3:
|
||||||
version "0.2.1"
|
version "0.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.2.1.tgz#4d4e6a9e4817b13142834850dcfa8d24ca4569cf"
|
resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.2.3.tgz#2d644d3063040b9bc2d4c55bb525a13ae3de9e16"
|
||||||
integrity sha512-QWlq8Is8BGWBf883QOEQP5HWYX/kMI+JTbJ5rdtvJLmXTIh9XoHIO3PQcmQl8BU44VKxow1kbQUHa6mQSMALDQ==
|
integrity sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ==
|
||||||
|
|
||||||
use-latest@^1.2.1:
|
use-latest@^1.2.1:
|
||||||
version "1.2.1"
|
version "1.2.1"
|
||||||
|
|||||||
Reference in New Issue
Block a user