From f089f4578131e83cd177b7809ce0f7b75779dfdc Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 21 Jun 2024 21:38:04 -0700 Subject: [PATCH] Starter Packs (#4332) Co-authored-by: Dan Abramov Co-authored-by: Paul Frazee Co-authored-by: Eric Bailey Co-authored-by: Samuel Newman --- __tests__/lib/string.test.ts | 181 +++++ app.config.js | 18 +- .../icons/qrCode_stroke2_corner0_rounded.svg | 1 + assets/icons/starterPack.svg | 1 + assets/icons/starter_pack_icon.svg | 1 + assets/logo.png | Bin 0 -> 10126 bytes bskyweb/cmd/bskyweb/server.go | 4 + .../.well-known/apple-app-site-association | 6 +- modules/BlueskyClip/AppDelegate.swift | 32 + .../App-Icon-1024x1024@1x.png | Bin 0 -> 473960 bytes .../AppIcon.appiconset/Contents.json | 14 + .../BlueskyClip/Images.xcassets/Contents.json | 6 + modules/BlueskyClip/ViewController.swift | 133 ++++ .../android/build.gradle | 47 ++ .../android/src/main/AndroidManifest.xml | 2 + .../ExpoBlueskyDevicePrefsModule.kt | 10 + .../referrer/ExpoBlueskyReferrerModule.kt | 54 ++ .../expo-module.config.json | 12 + modules/expo-bluesky-swiss-army/index.ts | 4 + .../ExpoBlueskyDevicePrefsModule.swift | 23 + .../ios/ExpoBlueskySwissArmy.podspec | 21 + .../Referrer/ExpoBlueskyReferrerModule.swift | 7 + .../src/DevicePrefs/index.ios.ts | 18 + .../src/DevicePrefs/index.ts | 16 + .../src/NotImplemented.ts | 16 + .../src/Referrer/index.android.ts | 9 + .../src/Referrer/index.ts | 7 + .../src/Referrer/types.ts | 7 + package.json | 5 +- .../withAppEntitlements.js | 16 + .../withClipEntitlements.js | 32 + .../withClipInfoPlist.js | 38 ++ .../starterPackAppClipExtension/withFiles.js | 40 ++ .../withStarterPackAppClip.js | 40 ++ .../withXcodeTarget.js | 91 +++ scripts/updateExtensions.sh | 9 + src/App.native.tsx | 9 +- src/App.web.tsx | 9 +- src/Navigation.tsx | 23 + src/components/LinearGradientBackground.tsx | 23 + src/components/NewskieDialog.tsx | 70 +- src/components/ProfileCard.tsx | 91 +++ .../ReportDialog/SelectReportOptionView.tsx | 3 + src/components/ReportDialog/types.ts | 2 +- src/components/StarterPack/Main/FeedsList.tsx | 68 ++ .../StarterPack/Main/ProfilesList.tsx | 119 ++++ .../StarterPack/ProfileStarterPacks.tsx | 320 +++++++++ src/components/StarterPack/QrCode.tsx | 119 ++++ src/components/StarterPack/QrCodeDialog.tsx | 201 ++++++ src/components/StarterPack/ShareDialog.tsx | 180 +++++ .../StarterPack/StarterPackCard.tsx | 117 ++++ .../StarterPack/Wizard/ScreenTransition.tsx | 31 + .../Wizard/WizardEditListDialog.tsx | 152 +++++ .../StarterPack/Wizard/WizardListCard.tsx | 182 +++++ src/components/forms/TextField.tsx | 2 + .../hooks/useStarterPackEntry.native.ts | 68 ++ src/components/hooks/useStarterPackEntry.ts | 29 + src/components/icons/QrCode.tsx | 5 + src/components/icons/StarterPack.tsx | 8 + src/components/icons/TEMPLATE.tsx | 31 +- src/components/icons/common.ts | 32 - src/components/icons/common.tsx | 59 ++ src/lib/browser.native.ts | 1 + src/lib/browser.ts | 2 + src/lib/generate-starterpack.ts | 164 +++++ src/lib/hooks/useBottomBarOffset.ts | 14 + src/lib/hooks/useNotificationHandler.ts | 2 + .../create-sanitized-display-name.ts | 21 + src/lib/moderation/useReportOptions.ts | 9 + src/lib/routes/links.ts | 17 + src/lib/routes/types.ts | 12 + src/lib/statsig/events.ts | 35 +- src/lib/statsig/gates.ts | 1 + src/lib/strings/starter-pack.ts | 101 +++ src/routes.ts | 4 + src/screens/Login/LoginForm.tsx | 3 + src/screens/Login/ScreenTransition.tsx | 11 +- src/screens/Onboarding/StepFinished.tsx | 117 +++- src/screens/Profile/Header/DisplayName.tsx | 6 +- src/screens/Signup/index.tsx | 40 +- .../StarterPack/StarterPackLandingScreen.tsx | 378 +++++++++++ src/screens/StarterPack/StarterPackScreen.tsx | 627 ++++++++++++++++++ src/screens/StarterPack/Wizard/State.tsx | 163 +++++ .../StarterPack/Wizard/StepDetails.tsx | 84 +++ src/screens/StarterPack/Wizard/StepFeeds.tsx | 113 ++++ .../StarterPack/Wizard/StepFinished.tsx | 0 .../StarterPack/Wizard/StepProfiles.tsx | 101 +++ src/screens/StarterPack/Wizard/index.tsx | 575 ++++++++++++++++ src/state/persisted/schema.ts | 2 + src/state/preferences/index.tsx | 5 +- src/state/preferences/used-starter-packs.tsx | 37 ++ src/state/queries/actor-search.ts | 46 +- src/state/queries/actor-starter-packs.ts | 47 ++ src/state/queries/feed.ts | 17 + src/state/queries/list-members.ts | 19 +- src/state/queries/notifications/feed.ts | 11 +- src/state/queries/notifications/types.ts | 49 +- src/state/queries/notifications/util.ts | 83 ++- src/state/queries/profile-lists.ts | 10 +- src/state/queries/shorten-link.ts | 23 + src/state/queries/starter-packs.ts | 317 +++++++++ src/state/session/agent.ts | 12 - src/state/shell/logged-out.tsx | 17 +- src/state/shell/starter-pack.tsx | 25 + src/view/com/auth/LoggedOut.tsx | 42 +- src/view/com/feeds/FeedSourceCard.tsx | 3 + src/view/com/notifications/FeedItem.tsx | 87 ++- src/view/com/profile/FollowButton.tsx | 11 +- src/view/com/profile/ProfileCard.tsx | 6 +- src/view/com/profile/ProfileSubpageHeader.tsx | 10 +- src/view/screens/Home.tsx | 2 +- src/view/screens/Profile.tsx | 115 ++-- src/view/screens/Storybook/Icons.tsx | 8 + src/view/shell/desktop/LeftNav.tsx | 8 +- yarn.lock | 72 +- 115 files changed, 6329 insertions(+), 230 deletions(-) create mode 100644 assets/icons/qrCode_stroke2_corner0_rounded.svg create mode 100644 assets/icons/starterPack.svg create mode 100644 assets/icons/starter_pack_icon.svg create mode 100644 assets/logo.png create mode 100644 modules/BlueskyClip/AppDelegate.swift create mode 100644 modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png create mode 100644 modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 modules/BlueskyClip/Images.xcassets/Contents.json create mode 100644 modules/BlueskyClip/ViewController.swift create mode 100644 modules/expo-bluesky-swiss-army/android/build.gradle create mode 100644 modules/expo-bluesky-swiss-army/android/src/main/AndroidManifest.xml create mode 100644 modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/deviceprefs/ExpoBlueskyDevicePrefsModule.kt create mode 100644 modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt create mode 100644 modules/expo-bluesky-swiss-army/expo-module.config.json create mode 100644 modules/expo-bluesky-swiss-army/index.ts create mode 100644 modules/expo-bluesky-swiss-army/ios/DevicePrefs/ExpoBlueskyDevicePrefsModule.swift create mode 100644 modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec create mode 100644 modules/expo-bluesky-swiss-army/ios/Referrer/ExpoBlueskyReferrerModule.swift create mode 100644 modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ios.ts create mode 100644 modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ts create mode 100644 modules/expo-bluesky-swiss-army/src/NotImplemented.ts create mode 100644 modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts create mode 100644 modules/expo-bluesky-swiss-army/src/Referrer/index.ts create mode 100644 modules/expo-bluesky-swiss-army/src/Referrer/types.ts create mode 100644 plugins/starterPackAppClipExtension/withAppEntitlements.js create mode 100644 plugins/starterPackAppClipExtension/withClipEntitlements.js create mode 100644 plugins/starterPackAppClipExtension/withClipInfoPlist.js create mode 100644 plugins/starterPackAppClipExtension/withFiles.js create mode 100644 plugins/starterPackAppClipExtension/withStarterPackAppClip.js create mode 100644 plugins/starterPackAppClipExtension/withXcodeTarget.js create mode 100644 src/components/LinearGradientBackground.tsx create mode 100644 src/components/ProfileCard.tsx create mode 100644 src/components/StarterPack/Main/FeedsList.tsx create mode 100644 src/components/StarterPack/Main/ProfilesList.tsx create mode 100644 src/components/StarterPack/ProfileStarterPacks.tsx create mode 100644 src/components/StarterPack/QrCode.tsx create mode 100644 src/components/StarterPack/QrCodeDialog.tsx create mode 100644 src/components/StarterPack/ShareDialog.tsx create mode 100644 src/components/StarterPack/StarterPackCard.tsx create mode 100644 src/components/StarterPack/Wizard/ScreenTransition.tsx create mode 100644 src/components/StarterPack/Wizard/WizardEditListDialog.tsx create mode 100644 src/components/StarterPack/Wizard/WizardListCard.tsx create mode 100644 src/components/hooks/useStarterPackEntry.native.ts create mode 100644 src/components/hooks/useStarterPackEntry.ts create mode 100644 src/components/icons/QrCode.tsx create mode 100644 src/components/icons/StarterPack.tsx delete mode 100644 src/components/icons/common.ts create mode 100644 src/components/icons/common.tsx create mode 100644 src/lib/generate-starterpack.ts create mode 100644 src/lib/hooks/useBottomBarOffset.ts create mode 100644 src/lib/moderation/create-sanitized-display-name.ts create mode 100644 src/lib/strings/starter-pack.ts create mode 100644 src/screens/StarterPack/StarterPackLandingScreen.tsx create mode 100644 src/screens/StarterPack/StarterPackScreen.tsx create mode 100644 src/screens/StarterPack/Wizard/State.tsx create mode 100644 src/screens/StarterPack/Wizard/StepDetails.tsx create mode 100644 src/screens/StarterPack/Wizard/StepFeeds.tsx create mode 100644 src/screens/StarterPack/Wizard/StepFinished.tsx create mode 100644 src/screens/StarterPack/Wizard/StepProfiles.tsx create mode 100644 src/screens/StarterPack/Wizard/index.tsx create mode 100644 src/state/preferences/used-starter-packs.tsx create mode 100644 src/state/queries/actor-starter-packs.ts create mode 100644 src/state/queries/shorten-link.ts create mode 100644 src/state/queries/starter-packs.ts create mode 100644 src/state/shell/starter-pack.tsx diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts index 30072ccb1..0da9551e3 100644 --- a/__tests__/lib/string.test.ts +++ b/__tests__/lib/string.test.ts @@ -1,6 +1,11 @@ import {RichText} from '@atproto/api' import {parseEmbedPlayerFromUrl} from 'lib/strings/embed-player' +import { + createStarterPackGooglePlayUri, + createStarterPackLinkFromAndroidReferrer, + parseStarterPackUri, +} from 'lib/strings/starter-pack' import {cleanError} from '../../src/lib/strings/errors' import {createFullHandle, makeValidHandle} from '../../src/lib/strings/handles' import {enforceLen} from '../../src/lib/strings/helpers' @@ -796,3 +801,179 @@ describe('parseEmbedPlayerFromUrl', () => { } }) }) + +describe('createStarterPackLinkFromAndroidReferrer', () => { + const validOutput = 'at://haileyok.com/app.bsky.graph.starterpack/rkey' + + it('returns a link when input contains utm_source and utm_content', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_source=bluesky&utm_content=starterpack_haileyok.com_rkey', + ), + ).toEqual(validOutput) + + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_source=bluesky&utm_content=starterpack_test-lover-9000.com_rkey', + ), + ).toEqual('at://test-lover-9000.com/app.bsky.graph.starterpack/rkey') + }) + + it('returns a link when input contains utm_source and utm_content in different order', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=starterpack_haileyok.com_rkey&utm_source=bluesky', + ), + ).toEqual(validOutput) + }) + + it('returns a link when input contains other parameters as well', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_source=bluesky&utm_medium=starterpack&utm_content=starterpack_haileyok.com_rkey', + ), + ).toEqual(validOutput) + }) + + it('returns null when utm_source is not present', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=starterpack_haileyok.com_rkey', + ), + ).toEqual(null) + }) + + it('returns null when utm_content is not present', () => { + expect( + createStarterPackLinkFromAndroidReferrer('utm_source=bluesky'), + ).toEqual(null) + }) + + it('returns null when utm_content is malformed', () => { + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=starterpack_haileyok.com', + ), + ).toEqual(null) + + expect( + createStarterPackLinkFromAndroidReferrer('utm_content=starterpack'), + ).toEqual(null) + + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=starterpack_haileyok.com_rkey_more', + ), + ).toEqual(null) + + expect( + createStarterPackLinkFromAndroidReferrer( + 'utm_content=notastarterpack_haileyok.com_rkey', + ), + ).toEqual(null) + }) +}) + +describe('parseStarterPackHttpUri', () => { + const baseUri = 'https://bsky.app/start' + + it('returns a valid at uri when http uri is valid', () => { + const validHttpUri = `${baseUri}/haileyok.com/rkey` + expect(parseStarterPackUri(validHttpUri)).toEqual({ + name: 'haileyok.com', + rkey: 'rkey', + }) + + const validHttpUri2 = `${baseUri}/haileyok.com/ilovetesting` + expect(parseStarterPackUri(validHttpUri2)).toEqual({ + name: 'haileyok.com', + rkey: 'ilovetesting', + }) + + const validHttpUri3 = `${baseUri}/testlover9000.com/rkey` + expect(parseStarterPackUri(validHttpUri3)).toEqual({ + name: 'testlover9000.com', + rkey: 'rkey', + }) + }) + + it('returns null when there is no rkey', () => { + const validHttpUri = `${baseUri}/haileyok.com` + expect(parseStarterPackUri(validHttpUri)).toEqual(null) + }) + + it('returns null when there is an extra path', () => { + const validHttpUri = `${baseUri}/haileyok.com/rkey/other` + expect(parseStarterPackUri(validHttpUri)).toEqual(null) + }) + + it('returns null when there is no handle or rkey', () => { + const validHttpUri = `${baseUri}` + expect(parseStarterPackUri(validHttpUri)).toEqual(null) + }) + + it('returns null when the route is not /start or /starter-pack', () => { + const validHttpUri = 'https://bsky.app/start/haileyok.com/rkey' + expect(parseStarterPackUri(validHttpUri)).toEqual({ + name: 'haileyok.com', + rkey: 'rkey', + }) + + const validHttpUri2 = 'https://bsky.app/starter-pack/haileyok.com/rkey' + expect(parseStarterPackUri(validHttpUri2)).toEqual({ + name: 'haileyok.com', + rkey: 'rkey', + }) + + const invalidHttpUri = 'https://bsky.app/profile/haileyok.com/rkey' + expect(parseStarterPackUri(invalidHttpUri)).toEqual(null) + }) + + it('returns the at uri when the input is a valid starterpack at uri', () => { + const validAtUri = 'at://did:123/app.bsky.graph.starterpack/rkey' + expect(parseStarterPackUri(validAtUri)).toEqual({ + name: 'did:123', + rkey: 'rkey', + }) + }) + + it('returns null when the at uri has no rkey', () => { + const validAtUri = 'at://did:123/app.bsky.graph.starterpack' + expect(parseStarterPackUri(validAtUri)).toEqual(null) + }) + + it('returns null when the collection is not app.bsky.graph.starterpack', () => { + const validAtUri = 'at://did:123/app.bsky.graph.list/rkey' + expect(parseStarterPackUri(validAtUri)).toEqual(null) + }) + + it('returns null when the input is undefined', () => { + expect(parseStarterPackUri(undefined)).toEqual(null) + }) +}) + +describe('createStarterPackGooglePlayUri', () => { + const base = + 'https://play.google.com/store/apps/details?id=xyz.blueskyweb.app&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_' + + it('returns valid google play uri when input is valid', () => { + expect(createStarterPackGooglePlayUri('name', 'rkey')).toEqual( + `${base}name_rkey`, + ) + }) + + it('returns null when no rkey is supplied', () => { + // @ts-expect-error test + expect(createStarterPackGooglePlayUri('name', undefined)).toEqual(null) + }) + + it('returns null when no name or rkey are supplied', () => { + // @ts-expect-error test + expect(createStarterPackGooglePlayUri(undefined, undefined)).toEqual(null) + }) + + it('returns null when rkey is supplied but no name', () => { + // @ts-expect-error test + expect(createStarterPackGooglePlayUri(undefined, 'rkey')).toEqual(null) + }) +}) diff --git a/app.config.js b/app.config.js index eafacc6cc..57d430586 100644 --- a/app.config.js +++ b/app.config.js @@ -39,6 +39,17 @@ module.exports = function (config) { const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight' const IS_PRODUCTION = process.env.EXPO_PUBLIC_ENV === 'production' + const ASSOCIATED_DOMAINS = [ + 'applinks:bsky.app', + 'applinks:staging.bsky.app', + 'appclips:bsky.app', + 'appclips:go.bsky.app', // Allows App Clip to work when scanning QR codes + // When testing local services, enter an ngrok (et al) domain here. It must use a standard HTTP/HTTPS port. + ...(IS_DEV || IS_TESTFLIGHT + ? ['appclips:sptesting.haileyok.com', 'applinks:sptesting.haileyok.com'] + : []), + ] + const UPDATES_CHANNEL = IS_TESTFLIGHT ? 'testflight' : IS_PRODUCTION @@ -83,7 +94,7 @@ module.exports = function (config) { NSPhotoLibraryUsageDescription: 'Used for profile pictures, posts, and other kinds of content', }, - associatedDomains: ['applinks:bsky.app', 'applinks:staging.bsky.app'], + associatedDomains: ASSOCIATED_DOMAINS, splash: { ...SPLASH_CONFIG, dark: DARK_SPLASH_CONFIG, @@ -202,6 +213,7 @@ module.exports = function (config) { sounds: PLATFORM === 'ios' ? ['assets/dm.aiff'] : ['assets/dm.mp3'], }, ], + './plugins/starterPackAppClipExtension/withStarterPackAppClip.js', './plugins/withAndroidManifestPlugin.js', './plugins/withAndroidManifestFCMIconPlugin.js', './plugins/withAndroidStylesWindowBackgroundPlugin.js', @@ -234,6 +246,10 @@ module.exports = function (config) { ], }, }, + { + targetName: 'BlueskyClip', + bundleIdentifier: 'xyz.blueskyweb.app.AppClip', + }, ], }, }, diff --git a/assets/icons/qrCode_stroke2_corner0_rounded.svg b/assets/icons/qrCode_stroke2_corner0_rounded.svg new file mode 100644 index 000000000..b17db3953 --- /dev/null +++ b/assets/icons/qrCode_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/starterPack.svg b/assets/icons/starterPack.svg new file mode 100644 index 000000000..7f0df5595 --- /dev/null +++ b/assets/icons/starterPack.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/starter_pack_icon.svg b/assets/icons/starter_pack_icon.svg new file mode 100644 index 000000000..47a2f49b6 --- /dev/null +++ b/assets/icons/starter_pack_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cc2d660341e380d1150b1f86735ac78d8394e87f GIT binary patch literal 10126 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 literal 0 HcmV?d00001 diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go index 6d32e0e21..96fb07ddf 100644 --- a/bskyweb/cmd/bskyweb/server.go +++ b/bskyweb/cmd/bskyweb/server.go @@ -223,6 +223,10 @@ func serve(cctx *cli.Context) error { e.GET("/profile/:handleOrDID/post/:rkey/liked-by", server.WebGeneric) e.GET("/profile/:handleOrDID/post/:rkey/reposted-by", server.WebGeneric) + // starter packs + e.GET("/starter-pack/:handleOrDID/:rkey", server.WebGeneric) + e.GET("/start/:handleOrDID/:rkey", server.WebGeneric) + if linkHost != "" { linkUrl, err := url.Parse(linkHost) if err != nil { diff --git a/bskyweb/static/.well-known/apple-app-site-association b/bskyweb/static/.well-known/apple-app-site-association index 232acdf25..0a05fa35f 100644 --- a/bskyweb/static/.well-known/apple-app-site-association +++ b/bskyweb/static/.well-known/apple-app-site-association @@ -1,6 +1,8 @@ { "applinks": { - "apps": [], + "appclips": { + "apps": ["B3LX46C5HS.xyz.blueskyweb.app.AppClip"] + }, "details": [ { "appID": "B3LX46C5HS.xyz.blueskyweb.app", @@ -10,4 +12,4 @@ } ] } -} \ No newline at end of file +} diff --git a/modules/BlueskyClip/AppDelegate.swift b/modules/BlueskyClip/AppDelegate.swift new file mode 100644 index 000000000..684194953 --- /dev/null +++ b/modules/BlueskyClip/AppDelegate.swift @@ -0,0 +1,32 @@ +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + var window: UIWindow? + var controller: ViewController? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + let window = UIWindow() + self.window = UIWindow() + + let controller = ViewController(window: window) + self.controller = controller + + window.rootViewController = self.controller + window.makeKeyAndVisible() + + return true + } + + func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { + self.controller?.handleURL(url: url) + return true + } + + func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { + if let incomingURL = userActivity.webpageURL { + self.controller?.handleURL(url: incomingURL) + } + return true + } +} diff --git a/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..75ce4b813acb8a0fa79a8c766c0c5c8d3afd9457 GIT binary patch literal 473960 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

ywaCjMov3XQ@Zr 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 z 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�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 z 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�ui8h^x7T#&rYkA7_sl>%IrzMi*G%IH=jtM?BUGX|k6JXd}>z=@(J!U>gqgeDqZPv#x(rYRONo9<3(pe<%B`!k!Bn@ zF@Kq%v(!Y_d$Ue#%{&vhPV;z2THG;-&mJdF%RHSGw2x9MPvbKWLrKQ{C{mXS2>u?MPf#sjU`1dG(&Dfl6mK?o_%o zBe{dK^7LsJ%TuDk`*NO4wC9hCsQe6IW2kJrx^zBPgLEN z-Ts;MN?z*F`E<=?oo{kqk*}qj$!DWuGu*x6o@rd4@+tL%sk7M5qN6i3+|ESLSUh7f z=x~r{xkudF48!;7fV#{@IzOirrE2Ey{A6@JXPpaA@!4p@owH(|uI&*@>^mzu@tBOW z&xzqLZO1Ct{TKjjyL!9BBvBS~!L z^h}@Nq_|CcT4x-K;SBE46gq2q*du3=VSeSwpt`QKQnPNvC*)&chqIWC(IuIXB4n(KCr~_*=Ys_1_n=8KbLh* G2~7aDgCqd} literal 0 HcmV?d00001 diff --git a/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/Contents.json b/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..c3bb428db --- /dev/null +++ b/modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "App-Icon-1024x1024@1x.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/modules/BlueskyClip/Images.xcassets/Contents.json b/modules/BlueskyClip/Images.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/modules/BlueskyClip/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/modules/BlueskyClip/ViewController.swift b/modules/BlueskyClip/ViewController.swift new file mode 100644 index 000000000..b178644b8 --- /dev/null +++ b/modules/BlueskyClip/ViewController.swift @@ -0,0 +1,133 @@ +import UIKit +import WebKit +import StoreKit + +class ViewController: UIViewController, WKScriptMessageHandler, WKNavigationDelegate { + let defaults = UserDefaults(suiteName: "group.app.bsky") + + var window: UIWindow + var webView: WKWebView? + + var prevUrl: URL? + var starterPackUrl: URL? + + init(window: UIWindow) { + self.window = window + super.init(nibName: nil, bundle: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + + let contentController = WKUserContentController() + contentController.add(self, name: "onMessage") + let configuration = WKWebViewConfiguration() + configuration.userContentController = contentController + + let webView = WKWebView(frame: self.view.bounds, configuration: configuration) + webView.translatesAutoresizingMaskIntoConstraints = false + webView.contentMode = .scaleToFill + webView.navigationDelegate = self + self.view.addSubview(webView) + self.webView = webView + } + + func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { + guard let response = message.body as? String, + let data = response.data(using: .utf8), + let payload = try? JSONDecoder().decode(WebViewActionPayload.self, from: data) else { + return + } + + switch payload.action { + case .present: + guard let url = self.starterPackUrl else { + return + } + + self.presentAppStoreOverlay() + defaults?.setValue(url.absoluteString, forKey: "starterPackUri") + + case .store: + guard let keyToStoreAs = payload.keyToStoreAs, let jsonToStore = payload.jsonToStore else { + return + } + + self.defaults?.setValue(jsonToStore, forKey: keyToStoreAs) + } + } + + func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction) async -> WKNavigationActionPolicy { + // Detect when we land on the right URL. This is incase of a short link opening the app clip + guard let url = navigationAction.request.url else { + return .allow + } + + // Store the previous one to compare later, but only set starterPackUrl when we find the right one + prevUrl = url + // pathComponents starts with "/" as the first component, then each path name. so... + // ["/", "start", "name", "rkey"] + if url.pathComponents.count == 4, + url.pathComponents[1] == "start" { + self.starterPackUrl = url + } + + return .allow + } + + func handleURL(url: URL) { + let urlString = "\(url.absoluteString)?clip=true" + if let url = URL(string: urlString) { + self.webView?.load(URLRequest(url: url)) + } + } + + func presentAppStoreOverlay() { + guard let windowScene = self.window.windowScene else { + return + } + + let configuration = SKOverlay.AppClipConfiguration(position: .bottomRaised) + let overlay = SKOverlay(configuration: configuration) + + overlay.present(in: windowScene) + } + + func getHost(_ url: URL?) -> String? { + if #available(iOS 16.0, *) { + return url?.host() + } else { + return url?.host + } + } + + func getQuery(_ url: URL?) -> String? { + if #available(iOS 16.0, *) { + return url?.query() + } else { + return url?.query + } + } + + func urlMatchesPrevious(_ url: URL?) -> Bool { + if #available(iOS 16.0, *) { + return url?.query() == prevUrl?.query() && url?.host() == prevUrl?.host() && url?.query() == prevUrl?.query() + } else { + return url?.query == prevUrl?.query && url?.host == prevUrl?.host && url?.query == prevUrl?.query + } + } +} + +struct WebViewActionPayload: Decodable { + enum Action: String, Decodable { + case present, store + } + + let action: Action + let keyToStoreAs: String? + let jsonToStore: String? +} diff --git a/modules/expo-bluesky-swiss-army/android/build.gradle b/modules/expo-bluesky-swiss-army/android/build.gradle new file mode 100644 index 000000000..b031cde57 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/build.gradle @@ -0,0 +1,47 @@ +apply plugin: 'com.android.library' + +group = 'expo.modules.blueskyswissarmy' +version = '0.6.0' + +def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle") +apply from: expoModulesCorePlugin +applyKotlinExpoModulesCorePlugin() +useCoreDependencies() +useExpoPublishing() + +// If you want to use the managed Android SDK versions from expo-modules-core, set this to true. +// The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code. +// Most of the time, you may like to manage the Android SDK versions yourself. +def useManagedAndroidSdkVersions = false +if (useManagedAndroidSdkVersions) { + useDefaultAndroidSdkVersions() +} else { + buildscript { + // Simple helper that allows the root project to override versions declared by this library. + ext.safeExtGet = { prop, fallback -> + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback + } + } + project.android { + compileSdkVersion safeExtGet("compileSdkVersion", 34) + defaultConfig { + minSdkVersion safeExtGet("minSdkVersion", 21) + targetSdkVersion safeExtGet("targetSdkVersion", 34) + } + } +} + +android { + namespace "expo.modules.blueskyswissarmy" + defaultConfig { + versionCode 1 + versionName "0.6.0" + } + lintOptions { + abortOnError false + } +} + +dependencies { + implementation("com.android.installreferrer:installreferrer:2.2") +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/AndroidManifest.xml b/modules/expo-bluesky-swiss-army/android/src/main/AndroidManifest.xml new file mode 100644 index 000000000..bdae66c8f --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/deviceprefs/ExpoBlueskyDevicePrefsModule.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/deviceprefs/ExpoBlueskyDevicePrefsModule.kt new file mode 100644 index 000000000..29017f17a --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/deviceprefs/ExpoBlueskyDevicePrefsModule.kt @@ -0,0 +1,10 @@ +package expo.modules.blueskyswissarmy.deviceprefs + +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition + +class ExpoBlueskyDevicePrefsModule : Module() { + override fun definition() = ModuleDefinition { + Name("ExpoBlueskyDevicePrefs") + } +} diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt new file mode 100644 index 000000000..3589b364e --- /dev/null +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt @@ -0,0 +1,54 @@ +package expo.modules.blueskyswissarmy.referrer + +import android.util.Log +import com.android.installreferrer.api.InstallReferrerClient +import com.android.installreferrer.api.InstallReferrerStateListener +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition +import expo.modules.kotlin.Promise + +class ExpoBlueskyReferrerModule : Module() { + override fun definition() = ModuleDefinition { + Name("ExpoBlueskyReferrer") + + AsyncFunction("getGooglePlayReferrerInfoAsync") { promise: Promise -> + val referrerClient = InstallReferrerClient.newBuilder(appContext.reactContext).build() + referrerClient.startConnection(object : InstallReferrerStateListener { + override fun onInstallReferrerSetupFinished(responseCode: Int) { + if (responseCode == InstallReferrerClient.InstallReferrerResponse.OK) { + Log.d("ExpoGooglePlayReferrer", "Successfully retrieved referrer info.") + + val response = referrerClient.installReferrer + Log.d("ExpoGooglePlayReferrer", "Install referrer: ${response.installReferrer}") + + promise.resolve( + mapOf( + "installReferrer" to response.installReferrer, + "clickTimestamp" to response.referrerClickTimestampSeconds, + "installTimestamp" to response.installBeginTimestampSeconds + ) + ) + } else { + Log.d("ExpoGooglePlayReferrer", "Failed to get referrer info. Unknown error.") + promise.reject( + "ERR_GOOGLE_PLAY_REFERRER_UNKNOWN", + "Failed to get referrer info", + Exception("Failed to get referrer info") + ) + } + referrerClient.endConnection() + } + + override fun onInstallReferrerServiceDisconnected() { + Log.d("ExpoGooglePlayReferrer", "Failed to get referrer info. Service disconnected.") + referrerClient.endConnection() + promise.reject( + "ERR_GOOGLE_PLAY_REFERRER_DISCONNECTED", + "Failed to get referrer info", + Exception("Failed to get referrer info") + ) + } + }) + } + } +} \ No newline at end of file diff --git a/modules/expo-bluesky-swiss-army/expo-module.config.json b/modules/expo-bluesky-swiss-army/expo-module.config.json new file mode 100644 index 000000000..730bc6114 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/expo-module.config.json @@ -0,0 +1,12 @@ +{ + "platforms": ["ios", "tvos", "android", "web"], + "ios": { + "modules": ["ExpoBlueskyDevicePrefsModule", "ExpoBlueskyReferrerModule"] + }, + "android": { + "modules": [ + "expo.modules.blueskyswissarmy.deviceprefs.ExpoBlueskyDevicePrefsModule", + "expo.modules.blueskyswissarmy.referrer.ExpoBlueskyReferrerModule" + ] + } +} diff --git a/modules/expo-bluesky-swiss-army/index.ts b/modules/expo-bluesky-swiss-army/index.ts new file mode 100644 index 000000000..1b2f89249 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/index.ts @@ -0,0 +1,4 @@ +import * as DevicePrefs from './src/DevicePrefs' +import * as Referrer from './src/Referrer' + +export {DevicePrefs, Referrer} diff --git a/modules/expo-bluesky-swiss-army/ios/DevicePrefs/ExpoBlueskyDevicePrefsModule.swift b/modules/expo-bluesky-swiss-army/ios/DevicePrefs/ExpoBlueskyDevicePrefsModule.swift new file mode 100644 index 000000000..b13a9fe3f --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/DevicePrefs/ExpoBlueskyDevicePrefsModule.swift @@ -0,0 +1,23 @@ +import ExpoModulesCore + +public class ExpoBlueskyDevicePrefsModule: Module { + func getDefaults(_ useAppGroup: Bool) -> UserDefaults? { + if useAppGroup { + return UserDefaults(suiteName: "group.app.bsky") + } else { + return UserDefaults.standard + } + } + + public func definition() -> ModuleDefinition { + Name("ExpoBlueskyDevicePrefs") + + AsyncFunction("getStringValueAsync") { (key: String, useAppGroup: Bool) in + return self.getDefaults(useAppGroup)?.string(forKey: key) + } + + AsyncFunction("setStringValueAsync") { (key: String, value: String?, useAppGroup: Bool) in + self.getDefaults(useAppGroup)?.setValue(value, forKey: key) + } + } +} diff --git a/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec b/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec new file mode 100644 index 000000000..be4b0eae4 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec @@ -0,0 +1,21 @@ +Pod::Spec.new do |s| + s.name = 'ExpoBlueskySwissArmy' + s.version = '1.0.0' + s.summary = 'A collection of native tools for Bluesky' + s.description = 'A collection of native tools for Bluesky' + s.author = '' + s.homepage = 'https://github.com/bluesky-social/social-app' + s.platforms = { :ios => '13.4', :tvos => '13.4' } + s.source = { git: '' } + s.static_framework = true + + s.dependency 'ExpoModulesCore' + + # Swift/Objective-C compatibility + s.pod_target_xcconfig = { + 'DEFINES_MODULE' => 'YES', + 'SWIFT_COMPILATION_MODE' => 'wholemodule' + } + + s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}" +end diff --git a/modules/expo-bluesky-swiss-army/ios/Referrer/ExpoBlueskyReferrerModule.swift b/modules/expo-bluesky-swiss-army/ios/Referrer/ExpoBlueskyReferrerModule.swift new file mode 100644 index 000000000..fd28c51e6 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/ios/Referrer/ExpoBlueskyReferrerModule.swift @@ -0,0 +1,7 @@ +import ExpoModulesCore + +public class ExpoBlueskyReferrerModule: Module { + public func definition() -> ModuleDefinition { + Name("ExpoBlueskyReferrer") + } +} diff --git a/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ios.ts b/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ios.ts new file mode 100644 index 000000000..427185086 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ios.ts @@ -0,0 +1,18 @@ +import {requireNativeModule} from 'expo-modules-core' + +const NativeModule = requireNativeModule('ExpoBlueskyDevicePrefs') + +export function getStringValueAsync( + key: string, + useAppGroup?: boolean, +): Promise { + return NativeModule.getStringValueAsync(key, useAppGroup) +} + +export function setStringValueAsync( + key: string, + value: string | null, + useAppGroup?: boolean, +): Promise { + return NativeModule.setStringValueAsync(key, value, useAppGroup) +} diff --git a/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ts b/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ts new file mode 100644 index 000000000..f1eee6c28 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ts @@ -0,0 +1,16 @@ +import {NotImplementedError} from '../NotImplemented' + +export function getStringValueAsync( + key: string, + useAppGroup?: boolean, +): Promise { + throw new NotImplementedError({key, useAppGroup}) +} + +export function setStringValueAsync( + key: string, + value: string | null, + useAppGroup?: boolean, +): Promise { + throw new NotImplementedError({key, value, useAppGroup}) +} diff --git a/modules/expo-bluesky-swiss-army/src/NotImplemented.ts b/modules/expo-bluesky-swiss-army/src/NotImplemented.ts new file mode 100644 index 000000000..876cd7b32 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/NotImplemented.ts @@ -0,0 +1,16 @@ +import {Platform} from 'react-native' + +export class NotImplementedError extends Error { + constructor(params = {}) { + if (__DEV__) { + const caller = new Error().stack?.split('\n')[2] + super( + `Not implemented on ${Platform.OS}. Given params: ${JSON.stringify( + params, + )} ${caller}`, + ) + } else { + super('Not implemented') + } + } +} diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts new file mode 100644 index 000000000..06dfd2d09 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts @@ -0,0 +1,9 @@ +import {requireNativeModule} from 'expo' + +import {GooglePlayReferrerInfo} from './types' + +export const NativeModule = requireNativeModule('ExpoBlueskyReferrer') + +export function getGooglePlayReferrerInfoAsync(): Promise { + return NativeModule.getGooglePlayReferrerInfoAsync() +} diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.ts new file mode 100644 index 000000000..255398552 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.ts @@ -0,0 +1,7 @@ +import {NotImplementedError} from '../NotImplemented' +import {GooglePlayReferrerInfo} from './types' + +// @ts-ignore throws +export function getGooglePlayReferrerInfoAsync(): Promise { + throw new NotImplementedError() +} diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/types.ts b/modules/expo-bluesky-swiss-army/src/Referrer/types.ts new file mode 100644 index 000000000..55faaff4d --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/types.ts @@ -0,0 +1,7 @@ +export type GooglePlayReferrerInfo = + | { + installReferrer?: string + clickTimestamp?: number + installTimestamp?: number + } + | undefined diff --git a/package.json b/package.json index bcd5a1d37..657770309 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "open-analyzer": "EXPO_PUBLIC_OPEN_ANALYZER=1 yarn build-web" }, "dependencies": { - "@atproto/api": "^0.12.20", + "@atproto/api": "0.12.22-next.0", "@bam.tech/react-native-image-resizer": "^3.0.4", "@braintree/sanitize-url": "^6.0.2", "@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet", @@ -177,6 +177,7 @@ "react-native-pager-view": "6.2.3", "react-native-picker-select": "^9.1.3", "react-native-progress": "bluesky-social/react-native-progress", + "react-native-qrcode-styled": "^0.3.1", "react-native-reanimated": "^3.11.0", "react-native-root-siblings": "^4.1.1", "react-native-safe-area-context": "4.10.1", @@ -205,7 +206,7 @@ "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@did-plc/server": "^0.0.1", - "@expo/config-plugins": "7.8.0", + "@expo/config-plugins": "8.0.4", "@expo/prebuild-config": "6.7.0", "@lingui/cli": "^4.5.0", "@lingui/macro": "^4.5.0", diff --git a/plugins/starterPackAppClipExtension/withAppEntitlements.js b/plugins/starterPackAppClipExtension/withAppEntitlements.js new file mode 100644 index 000000000..1bffd8208 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withAppEntitlements.js @@ -0,0 +1,16 @@ +const {withEntitlementsPlist} = require('@expo/config-plugins') + +const withAppEntitlements = config => { + // eslint-disable-next-line no-shadow + return withEntitlementsPlist(config, async config => { + config.modResults['com.apple.security.application-groups'] = [ + `group.app.bsky`, + ] + config.modResults[ + 'com.apple.developer.associated-appclip-app-identifiers' + ] = [`$(AppIdentifierPrefix)${config.ios.bundleIdentifier}.AppClip`] + return config + }) +} + +module.exports = {withAppEntitlements} diff --git a/plugins/starterPackAppClipExtension/withClipEntitlements.js b/plugins/starterPackAppClipExtension/withClipEntitlements.js new file mode 100644 index 000000000..77636b5c9 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withClipEntitlements.js @@ -0,0 +1,32 @@ +const {withInfoPlist} = require('@expo/config-plugins') +const plist = require('@expo/plist') +const path = require('path') +const fs = require('fs') + +const withClipEntitlements = (config, {targetName}) => { + // eslint-disable-next-line no-shadow + return withInfoPlist(config, config => { + const entitlementsPath = path.join( + config.modRequest.platformProjectRoot, + targetName, + `${targetName}.entitlements`, + ) + + const appClipEntitlements = { + 'com.apple.security.application-groups': [`group.app.bsky`], + 'com.apple.developer.parent-application-identifiers': [ + `$(AppIdentifierPrefix)${config.ios.bundleIdentifier}`, + ], + 'com.apple.developer.associated-domains': config.ios.associatedDomains, + } + + fs.mkdirSync(path.dirname(entitlementsPath), { + recursive: true, + }) + fs.writeFileSync(entitlementsPath, plist.default.build(appClipEntitlements)) + + return config + }) +} + +module.exports = {withClipEntitlements} diff --git a/plugins/starterPackAppClipExtension/withClipInfoPlist.js b/plugins/starterPackAppClipExtension/withClipInfoPlist.js new file mode 100644 index 000000000..59fbed1a9 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withClipInfoPlist.js @@ -0,0 +1,38 @@ +const {withInfoPlist} = require('@expo/config-plugins') +const plist = require('@expo/plist') +const path = require('path') +const fs = require('fs') + +const withClipInfoPlist = (config, {targetName}) => { + // eslint-disable-next-line no-shadow + return withInfoPlist(config, config => { + const targetPath = path.join( + config.modRequest.platformProjectRoot, + targetName, + 'Info.plist', + ) + + const newPlist = plist.default.build({ + NSAppClip: { + NSAppClipRequestEphemeralUserNotification: false, + NSAppClipRequestLocationConfirmation: false, + }, + UILaunchScreen: {}, + CFBundleName: '$(PRODUCT_NAME)', + CFBundleIdentifier: '$(PRODUCT_BUNDLE_IDENTIFIER)', + CFBundleVersion: '$(CURRENT_PROJECT_VERSION)', + CFBundleExecutable: '$(EXECUTABLE_NAME)', + CFBundlePackageType: '$(PRODUCT_BUNDLE_PACKAGE_TYPE)', + CFBundleShortVersionString: config.version, + CFBundleIconName: 'AppIcon', + UIViewControllerBasedStatusBarAppearance: 'NO', + }) + + fs.mkdirSync(path.dirname(targetPath), {recursive: true}) + fs.writeFileSync(targetPath, newPlist) + + return config + }) +} + +module.exports = {withClipInfoPlist} diff --git a/plugins/starterPackAppClipExtension/withFiles.js b/plugins/starterPackAppClipExtension/withFiles.js new file mode 100644 index 000000000..ad99f5ae4 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withFiles.js @@ -0,0 +1,40 @@ +const {withXcodeProject} = require('@expo/config-plugins') +const path = require('path') +const fs = require('fs') + +const FILES = ['AppDelegate.swift', 'ViewController.swift'] + +const withFiles = (config, {targetName}) => { + // eslint-disable-next-line no-shadow + return withXcodeProject(config, config => { + const basePath = path.join( + config.modRequest.projectRoot, + 'modules', + targetName, + ) + + for (const file of FILES) { + const sourcePath = path.join(basePath, file) + const targetPath = path.join( + config.modRequest.platformProjectRoot, + targetName, + file, + ) + + fs.mkdirSync(path.dirname(targetPath), {recursive: true}) + fs.copyFileSync(sourcePath, targetPath) + } + + const imagesBasePath = path.join(basePath, 'Images.xcassets') + const imagesTargetPath = path.join( + config.modRequest.platformProjectRoot, + targetName, + 'Images.xcassets', + ) + fs.cpSync(imagesBasePath, imagesTargetPath, {recursive: true}) + + return config + }) +} + +module.exports = {withFiles} diff --git a/plugins/starterPackAppClipExtension/withStarterPackAppClip.js b/plugins/starterPackAppClipExtension/withStarterPackAppClip.js new file mode 100644 index 000000000..1e3f0b702 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withStarterPackAppClip.js @@ -0,0 +1,40 @@ +const {withPlugins} = require('@expo/config-plugins') +const {withAppEntitlements} = require('./withAppEntitlements') +const {withClipEntitlements} = require('./withClipEntitlements') +const {withClipInfoPlist} = require('./withClipInfoPlist') +const {withFiles} = require('./withFiles') +const {withXcodeTarget} = require('./withXcodeTarget') + +const APP_CLIP_TARGET_NAME = 'BlueskyClip' + +const withStarterPackAppClip = config => { + return withPlugins(config, [ + withAppEntitlements, + [ + withClipEntitlements, + { + targetName: APP_CLIP_TARGET_NAME, + }, + ], + [ + withClipInfoPlist, + { + targetName: APP_CLIP_TARGET_NAME, + }, + ], + [ + withFiles, + { + targetName: APP_CLIP_TARGET_NAME, + }, + ], + [ + withXcodeTarget, + { + targetName: APP_CLIP_TARGET_NAME, + }, + ], + ]) +} + +module.exports = withStarterPackAppClip diff --git a/plugins/starterPackAppClipExtension/withXcodeTarget.js b/plugins/starterPackAppClipExtension/withXcodeTarget.js new file mode 100644 index 000000000..61d5f81b0 --- /dev/null +++ b/plugins/starterPackAppClipExtension/withXcodeTarget.js @@ -0,0 +1,91 @@ +const {withXcodeProject} = require('@expo/config-plugins') + +const BUILD_PHASE_FILES = ['AppDelegate.swift', 'ViewController.swift'] + +const withXcodeTarget = (config, {targetName}) => { + // eslint-disable-next-line no-shadow + return withXcodeProject(config, config => { + const pbxProject = config.modResults + + const target = pbxProject.addTarget(targetName, 'application', targetName) + target.pbxNativeTarget.productType = `"com.apple.product-type.application.on-demand-install-capable"` + pbxProject.addBuildPhase( + BUILD_PHASE_FILES.map(f => `${targetName}/${f}`), + 'PBXSourcesBuildPhase', + 'Sources', + target.uuid, + 'application', + '"AppClips"', + ) + pbxProject.addBuildPhase( + [`${targetName}/Images.xcassets`], + 'PBXResourcesBuildPhase', + 'Resources', + target.uuid, + 'application', + '"AppClips"', + ) + + const pbxGroup = pbxProject.addPbxGroup([ + 'AppDelegate.swift', + 'ViewController.swift', + 'Images.xcassets', + `${targetName}.entitlements`, + 'Info.plist', + ]) + + pbxProject.addFile(`${targetName}/Info.plist`, pbxGroup.uuid) + const configurations = pbxProject.pbxXCBuildConfigurationSection() + for (const key in configurations) { + if (typeof configurations[key].buildSettings !== 'undefined') { + const buildSettingsObj = configurations[key].buildSettings + if ( + typeof buildSettingsObj.PRODUCT_NAME !== 'undefined' && + buildSettingsObj.PRODUCT_NAME === `"${targetName}"` + ) { + buildSettingsObj.CLANG_ENABLE_MODULES = 'YES' + buildSettingsObj.INFOPLIST_FILE = `"${targetName}/Info.plist"` + buildSettingsObj.CODE_SIGN_ENTITLEMENTS = `"${targetName}/${targetName}.entitlements"` + buildSettingsObj.CODE_SIGN_STYLE = 'Automatic' + buildSettingsObj.CURRENT_PROJECT_VERSION = `"${ + process.env.BSKY_IOS_BUILD_NUMBER ?? '1' + }"` + buildSettingsObj.GENERATE_INFOPLIST_FILE = 'YES' + buildSettingsObj.MARKETING_VERSION = `"${config.version}"` + buildSettingsObj.PRODUCT_BUNDLE_IDENTIFIER = `"${config.ios?.bundleIdentifier}.AppClip"` + buildSettingsObj.SWIFT_EMIT_LOC_STRINGS = 'YES' + buildSettingsObj.SWIFT_VERSION = '5.0' + buildSettingsObj.TARGETED_DEVICE_FAMILY = `"1"` + buildSettingsObj.DEVELOPMENT_TEAM = 'B3LX46C5HS' + buildSettingsObj.IPHONEOS_DEPLOYMENT_TARGET = '14.0' + buildSettingsObj.ASSETCATALOG_COMPILER_APPICON_NAME = 'AppIcon' + } + } + } + + pbxProject.addTargetAttribute('DevelopmentTeam', 'B3LX46C5HS', targetName) + + if (!pbxProject.hash.project.objects.PBXTargetDependency) { + pbxProject.hash.project.objects.PBXTargetDependency = {} + } + if (!pbxProject.hash.project.objects.PBXContainerItemProxy) { + pbxProject.hash.project.objects.PBXContainerItemProxy = {} + } + pbxProject.addTargetDependency(pbxProject.getFirstTarget().uuid, [ + target.uuid, + ]) + + pbxProject.addBuildPhase( + [`${targetName}.app`], + 'PBXCopyFilesBuildPhase', + 'Embed App Clips', + pbxProject.getFirstTarget().uuid, + 'application', + '"AppClips"', + ) + + return config + }) +} + +module.exports = {withXcodeTarget} diff --git a/scripts/updateExtensions.sh b/scripts/updateExtensions.sh index f3e972aa7..b01134eeb 100755 --- a/scripts/updateExtensions.sh +++ b/scripts/updateExtensions.sh @@ -1,6 +1,7 @@ #!/bin/bash IOS_SHARE_EXTENSION_DIRECTORY="./ios/Share-with-Bluesky" IOS_NOTIFICATION_EXTENSION_DIRECTORY="./ios/BlueskyNSE" +IOS_APP_CLIP_DIRECTORY="./ios/BlueskyClip" MODULES_DIRECTORY="./modules" if [ ! -d $IOS_SHARE_EXTENSION_DIRECTORY ]; then @@ -16,3 +17,11 @@ if [ ! -d $IOS_NOTIFICATION_EXTENSION_DIRECTORY ]; then else cp -R $IOS_NOTIFICATION_EXTENSION_DIRECTORY $MODULES_DIRECTORY fi + + +if [ ! -d $IOS_APP_CLIP_DIRECTORY ]; then + echo "$IOS_APP_CLIP_DIRECTORY not found inside of your iOS project." + exit 1 +else + cp -R $IOS_APP_CLIP_DIRECTORY $MODULES_DIRECTORY +fi diff --git a/src/App.native.tsx b/src/App.native.tsx index 4c73d8752..639276a12 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -46,11 +46,13 @@ import {readLastActiveAccount} from '#/state/session/util' import {Provider as ShellStateProvider} from '#/state/shell' import {Provider as LoggedOutViewProvider} from '#/state/shell/logged-out' import {Provider as SelectedFeedProvider} from '#/state/shell/selected-feed' +import {Provider as StarterPackProvider} from '#/state/shell/starter-pack' import {TestCtrls} from '#/view/com/testing/TestCtrls' import * as Toast from '#/view/com/util/Toast' import {Shell} from '#/view/shell' import {ThemeProvider as Alf} from '#/alf' import {useColorModeTheme} from '#/alf/util/useColorModeTheme' +import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry' import {Provider as PortalProvider} from '#/components/Portal' import {Splash} from '#/Splash' import {BackgroundNotificationPreferencesProvider} from '../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider' @@ -67,6 +69,7 @@ function InnerApp() { const {_} = useLingui() useIntentHandler() + const hasCheckedReferrer = useStarterPackEntry() // init useEffect(() => { @@ -98,7 +101,7 @@ function InnerApp() { - + - + + + diff --git a/src/App.web.tsx b/src/App.web.tsx index 00939c9eb..31a59d97d 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -35,11 +35,13 @@ import {readLastActiveAccount} from '#/state/session/util' import {Provider as ShellStateProvider} from '#/state/shell' import {Provider as LoggedOutViewProvider} from '#/state/shell/logged-out' import {Provider as SelectedFeedProvider} from '#/state/shell/selected-feed' +import {Provider as StarterPackProvider} from '#/state/shell/starter-pack' import * as Toast from '#/view/com/util/Toast' import {ToastContainer} from '#/view/com/util/Toast.web' import {Shell} from '#/view/shell/index' import {ThemeProvider as Alf} from '#/alf' import {useColorModeTheme} from '#/alf/util/useColorModeTheme' +import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry' import {Provider as PortalProvider} from '#/components/Portal' import {BackgroundNotificationPreferencesProvider} from '../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider' import I18nProvider from './locale/i18nProvider' @@ -52,6 +54,7 @@ function InnerApp() { const theme = useColorModeTheme() const {_} = useLingui() useIntentHandler() + const hasCheckedReferrer = useStarterPackEntry() // init useEffect(() => { @@ -77,7 +80,7 @@ function InnerApp() { }, [_]) // wait for session to resume - if (!isReady) return null + if (!isReady || !hasCheckedReferrer) return null return ( @@ -146,7 +149,9 @@ function App() { - + + + diff --git a/src/Navigation.tsx b/src/Navigation.tsx index f2b7cd911..5cb4f4105 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -43,6 +43,8 @@ import HashtagScreen from '#/screens/Hashtag' import {ModerationScreen} from '#/screens/Moderation' import {ProfileKnownFollowersScreen} from '#/screens/Profile/KnownFollowers' import {ProfileLabelerLikedByScreen} from '#/screens/Profile/ProfileLabelerLikedBy' +import {StarterPackScreen} from '#/screens/StarterPack/StarterPackScreen' +import {Wizard} from '#/screens/StarterPack/Wizard' import {init as initAnalytics} from './lib/analytics/analytics' import {useWebScrollRestoration} from './lib/hooks/useWebScrollRestoration' import {attachRouteToLogEvents, logEvent} from './lib/statsig/statsig' @@ -317,6 +319,21 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { getComponent={() => FeedsScreen} options={{title: title(msg`Feeds`)}} /> + StarterPackScreen} + options={{title: title(msg`Starter Pack`), requireAuth: true}} + /> + Wizard} + options={{title: title(msg`Create a starter pack`), requireAuth: true}} + /> + Wizard} + options={{title: title(msg`Edit your starter pack`), requireAuth: true}} + /> ) } @@ -371,6 +388,7 @@ function HomeTabNavigator() { contentStyle: pal.view, }}> HomeScreen} /> + HomeScreen} /> {commonScreens(HomeTab)} ) @@ -507,6 +525,11 @@ const FlatNavigator = () => { getComponent={() => MessagesScreen} options={{title: title(msg`Messages`), requireAuth: true}} /> + HomeScreen} + options={{title: title(msg`Home`)}} + /> {commonScreens(Flat as typeof HomeTab, numUnread)} ) diff --git a/src/components/LinearGradientBackground.tsx b/src/components/LinearGradientBackground.tsx new file mode 100644 index 000000000..f516b19f5 --- /dev/null +++ b/src/components/LinearGradientBackground.tsx @@ -0,0 +1,23 @@ +import React from 'react' +import {StyleProp, ViewStyle} from 'react-native' +import {LinearGradient} from 'expo-linear-gradient' + +import {gradients} from '#/alf/tokens' + +export function LinearGradientBackground({ + style, + children, +}: { + style: StyleProp + children: React.ReactNode +}) { + const gradient = gradients.sky.values.map(([_, color]) => { + return color + }) + + return ( + + {children} + + ) +} diff --git a/src/components/NewskieDialog.tsx b/src/components/NewskieDialog.tsx index 0354bfc43..6743a592b 100644 --- a/src/components/NewskieDialog.tsx +++ b/src/components/NewskieDialog.tsx @@ -9,11 +9,13 @@ import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {HITSLOP_10} from 'lib/constants' import {sanitizeDisplayName} from 'lib/strings/display-names' -import {atoms as a} from '#/alf' -import {Button} from '#/components/Button' +import {isWeb} from 'platform/detection' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' import {useDialogControl} from '#/components/Dialog' import {Newskie} from '#/components/icons/Newskie' +import * as StarterPackCard from '#/components/StarterPack/StarterPackCard' import {Text} from '#/components/Typography' export function NewskieDialog({ @@ -24,6 +26,7 @@ export function NewskieDialog({ disabled?: boolean }) { const {_} = useLingui() + const t = useTheme() const moderationOpts = useModerationOpts() const control = useDialogControl() const profileName = React.useMemo(() => { @@ -68,15 +71,62 @@ export function NewskieDialog({ label={_(msg`New user info dialog`)} style={[{width: 'auto', maxWidth: 400, minWidth: 200}]}> - - Say hello! - - - - {profileName} joined Bluesky{' '} - {timeAgo(createdAt, now, {format: 'long'})} ago - + + + + Say hello! + + + + {profile.joinedViaStarterPack ? ( + + {profileName} joined Bluesky using a starter pack{' '} + {timeAgo(createdAt, now, {format: 'long'})} ago + + ) : ( + + {profileName} joined Bluesky{' '} + {timeAgo(createdAt, now, {format: 'long'})} ago + + )} + {profile.joinedViaStarterPack ? ( + { + control.close() + }}> + + + + + ) : null} + diff --git a/src/components/ProfileCard.tsx b/src/components/ProfileCard.tsx new file mode 100644 index 000000000..a0d222854 --- /dev/null +++ b/src/components/ProfileCard.tsx @@ -0,0 +1,91 @@ +import React from 'react' +import {View} from 'react-native' +import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' + +import {createSanitizedDisplayName} from 'lib/moderation/create-sanitized-display-name' +import {sanitizeHandle} from 'lib/strings/handles' +import {useProfileShadow} from 'state/cache/profile-shadow' +import {useSession} from 'state/session' +import {FollowButton} from 'view/com/profile/FollowButton' +import {ProfileCardPills} from 'view/com/profile/ProfileCard' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {atoms as a, useTheme} from '#/alf' +import {Link} from '#/components/Link' +import {Text} from '#/components/Typography' + +export function Default({ + profile: profileUnshadowed, + moderationOpts, + logContext = 'ProfileCard', +}: { + profile: AppBskyActorDefs.ProfileViewDetailed + moderationOpts: ModerationOpts + logContext?: 'ProfileCard' | 'StarterPackProfilesList' +}) { + const t = useTheme() + const {currentAccount, hasSession} = useSession() + + const profile = useProfileShadow(profileUnshadowed) + const name = createSanitizedDisplayName(profile) + const handle = `@${sanitizeHandle(profile.handle)}` + const moderation = moderateProfile(profile, moderationOpts) + + return ( + + + + + + {name} + + + {handle} + + + {hasSession && profile.did !== currentAccount?.did && ( + + + + )} + + + + + {profile.description && ( + + {profile.description} + + )} + + ) +} + +function Wrapper({did, children}: {did: string; children: React.ReactNode}) { + return ( + + {children} + + ) +} diff --git a/src/components/ReportDialog/SelectReportOptionView.tsx b/src/components/ReportDialog/SelectReportOptionView.tsx index 4413cbe89..169c07d73 100644 --- a/src/components/ReportDialog/SelectReportOptionView.tsx +++ b/src/components/ReportDialog/SelectReportOptionView.tsx @@ -55,6 +55,9 @@ export function SelectReportOptionView({ } else if (props.params.type === 'feedgen') { title = _(msg`Report this feed`) description = _(msg`Why should this feed be reviewed?`) + } else if (props.params.type === 'starterpack') { + title = _(msg`Report this starter pack`) + description = _(msg`Why should this starter pack be reviewed?`) } else if (props.params.type === 'convoMessage') { title = _(msg`Report this message`) description = _(msg`Why should this message be reviewed?`) diff --git a/src/components/ReportDialog/types.ts b/src/components/ReportDialog/types.ts index ceabe0b90..3f43db4a1 100644 --- a/src/components/ReportDialog/types.ts +++ b/src/components/ReportDialog/types.ts @@ -4,7 +4,7 @@ export type ReportDialogProps = { control: Dialog.DialogOuterProps['control'] params: | { - type: 'post' | 'list' | 'feedgen' | 'other' + type: 'post' | 'list' | 'feedgen' | 'starterpack' | 'other' uri: string cid: string } diff --git a/src/components/StarterPack/Main/FeedsList.tsx b/src/components/StarterPack/Main/FeedsList.tsx new file mode 100644 index 000000000..e350a422c --- /dev/null +++ b/src/components/StarterPack/Main/FeedsList.tsx @@ -0,0 +1,68 @@ +import React, {useCallback} from 'react' +import {ListRenderItemInfo, View} from 'react-native' +import {AppBskyFeedDefs} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' + +import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' +import {isNative, isWeb} from 'platform/detection' +import {List, ListRef} from 'view/com/util/List' +import {SectionRef} from '#/screens/Profile/Sections/types' +import {atoms as a, useTheme} from '#/alf' +import * as FeedCard from '#/components/FeedCard' + +function keyExtractor(item: AppBskyFeedDefs.GeneratorView) { + return item.uri +} + +interface ProfilesListProps { + feeds: AppBskyFeedDefs.GeneratorView[] + headerHeight: number + scrollElRef: ListRef +} + +export const FeedsList = React.forwardRef( + function FeedsListImpl({feeds, headerHeight, scrollElRef}, ref) { + const [initialHeaderHeight] = React.useState(headerHeight) + const bottomBarOffset = useBottomBarOffset(20) + const t = useTheme() + + const onScrollToTop = useCallback(() => { + scrollElRef.current?.scrollToOffset({ + animated: isNative, + offset: -headerHeight, + }) + }, [scrollElRef, headerHeight]) + + React.useImperativeHandle(ref, () => ({ + scrollToTop: onScrollToTop, + })) + + const renderItem = ({item, index}: ListRenderItemInfo) => { + return ( + + + + ) + } + + return ( + + } + showsVerticalScrollIndicator={false} + desktopFixedHeight={true} + /> + ) + }, +) diff --git a/src/components/StarterPack/Main/ProfilesList.tsx b/src/components/StarterPack/Main/ProfilesList.tsx new file mode 100644 index 000000000..72d35fe2b --- /dev/null +++ b/src/components/StarterPack/Main/ProfilesList.tsx @@ -0,0 +1,119 @@ +import React, {useCallback} from 'react' +import {ListRenderItemInfo, View} from 'react-native' +import { + AppBskyActorDefs, + AppBskyGraphGetList, + AtUri, + ModerationOpts, +} from '@atproto/api' +import {InfiniteData, UseInfiniteQueryResult} from '@tanstack/react-query' + +import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' +import {isNative, isWeb} from 'platform/detection' +import {useSession} from 'state/session' +import {List, ListRef} from 'view/com/util/List' +import {SectionRef} from '#/screens/Profile/Sections/types' +import {atoms as a, useTheme} from '#/alf' +import {Default as ProfileCard} from '#/components/ProfileCard' + +function keyExtractor(item: AppBskyActorDefs.ProfileViewBasic, index: number) { + return `${item.did}-${index}` +} + +interface ProfilesListProps { + listUri: string + listMembersQuery: UseInfiniteQueryResult< + InfiniteData + > + moderationOpts: ModerationOpts + headerHeight: number + scrollElRef: ListRef +} + +export const ProfilesList = React.forwardRef( + function ProfilesListImpl( + {listUri, listMembersQuery, moderationOpts, headerHeight, scrollElRef}, + ref, + ) { + const t = useTheme() + const [initialHeaderHeight] = React.useState(headerHeight) + const bottomBarOffset = useBottomBarOffset(20) + const {currentAccount} = useSession() + + const [isPTRing, setIsPTRing] = React.useState(false) + + const {data, refetch} = listMembersQuery + + // The server returns these sorted by descending creation date, so we want to invert + const profiles = data?.pages + .flatMap(p => p.items.map(i => i.subject)) + .reverse() + const isOwn = new AtUri(listUri).host === currentAccount?.did + + const getSortedProfiles = () => { + if (!profiles) return + if (!isOwn) return profiles + + const myIndex = profiles.findIndex(p => p.did === currentAccount?.did) + return myIndex !== -1 + ? [ + profiles[myIndex], + ...profiles.slice(0, myIndex), + ...profiles.slice(myIndex + 1), + ] + : profiles + } + const onScrollToTop = useCallback(() => { + scrollElRef.current?.scrollToOffset({ + animated: isNative, + offset: -headerHeight, + }) + }, [scrollElRef, headerHeight]) + + React.useImperativeHandle(ref, () => ({ + scrollToTop: onScrollToTop, + })) + + const renderItem = ({ + item, + index, + }: ListRenderItemInfo) => { + return ( + + + + ) + } + + if (listMembersQuery) + return ( + + } + showsVerticalScrollIndicator={false} + desktopFixedHeight + refreshing={isPTRing} + onRefresh={async () => { + setIsPTRing(true) + await refetch() + setIsPTRing(false) + }} + /> + ) + }, +) diff --git a/src/components/StarterPack/ProfileStarterPacks.tsx b/src/components/StarterPack/ProfileStarterPacks.tsx new file mode 100644 index 000000000..096f04f2d --- /dev/null +++ b/src/components/StarterPack/ProfileStarterPacks.tsx @@ -0,0 +1,320 @@ +import React from 'react' +import { + findNodeHandle, + ListRenderItemInfo, + StyleProp, + View, + ViewStyle, +} from 'react-native' +import {AppBskyGraphDefs, AppBskyGraphGetActorStarterPacks} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' +import {InfiniteData, UseInfiniteQueryResult} from '@tanstack/react-query' + +import {logger} from '#/logger' +import {useGenerateStarterPackMutation} from 'lib/generate-starterpack' +import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NavigationProp} from 'lib/routes/types' +import {parseStarterPackUri} from 'lib/strings/starter-pack' +import {List, ListRef} from 'view/com/util/List' +import {Text} from 'view/com/util/text/Text' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' +import {LinearGradientBackground} from '#/components/LinearGradientBackground' +import {Loader} from '#/components/Loader' +import * as Prompt from '#/components/Prompt' +import {Default as StarterPackCard} from '#/components/StarterPack/StarterPackCard' +import {PlusSmall_Stroke2_Corner0_Rounded as Plus} from '../icons/Plus' + +interface SectionRef { + scrollToTop: () => void +} + +interface ProfileFeedgensProps { + starterPacksQuery: UseInfiniteQueryResult< + InfiniteData, + Error + > + scrollElRef: ListRef + headerOffset: number + enabled?: boolean + style?: StyleProp + testID?: string + setScrollViewTag: (tag: number | null) => void + isMe: boolean +} + +function keyExtractor(item: AppBskyGraphDefs.StarterPackView) { + return item.uri +} + +export const ProfileStarterPacks = React.forwardRef< + SectionRef, + ProfileFeedgensProps +>(function ProfileFeedgensImpl( + { + starterPacksQuery: query, + scrollElRef, + headerOffset, + enabled, + style, + testID, + setScrollViewTag, + isMe, + }, + ref, +) { + const t = useTheme() + const bottomBarOffset = useBottomBarOffset(100) + const [isPTRing, setIsPTRing] = React.useState(false) + const {data, refetch, isFetching, hasNextPage, fetchNextPage} = query + const {isTabletOrDesktop} = useWebMediaQueries() + + const items = data?.pages.flatMap(page => page.starterPacks) + + React.useImperativeHandle(ref, () => ({ + scrollToTop: () => {}, + })) + + const onRefresh = React.useCallback(async () => { + setIsPTRing(true) + try { + await refetch() + } catch (err) { + logger.error('Failed to refresh starter packs', {message: err}) + } + setIsPTRing(false) + }, [refetch, setIsPTRing]) + + const onEndReached = React.useCallback(async () => { + if (isFetching || !hasNextPage) return + + try { + await fetchNextPage() + } catch (err) { + logger.error('Failed to load more starter packs', {message: err}) + } + }, [isFetching, hasNextPage, fetchNextPage]) + + React.useEffect(() => { + if (enabled && scrollElRef.current) { + const nativeTag = findNodeHandle(scrollElRef.current) + setScrollViewTag(nativeTag) + } + }, [enabled, scrollElRef, setScrollViewTag]) + + const renderItem = ({ + item, + index, + }: ListRenderItemInfo) => { + return ( + + + + ) + } + + return ( + + + + ) +}) + +function CreateAnother() { + const {_} = useLingui() + const t = useTheme() + const navigation = useNavigation() + + return ( + + + + ) +} + +function Empty() { + const {_} = useLingui() + const t = useTheme() + const navigation = useNavigation() + const confirmDialogControl = useDialogControl() + const followersDialogControl = useDialogControl() + const errorDialogControl = useDialogControl() + + const [isGenerating, setIsGenerating] = React.useState(false) + + const {mutate: generateStarterPack} = useGenerateStarterPackMutation({ + onSuccess: ({uri}) => { + const parsed = parseStarterPackUri(uri) + if (parsed) { + navigation.push('StarterPack', { + name: parsed.name, + rkey: parsed.rkey, + }) + } + setIsGenerating(false) + }, + onError: e => { + logger.error('Failed to generate starter pack', {safeMessage: e}) + setIsGenerating(false) + if (e.name === 'NOT_ENOUGH_FOLLOWERS') { + followersDialogControl.open() + } else { + errorDialogControl.open() + } + }, + }) + + const generate = () => { + setIsGenerating(true) + generateStarterPack() + } + + return ( + + + + You haven't created a starter pack yet! + + + Starter packs let you easily share your favorite feeds and people with + your friends. + + + + + + + + + + Generate a starter pack + + + + Bluesky will choose a set of recommended accounts from people in + your network. + + + + + { + navigation.navigate('StarterPackWizard') + }} + /> + + + {}} + showCancel={false} + /> + + + ) +} diff --git a/src/components/StarterPack/QrCode.tsx b/src/components/StarterPack/QrCode.tsx new file mode 100644 index 000000000..08ee03d62 --- /dev/null +++ b/src/components/StarterPack/QrCode.tsx @@ -0,0 +1,119 @@ +import React from 'react' +import {View} from 'react-native' +import QRCode from 'react-native-qrcode-styled' +import ViewShot from 'react-native-view-shot' +import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' +import {Trans} from '@lingui/macro' + +import {isWeb} from 'platform/detection' +import {Logo} from 'view/icons/Logo' +import {Logotype} from 'view/icons/Logotype' +import {useTheme} from '#/alf' +import {atoms as a} from '#/alf' +import {LinearGradientBackground} from '#/components/LinearGradientBackground' +import {Text} from '#/components/Typography' + +interface Props { + starterPack: AppBskyGraphDefs.StarterPackView + link: string +} + +export const QrCode = React.forwardRef(function QrCode( + {starterPack, link}, + ref, +) { + const {record} = starterPack + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + + + + + {record.name} + + + + + Join the conversation + + + + + + + + on + + + + + + + + + + ) +}) + +export function QrCodeInner({link}: {link: string}) { + const t = useTheme() + + return ( + + ) +} diff --git a/src/components/StarterPack/QrCodeDialog.tsx b/src/components/StarterPack/QrCodeDialog.tsx new file mode 100644 index 000000000..580c6cc7c --- /dev/null +++ b/src/components/StarterPack/QrCodeDialog.tsx @@ -0,0 +1,201 @@ +import React from 'react' +import {View} from 'react-native' +import ViewShot from 'react-native-view-shot' +import * as FS from 'expo-file-system' +import {requestMediaLibraryPermissionsAsync} from 'expo-image-picker' +import * as Sharing from 'expo-sharing' +import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {nanoid} from 'nanoid/non-secure' + +import {logger} from '#/logger' +import {saveImageToMediaLibrary} from 'lib/media/manip' +import {logEvent} from 'lib/statsig/statsig' +import {isNative, isWeb} from 'platform/detection' +import * as Toast from '#/view/com/util/Toast' +import {atoms as a} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {DialogControlProps} from '#/components/Dialog' +import {Loader} from '#/components/Loader' +import {QrCode} from '#/components/StarterPack/QrCode' + +export function QrCodeDialog({ + starterPack, + link, + control, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + link?: string + control: DialogControlProps +}) { + const {_} = useLingui() + const [isProcessing, setIsProcessing] = React.useState(false) + + const ref = React.useRef(null) + + const getCanvas = (base64: string): Promise => { + return new Promise(resolve => { + const image = new Image() + image.onload = () => { + const canvas = document.createElement('canvas') + canvas.width = image.width + canvas.height = image.height + + const ctx = canvas.getContext('2d') + ctx?.drawImage(image, 0, 0) + resolve(canvas) + } + image.src = base64 + }) + } + + const onSavePress = async () => { + ref.current?.capture?.().then(async (uri: string) => { + if (isNative) { + const res = await requestMediaLibraryPermissionsAsync() + + if (!res) { + Toast.show( + _( + msg`You must grant access to your photo library to save a QR code`, + ), + ) + return + } + + const filename = `${FS.documentDirectory}/${nanoid(12)}.png` + + // Incase of a FS failure, don't crash the app + try { + await FS.copyAsync({from: uri, to: filename}) + await saveImageToMediaLibrary({uri: filename}) + await FS.deleteAsync(filename) + } catch (e: unknown) { + Toast.show(_(msg`An error occurred while saving the QR code!`)) + logger.error('Failed to save QR code', {error: e}) + return + } + } else { + setIsProcessing(true) + + if (!AppBskyGraphStarterpack.isRecord(starterPack.record)) { + return + } + + const canvas = await getCanvas(uri) + const imgHref = canvas + .toDataURL('image/png') + .replace('image/png', 'image/octet-stream') + + const link = document.createElement('a') + link.setAttribute( + 'download', + `${starterPack.record.name.replaceAll(' ', '_')}_Share_Card.png`, + ) + link.setAttribute('href', imgHref) + link.click() + } + + logEvent('starterPack:share', { + starterPack: starterPack.uri, + shareType: 'qrcode', + qrShareType: 'save', + }) + setIsProcessing(false) + Toast.show( + isWeb + ? _(msg`QR code has been downloaded!`) + : _(msg`QR code saved to your camera roll!`), + ) + control.close() + }) + } + + const onCopyPress = async () => { + setIsProcessing(true) + ref.current?.capture?.().then(async (uri: string) => { + const canvas = await getCanvas(uri) + // @ts-expect-error web only + canvas.toBlob((blob: Blob) => { + const item = new ClipboardItem({'image/png': blob}) + navigator.clipboard.write([item]) + }) + + logEvent('starterPack:share', { + starterPack: starterPack.uri, + shareType: 'qrcode', + qrShareType: 'copy', + }) + Toast.show(_(msg`QR code copied to your clipboard!`)) + setIsProcessing(false) + control.close() + }) + } + + const onSharePress = async () => { + ref.current?.capture?.().then(async (uri: string) => { + control.close(() => { + Sharing.shareAsync(uri, {mimeType: 'image/png', UTI: 'image/png'}).then( + () => { + logEvent('starterPack:share', { + starterPack: starterPack.uri, + shareType: 'qrcode', + qrShareType: 'share', + }) + }, + ) + }) + }) + } + + return ( + + + + + {!link ? ( + + + + ) : ( + <> + + {isProcessing ? ( + + + + ) : ( + + + + + )} + + )} + + + + ) +} diff --git a/src/components/StarterPack/ShareDialog.tsx b/src/components/StarterPack/ShareDialog.tsx new file mode 100644 index 000000000..23fa10fb3 --- /dev/null +++ b/src/components/StarterPack/ShareDialog.tsx @@ -0,0 +1,180 @@ +import React from 'react' +import {View} from 'react-native' +import * as FS from 'expo-file-system' +import {Image} from 'expo-image' +import {requestMediaLibraryPermissionsAsync} from 'expo-image-picker' +import {AppBskyGraphDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {nanoid} from 'nanoid/non-secure' + +import {logger} from '#/logger' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {saveImageToMediaLibrary} from 'lib/media/manip' +import {shareUrl} from 'lib/sharing' +import {logEvent} from 'lib/statsig/statsig' +import {getStarterPackOgCard} from 'lib/strings/starter-pack' +import {isNative, isWeb} from 'platform/detection' +import * as Toast from 'view/com/util/Toast' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {DialogControlProps} from '#/components/Dialog' +import * as Dialog from '#/components/Dialog' +import {Loader} from '#/components/Loader' +import {Text} from '#/components/Typography' + +interface Props { + starterPack: AppBskyGraphDefs.StarterPackView + link?: string + imageLoaded?: boolean + qrDialogControl: DialogControlProps + control: DialogControlProps +} + +export function ShareDialog(props: Props) { + return ( + + + + ) +} + +function ShareDialogInner({ + starterPack, + link, + imageLoaded, + qrDialogControl, + control, +}: Props) { + const {_} = useLingui() + const t = useTheme() + const {isTabletOrDesktop} = useWebMediaQueries() + + const imageUrl = getStarterPackOgCard(starterPack) + + const onShareLink = async () => { + if (!link) return + shareUrl(link) + logEvent('starterPack:share', { + starterPack: starterPack.uri, + shareType: 'link', + }) + control.close() + } + + const onSave = async () => { + const res = await requestMediaLibraryPermissionsAsync() + + if (!res) { + Toast.show( + _(msg`You must grant access to your photo library to save the image.`), + ) + return + } + + const cachePath = await Image.getCachePathAsync(imageUrl) + const filename = `${FS.documentDirectory}/${nanoid(12)}.png` + + if (!cachePath) { + Toast.show(_(msg`An error occurred while saving the image.`)) + return + } + + try { + await FS.copyAsync({from: cachePath, to: filename}) + await saveImageToMediaLibrary({uri: filename}) + await FS.deleteAsync(filename) + + Toast.show(_(msg`Image saved to your camera roll!`)) + control.close() + } catch (e: unknown) { + Toast.show(_(msg`An error occurred while saving the QR code!`)) + logger.error('Failed to save QR code', {error: e}) + return + } + } + + return ( + <> + + + {!imageLoaded || !link ? ( + + + + ) : ( + + + + Invite people to this starter pack! + + + + Share this starter pack and help people join your community on + Bluesky. + + + + + + + + {isNative && ( + + )} + + + )} + + + ) +} diff --git a/src/components/StarterPack/StarterPackCard.tsx b/src/components/StarterPack/StarterPackCard.tsx new file mode 100644 index 000000000..ab904d7ff --- /dev/null +++ b/src/components/StarterPack/StarterPackCard.tsx @@ -0,0 +1,117 @@ +import React from 'react' +import {View} from 'react-native' +import {AppBskyGraphStarterpack, AtUri} from '@atproto/api' +import {StarterPackViewBasic} from '@atproto/api/dist/client/types/app/bsky/graph/defs' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {sanitizeHandle} from 'lib/strings/handles' +import {useSession} from 'state/session' +import {atoms as a, useTheme} from '#/alf' +import {StarterPack} from '#/components/icons/StarterPack' +import {Link as InternalLink, LinkProps} from '#/components/Link' +import {Text} from '#/components/Typography' + +export function Default({starterPack}: {starterPack?: StarterPackViewBasic}) { + if (!starterPack) return null + return ( + + + + ) +} + +export function Notification({ + starterPack, +}: { + starterPack?: StarterPackViewBasic +}) { + if (!starterPack) return null + return ( + + + + ) +} + +export function Card({ + starterPack, + noIcon, + noDescription, +}: { + starterPack: StarterPackViewBasic + noIcon?: boolean + noDescription?: boolean +}) { + const {record, creator, joinedAllTimeCount} = starterPack + + const {_} = useLingui() + const t = useTheme() + const {currentAccount} = useSession() + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + + + {!noIcon ? : null} + + + {record.name} + + + + Starter pack by{' '} + {creator?.did === currentAccount?.did + ? _(msg`you`) + : `@${sanitizeHandle(creator.handle)}`} + + + + + {!noDescription && record.description ? ( + + {record.description} + + ) : null} + {!!joinedAllTimeCount && joinedAllTimeCount >= 50 && ( + + {joinedAllTimeCount} users have joined! + + )} + + ) +} + +export function Link({ + starterPack, + children, + ...rest +}: { + starterPack: StarterPackViewBasic +} & Omit) { + const {record} = starterPack + const {rkey, handleOrDid} = React.useMemo(() => { + const rkey = new AtUri(starterPack.uri).rkey + const {creator} = starterPack + return {rkey, handleOrDid: creator.handle || creator.did} + }, [starterPack]) + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + + {children} + + ) +} diff --git a/src/components/StarterPack/Wizard/ScreenTransition.tsx b/src/components/StarterPack/Wizard/ScreenTransition.tsx new file mode 100644 index 000000000..b7cd4e4c1 --- /dev/null +++ b/src/components/StarterPack/Wizard/ScreenTransition.tsx @@ -0,0 +1,31 @@ +import React from 'react' +import {StyleProp, ViewStyle} from 'react-native' +import Animated, { + FadeIn, + FadeOut, + SlideInLeft, + SlideInRight, +} from 'react-native-reanimated' + +import {isWeb} from 'platform/detection' + +export function ScreenTransition({ + direction, + style, + children, +}: { + direction: 'Backward' | 'Forward' + style?: StyleProp + children: React.ReactNode +}) { + const entering = direction === 'Forward' ? SlideInRight : SlideInLeft + + return ( + + {children} + + ) +} diff --git a/src/components/StarterPack/Wizard/WizardEditListDialog.tsx b/src/components/StarterPack/Wizard/WizardEditListDialog.tsx new file mode 100644 index 000000000..bf250ac35 --- /dev/null +++ b/src/components/StarterPack/Wizard/WizardEditListDialog.tsx @@ -0,0 +1,152 @@ +import React, {useRef} from 'react' +import type {ListRenderItemInfo} from 'react-native' +import {View} from 'react-native' +import {AppBskyActorDefs, ModerationOpts} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {BottomSheetFlatListMethods} from '@discord/bottom-sheet' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {isWeb} from 'platform/detection' +import {useSession} from 'state/session' +import {WizardAction, WizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, native, useTheme, web} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import { + WizardFeedCard, + WizardProfileCard, +} from '#/components/StarterPack/Wizard/WizardListCard' +import {Text} from '#/components/Typography' + +function keyExtractor( + item: AppBskyActorDefs.ProfileViewBasic | GeneratorView, + index: number, +) { + return `${item.did}-${index}` +} + +export function WizardEditListDialog({ + control, + state, + dispatch, + moderationOpts, + profile, +}: { + control: Dialog.DialogControlProps + state: WizardState + dispatch: (action: WizardAction) => void + moderationOpts: ModerationOpts + profile: AppBskyActorDefs.ProfileViewBasic +}) { + const {_} = useLingui() + const t = useTheme() + const {currentAccount} = useSession() + + const listRef = useRef(null) + + const getData = () => { + if (state.currentStep === 'Feeds') return state.feeds + + return [ + profile, + ...state.profiles.filter(p => p.did !== currentAccount?.did), + ] + } + + const renderItem = ({item}: ListRenderItemInfo) => + state.currentStep === 'Profiles' ? ( + + ) : ( + + ) + + return ( + + + + + + {state.currentStep === 'Profiles' ? ( + Edit People + ) : ( + Edit Feeds + )} + + + {isWeb && ( + + )} + + + } + stickyHeaderIndices={[0]} + style={[ + web([a.py_0, {height: '100vh', maxHeight: 600}, a.px_0]), + native({ + height: '100%', + paddingHorizontal: 0, + marginTop: 0, + paddingTop: 0, + borderTopLeftRadius: 40, + borderTopRightRadius: 40, + }), + ]} + webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} + keyboardDismissMode="on-drag" + removeClippedSubviews={true} + /> + + ) +} diff --git a/src/components/StarterPack/Wizard/WizardListCard.tsx b/src/components/StarterPack/Wizard/WizardListCard.tsx new file mode 100644 index 000000000..f1332011d --- /dev/null +++ b/src/components/StarterPack/Wizard/WizardListCard.tsx @@ -0,0 +1,182 @@ +import React from 'react' +import {Keyboard, View} from 'react-native' +import { + AppBskyActorDefs, + AppBskyFeedDefs, + moderateFeedGenerator, + moderateProfile, + ModerationOpts, + ModerationUI, +} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {DISCOVER_FEED_URI} from 'lib/constants' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {useSession} from 'state/session' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {WizardAction, WizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, useTheme} from '#/alf' +import * as Toggle from '#/components/forms/Toggle' +import {Checkbox} from '#/components/forms/Toggle' +import {Text} from '#/components/Typography' + +function WizardListCard({ + type, + displayName, + subtitle, + onPress, + avatar, + included, + disabled, + moderationUi, +}: { + type: 'user' | 'algo' + profile?: AppBskyActorDefs.ProfileViewBasic + feed?: AppBskyFeedDefs.GeneratorView + displayName: string + subtitle: string + onPress: () => void + avatar?: string + included?: boolean + disabled?: boolean + moderationUi: ModerationUI +}) { + const t = useTheme() + const {_} = useLingui() + + return ( + + + + + {displayName} + + + {subtitle} + + + + + ) +} + +export function WizardProfileCard({ + state, + dispatch, + profile, + moderationOpts, +}: { + state: WizardState + dispatch: (action: WizardAction) => void + profile: AppBskyActorDefs.ProfileViewBasic + moderationOpts: ModerationOpts +}) { + const {currentAccount} = useSession() + + const isMe = profile.did === currentAccount?.did + const included = isMe || state.profiles.some(p => p.did === profile.did) + const disabled = isMe || (!included && state.profiles.length >= 49) + const moderationUi = moderateProfile(profile, moderationOpts).ui('avatar') + const displayName = profile.displayName + ? sanitizeDisplayName(profile.displayName) + : `@${sanitizeHandle(profile.handle)}` + + const onPress = () => { + if (disabled) return + + Keyboard.dismiss() + if (profile.did === currentAccount?.did) return + + if (!included) { + dispatch({type: 'AddProfile', profile}) + } else { + dispatch({type: 'RemoveProfile', profileDid: profile.did}) + } + } + + return ( + + ) +} + +export function WizardFeedCard({ + generator, + state, + dispatch, + moderationOpts, +}: { + generator: GeneratorView + state: WizardState + dispatch: (action: WizardAction) => void + moderationOpts: ModerationOpts +}) { + const isDiscover = generator.uri === DISCOVER_FEED_URI + const included = isDiscover || state.feeds.some(f => f.uri === generator.uri) + const disabled = isDiscover || (!included && state.feeds.length >= 3) + const moderationUi = moderateFeedGenerator(generator, moderationOpts).ui( + 'avatar', + ) + + const onPress = () => { + if (disabled) return + + Keyboard.dismiss() + if (included) { + dispatch({type: 'RemoveFeed', feedUri: generator.uri}) + } else { + dispatch({type: 'AddFeed', feed: generator}) + } + } + + return ( + + ) +} diff --git a/src/components/forms/TextField.tsx b/src/components/forms/TextField.tsx index f7a827b49..d513a6db9 100644 --- a/src/components/forms/TextField.tsx +++ b/src/components/forms/TextField.tsx @@ -140,6 +140,7 @@ export function createInput(Component: typeof TextInput) { onChangeText, isInvalid, inputRef, + style, ...rest }: InputProps) { const t = useTheme() @@ -206,6 +207,7 @@ export function createInput(Component: typeof TextInput) { android({ paddingBottom: 16, }), + style, ]} /> diff --git a/src/components/hooks/useStarterPackEntry.native.ts b/src/components/hooks/useStarterPackEntry.native.ts new file mode 100644 index 000000000..b6e4ab05b --- /dev/null +++ b/src/components/hooks/useStarterPackEntry.native.ts @@ -0,0 +1,68 @@ +import React from 'react' + +import { + createStarterPackLinkFromAndroidReferrer, + httpStarterPackUriToAtUri, +} from 'lib/strings/starter-pack' +import {isAndroid} from 'platform/detection' +import {useHasCheckedForStarterPack} from 'state/preferences/used-starter-packs' +import {useSetActiveStarterPack} from 'state/shell/starter-pack' +import {DevicePrefs, Referrer} from '../../../modules/expo-bluesky-swiss-army' + +export function useStarterPackEntry() { + const [ready, setReady] = React.useState(false) + const setActiveStarterPack = useSetActiveStarterPack() + const hasCheckedForStarterPack = useHasCheckedForStarterPack() + + React.useEffect(() => { + if (ready) return + + // On Android, we cannot clear the referral link. It gets stored for 90 days and all we can do is query for it. So, + // let's just ensure we never check again after the first time. + if (hasCheckedForStarterPack) { + setReady(true) + return + } + + // Safety for Android. Very unlike this could happen, but just in case. The response should be nearly immediate + const timeout = setTimeout(() => { + setReady(true) + }, 500) + + ;(async () => { + let uri: string | null | undefined + + if (isAndroid) { + const res = await Referrer.getGooglePlayReferrerInfoAsync() + + if (res && res.installReferrer) { + uri = createStarterPackLinkFromAndroidReferrer(res.installReferrer) + } + } else { + const res = await DevicePrefs.getStringValueAsync( + 'starterPackUri', + true, + ) + + if (res) { + uri = httpStarterPackUriToAtUri(res) + DevicePrefs.setStringValueAsync('starterPackUri', null, true) + } + } + + if (uri) { + setActiveStarterPack({ + uri, + }) + } + + setReady(true) + })() + + return () => { + clearTimeout(timeout) + } + }, [ready, setActiveStarterPack, hasCheckedForStarterPack]) + + return ready +} diff --git a/src/components/hooks/useStarterPackEntry.ts b/src/components/hooks/useStarterPackEntry.ts new file mode 100644 index 000000000..dba801e09 --- /dev/null +++ b/src/components/hooks/useStarterPackEntry.ts @@ -0,0 +1,29 @@ +import React from 'react' + +import {httpStarterPackUriToAtUri} from 'lib/strings/starter-pack' +import {useSetActiveStarterPack} from 'state/shell/starter-pack' + +export function useStarterPackEntry() { + const [ready, setReady] = React.useState(false) + + const setActiveStarterPack = useSetActiveStarterPack() + + React.useEffect(() => { + const href = window.location.href + const atUri = httpStarterPackUriToAtUri(href) + + if (atUri) { + const url = new URL(href) + // Determines if an App Clip is loading this landing page + const isClip = url.searchParams.get('clip') === 'true' + setActiveStarterPack({ + uri: atUri, + isClip, + }) + } + + setReady(true) + }, [setActiveStarterPack]) + + return ready +} diff --git a/src/components/icons/QrCode.tsx b/src/components/icons/QrCode.tsx new file mode 100644 index 000000000..e841071f7 --- /dev/null +++ b/src/components/icons/QrCode.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const QrCode_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M3 5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm6 0H5v4h4V5ZM3 15a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4Zm6 0H5v4h4v-4ZM13 5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V5Zm6 0h-4v4h4V5ZM14 13a1 1 0 0 1 1 1v1h1a1 1 0 1 1 0 2h-2a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1Zm3 1a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2h-2a1 1 0 0 1-1-1Zm0 4a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2h-1v1a1 1 0 1 1-2 0v-2Z', +}) diff --git a/src/components/icons/StarterPack.tsx b/src/components/icons/StarterPack.tsx new file mode 100644 index 000000000..8c678bca4 --- /dev/null +++ b/src/components/icons/StarterPack.tsx @@ -0,0 +1,8 @@ +import {createMultiPathSVG} from './TEMPLATE' + +export const StarterPack = createMultiPathSVG({ + paths: [ + 'M11.26 5.227 5.02 6.899c-.734.197-1.17.95-.973 1.685l1.672 6.24c.197.734.951 1.17 1.685.973l6.24-1.672c.734-.197 1.17-.951.973-1.685L12.945 6.2a1.375 1.375 0 0 0-1.685-.973Zm-6.566.459a2.632 2.632 0 0 0-1.86 3.223l1.672 6.24a2.632 2.632 0 0 0 3.223 1.861l6.24-1.672a2.631 2.631 0 0 0 1.861-3.223l-1.672-6.24a2.632 2.632 0 0 0-3.223-1.861l-6.24 1.672Z', + 'M15.138 18.411a4.606 4.606 0 1 0 0-9.211 4.606 4.606 0 0 0 0 9.211Zm0 1.257a5.862 5.862 0 1 0 0-11.724 5.862 5.862 0 0 0 0 11.724Z', + ], +}) diff --git a/src/components/icons/TEMPLATE.tsx b/src/components/icons/TEMPLATE.tsx index f49c4280b..47a5c36b2 100644 --- a/src/components/icons/TEMPLATE.tsx +++ b/src/components/icons/TEMPLATE.tsx @@ -30,7 +30,7 @@ export const IconTemplate_Stroke2_Corner0_Rounded = React.forwardRef( export function createSinglePathSVG({path}: {path: string}) { return React.forwardRef(function LogoImpl(props, ref) { - const {fill, size, style, ...rest} = useCommonSVGProps(props) + const {fill, size, style, gradient, ...rest} = useCommonSVGProps(props) return ( + {gradient} ) }) } + +export function createMultiPathSVG({paths}: {paths: string[]}) { + return React.forwardRef(function LogoImpl(props, ref) { + const {fill, size, style, gradient, ...rest} = useCommonSVGProps(props) + + return ( + + {gradient} + {paths.map((path, i) => ( + + ))} + + ) + }) +} diff --git a/src/components/icons/common.ts b/src/components/icons/common.ts deleted file mode 100644 index 669c157f5..000000000 --- a/src/components/icons/common.ts +++ /dev/null @@ -1,32 +0,0 @@ -import {StyleSheet, TextProps} from 'react-native' -import type {PathProps, SvgProps} from 'react-native-svg' - -import {tokens} from '#/alf' - -export type Props = { - fill?: PathProps['fill'] - style?: TextProps['style'] - size?: keyof typeof sizes -} & Omit - -export const sizes = { - xs: 12, - sm: 16, - md: 20, - lg: 24, - xl: 28, -} - -export function useCommonSVGProps(props: Props) { - const {fill, size, ...rest} = props - const style = StyleSheet.flatten(rest.style) - const _fill = fill || style?.color || tokens.color.blue_500 - const _size = Number(size ? sizes[size] : rest.width || sizes.md) - - return { - fill: _fill, - size: _size, - style, - ...rest, - } -} diff --git a/src/components/icons/common.tsx b/src/components/icons/common.tsx new file mode 100644 index 000000000..662718338 --- /dev/null +++ b/src/components/icons/common.tsx @@ -0,0 +1,59 @@ +import React from 'react' +import {StyleSheet, TextProps} from 'react-native' +import type {PathProps, SvgProps} from 'react-native-svg' +import {Defs, LinearGradient, Stop} from 'react-native-svg' +import {nanoid} from 'nanoid/non-secure' + +import {tokens} from '#/alf' + +export type Props = { + fill?: PathProps['fill'] + style?: TextProps['style'] + size?: keyof typeof sizes + gradient?: keyof typeof tokens.gradients +} & Omit + +export const sizes = { + xs: 12, + sm: 16, + md: 20, + lg: 24, + xl: 28, +} + +export function useCommonSVGProps(props: Props) { + const {fill, size, gradient, ...rest} = props + const style = StyleSheet.flatten(rest.style) + const _size = Number(size ? sizes[size] : rest.width || sizes.md) + let _fill = fill || style?.color || tokens.color.blue_500 + let gradientDef = null + + if (gradient && tokens.gradients[gradient]) { + const id = gradient + '_' + nanoid() + const config = tokens.gradients[gradient] + _fill = `url(#${id})` + gradientDef = ( + + + {config.values.map(([stop, fill]) => ( + + ))} + + + ) + } + + return { + fill: _fill, + size: _size, + style, + gradient: gradientDef, + ...rest, + } +} diff --git a/src/lib/browser.native.ts b/src/lib/browser.native.ts index fb9be56f1..8e045138c 100644 --- a/src/lib/browser.native.ts +++ b/src/lib/browser.native.ts @@ -1,3 +1,4 @@ export const isSafari = false export const isFirefox = false export const isTouchDevice = true +export const isAndroidWeb = false diff --git a/src/lib/browser.ts b/src/lib/browser.ts index d178a9a64..08c43fbfd 100644 --- a/src/lib/browser.ts +++ b/src/lib/browser.ts @@ -5,3 +5,5 @@ export const isSafari = /^((?!chrome|android).)*safari/i.test( export const isFirefox = /firefox|fxios/i.test(navigator.userAgent) export const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 1 +export const isAndroidWeb = + /android/i.test(navigator.userAgent) && isTouchDevice diff --git a/src/lib/generate-starterpack.ts b/src/lib/generate-starterpack.ts new file mode 100644 index 000000000..64d30a954 --- /dev/null +++ b/src/lib/generate-starterpack.ts @@ -0,0 +1,164 @@ +import { + AppBskyActorDefs, + AppBskyGraphGetStarterPack, + BskyAgent, + Facet, +} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useMutation} from '@tanstack/react-query' + +import {until} from 'lib/async/until' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {enforceLen} from 'lib/strings/helpers' +import {useAgent} from 'state/session' + +export const createStarterPackList = async ({ + name, + description, + descriptionFacets, + profiles, + agent, +}: { + name: string + description?: string + descriptionFacets?: Facet[] + profiles: AppBskyActorDefs.ProfileViewBasic[] + agent: BskyAgent +}): Promise<{uri: string; cid: string}> => { + if (profiles.length === 0) throw new Error('No profiles given') + + const list = await agent.app.bsky.graph.list.create( + {repo: agent.session!.did}, + { + name, + description, + descriptionFacets, + avatar: undefined, + createdAt: new Date().toISOString(), + purpose: 'app.bsky.graph.defs#referencelist', + }, + ) + if (!list) throw new Error('List creation failed') + await agent.com.atproto.repo.applyWrites({ + repo: agent.session!.did, + writes: [ + createListItem({did: agent.session!.did, listUri: list.uri}), + ].concat( + profiles + // Ensure we don't have ourselves in this list twice + .filter(p => p.did !== agent.session!.did) + .map(p => createListItem({did: p.did, listUri: list.uri})), + ), + }) + + return list +} + +export function useGenerateStarterPackMutation({ + onSuccess, + onError, +}: { + onSuccess: ({uri, cid}: {uri: string; cid: string}) => void + onError: (e: Error) => void +}) { + const {_} = useLingui() + const agent = useAgent() + const starterPackString = _(msg`Starter Pack`) + + return useMutation<{uri: string; cid: string}, Error, void>({ + mutationFn: async () => { + let profile: AppBskyActorDefs.ProfileViewBasic | undefined + let profiles: AppBskyActorDefs.ProfileViewBasic[] | undefined + + await Promise.all([ + (async () => { + profile = ( + await agent.app.bsky.actor.getProfile({ + actor: agent.session!.did, + }) + ).data + })(), + (async () => { + profiles = ( + await agent.app.bsky.actor.searchActors({ + q: encodeURIComponent('*'), + limit: 49, + }) + ).data.actors.filter(p => p.viewer?.following) + })(), + ]) + + if (!profile || !profiles) { + throw new Error('ERROR_DATA') + } + + // We include ourselves when we make the list + if (profiles.length < 7) { + throw new Error('NOT_ENOUGH_FOLLOWERS') + } + + const displayName = enforceLen( + profile.displayName + ? sanitizeDisplayName(profile.displayName) + : `@${sanitizeHandle(profile.handle)}`, + 25, + true, + ) + const starterPackName = `${displayName}'s ${starterPackString}` + + const list = await createStarterPackList({ + name: starterPackName, + profiles, + agent, + }) + + return await agent.app.bsky.graph.starterpack.create( + { + repo: agent.session!.did, + }, + { + name: starterPackName, + list: list.uri, + createdAt: new Date().toISOString(), + }, + ) + }, + onSuccess: async data => { + await whenAppViewReady(agent, data.uri, v => { + return typeof v?.data.starterPack.uri === 'string' + }) + onSuccess(data) + }, + onError: error => { + onError(error) + }, + }) +} + +function createListItem({did, listUri}: {did: string; listUri: string}) { + return { + $type: 'com.atproto.repo.applyWrites#create', + collection: 'app.bsky.graph.listitem', + value: { + $type: 'app.bsky.graph.listitem', + subject: did, + list: listUri, + createdAt: new Date().toISOString(), + }, + } +} + +async function whenAppViewReady( + agent: BskyAgent, + uri: string, + fn: (res?: AppBskyGraphGetStarterPack.Response) => boolean, +) { + await until( + 5, // 5 tries + 1e3, // 1s delay between tries + fn, + () => agent.app.bsky.graph.getStarterPack({starterPack: uri}), + ) +} diff --git a/src/lib/hooks/useBottomBarOffset.ts b/src/lib/hooks/useBottomBarOffset.ts new file mode 100644 index 000000000..945c98062 --- /dev/null +++ b/src/lib/hooks/useBottomBarOffset.ts @@ -0,0 +1,14 @@ +import {useSafeAreaInsets} from 'react-native-safe-area-context' + +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {clamp} from 'lib/numbers' +import {isWeb} from 'platform/detection' + +export function useBottomBarOffset(modifier: number = 0) { + const {isTabletOrDesktop} = useWebMediaQueries() + const {bottom: bottomInset} = useSafeAreaInsets() + return ( + (isWeb && isTabletOrDesktop ? 0 : clamp(60 + bottomInset, 60, 75)) + + modifier + ) +} diff --git a/src/lib/hooks/useNotificationHandler.ts b/src/lib/hooks/useNotificationHandler.ts index 347062beb..e4e7e1474 100644 --- a/src/lib/hooks/useNotificationHandler.ts +++ b/src/lib/hooks/useNotificationHandler.ts @@ -26,6 +26,7 @@ type NotificationReason = | 'reply' | 'quote' | 'chat-message' + | 'starterpack-joined' type NotificationPayload = | { @@ -142,6 +143,7 @@ export function useNotificationsHandler() { case 'mention': case 'quote': case 'reply': + case 'starterpack-joined': resetToTab('NotificationsTab') break // TODO implement these after we have an idea of how to handle each individual case diff --git a/src/lib/moderation/create-sanitized-display-name.ts b/src/lib/moderation/create-sanitized-display-name.ts new file mode 100644 index 000000000..16135b274 --- /dev/null +++ b/src/lib/moderation/create-sanitized-display-name.ts @@ -0,0 +1,21 @@ +import {AppBskyActorDefs} from '@atproto/api' + +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' + +export function createSanitizedDisplayName( + profile: + | AppBskyActorDefs.ProfileViewBasic + | AppBskyActorDefs.ProfileViewDetailed, + noAt = false, +) { + if (profile.displayName != null && profile.displayName !== '') { + return sanitizeDisplayName(profile.displayName) + } else { + let sanitizedHandle = sanitizeHandle(profile.handle) + if (!noAt) { + sanitizedHandle = `@${sanitizedHandle}` + } + return sanitizedHandle + } +} diff --git a/src/lib/moderation/useReportOptions.ts b/src/lib/moderation/useReportOptions.ts index 54b727b76..91656857e 100644 --- a/src/lib/moderation/useReportOptions.ts +++ b/src/lib/moderation/useReportOptions.ts @@ -13,6 +13,7 @@ interface ReportOptions { account: ReportOption[] post: ReportOption[] list: ReportOption[] + starterpack: ReportOption[] feedgen: ReportOption[] other: ReportOption[] convoMessage: ReportOption[] @@ -94,6 +95,14 @@ export function useReportOptions(): ReportOptions { }, ...common, ], + starterpack: [ + { + reason: ComAtprotoModerationDefs.REASONVIOLATION, + title: _(msg`Name or Description Violates Community Standards`), + description: _(msg`Terms used violate community standards`), + }, + ...common, + ], feedgen: [ { reason: ComAtprotoModerationDefs.REASONVIOLATION, diff --git a/src/lib/routes/links.ts b/src/lib/routes/links.ts index 9dfdab909..56b716677 100644 --- a/src/lib/routes/links.ts +++ b/src/lib/routes/links.ts @@ -1,3 +1,5 @@ +import {AppBskyGraphDefs, AtUri} from '@atproto/api' + import {isInvalidHandle} from 'lib/strings/handles' export function makeProfileLink( @@ -35,3 +37,18 @@ export function makeSearchLink(props: {query: string; from?: 'me' | string}) { props.query + (props.from ? ` from:${props.from}` : ''), )}` } + +export function makeStarterPackLink( + starterPackOrName: + | AppBskyGraphDefs.StarterPackViewBasic + | AppBskyGraphDefs.StarterPackView + | string, + rkey?: string, +) { + if (typeof starterPackOrName === 'string') { + return `https://bsky.app/start/${starterPackOrName}/${rkey}` + } else { + const uriRkey = new AtUri(starterPackOrName.uri).rkey + return `https://bsky.app/start/${starterPackOrName.creator.handle}/${uriRkey}` + } +} diff --git a/src/lib/routes/types.ts b/src/lib/routes/types.ts index 403c2bb67..8a173b675 100644 --- a/src/lib/routes/types.ts +++ b/src/lib/routes/types.ts @@ -42,6 +42,12 @@ export type CommonNavigatorParams = { MessagesConversation: {conversation: string; embed?: string} MessagesSettings: undefined Feeds: undefined + Start: {name: string; rkey: string} + StarterPack: {name: string; rkey: string; new?: boolean} + StarterPackWizard: undefined + StarterPackEdit: { + rkey?: string + } } export type BottomTabNavigatorParams = CommonNavigatorParams & { @@ -93,6 +99,12 @@ export type AllNavigatorParams = CommonNavigatorParams & { Hashtag: {tag: string; author?: string} MessagesTab: undefined Messages: {animation?: 'push' | 'pop'} + Start: {name: string; rkey: string} + StarterPack: {name: string; rkey: string; new?: boolean} + StarterPackWizard: undefined + StarterPackEdit: { + rkey?: string + } } // NOTE diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index 2e8cedb54..07ed8c0ca 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -53,7 +53,14 @@ export type LogEvents = { } 'onboarding:moderation:nextPressed': {} 'onboarding:profile:nextPressed': {} - 'onboarding:finished:nextPressed': {} + 'onboarding:finished:nextPressed': { + usedStarterPack: boolean + starterPackName?: string + starterPackCreator?: string + starterPackUri?: string + profilesFollowed: number + feedsPinned: number + } 'onboarding:finished:avatarResult': { avatarResult: 'default' | 'created' | 'uploaded' } @@ -61,7 +68,12 @@ export type LogEvents = { feedUrl: string feedType: string index: number - reason: 'focus' | 'tabbar-click' | 'pager-swipe' | 'desktop-sidebar-click' + reason: + | 'focus' + | 'tabbar-click' + | 'pager-swipe' + | 'desktop-sidebar-click' + | 'starter-pack-initial-feed' } 'feed:endReached:sampled': { feedUrl: string @@ -134,6 +146,7 @@ export type LogEvents = { | 'ProfileMenu' | 'ProfileHoverCard' | 'AvatarButton' + | 'StarterPackProfilesList' } 'profile:unfollow': { logContext: @@ -146,6 +159,7 @@ export type LogEvents = { | 'ProfileHoverCard' | 'Chat' | 'AvatarButton' + | 'StarterPackProfilesList' } 'chat:create': { logContext: 'ProfileHeader' | 'NewChatDialog' | 'SendViaChatDialog' @@ -157,6 +171,23 @@ export type LogEvents = { | 'ChatsList' | 'SendViaChatDialog' } + 'starterPack:share': { + starterPack: string + shareType: 'link' | 'qrcode' + qrShareType?: 'save' | 'copy' | 'share' + } + 'starterPack:followAll': { + logContext: 'StarterPackProfilesList' | 'Onboarding' + starterPack: string + count: number + } + 'starterPack:delete': {} + 'starterPack:create': { + setName: boolean + setDescription: boolean + profilesCount: number + feedsCount: number + } 'test:all:always': {} 'test:all:sometimes': {} diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index 46ef934ef..bf2484ccb 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -5,3 +5,4 @@ export type Gate = | 'request_notifications_permission_after_onboarding_v2' | 'show_avi_follow_button' | 'show_follow_back_label_v2' + | 'starter_packs_enabled' diff --git a/src/lib/strings/starter-pack.ts b/src/lib/strings/starter-pack.ts new file mode 100644 index 000000000..489d0b923 --- /dev/null +++ b/src/lib/strings/starter-pack.ts @@ -0,0 +1,101 @@ +import {AppBskyGraphDefs, AtUri} from '@atproto/api' + +export function createStarterPackLinkFromAndroidReferrer( + referrerQueryString: string, +): string | null { + try { + // The referrer string is just some URL parameters, so lets add them to a fake URL + const url = new URL('http://throwaway.com/?' + referrerQueryString) + const utmContent = url.searchParams.get('utm_content') + const utmSource = url.searchParams.get('utm_source') + + if (!utmContent) return null + if (utmSource !== 'bluesky') return null + + // This should be a string like `starterpack_haileyok.com_rkey` + const contentParts = utmContent.split('_') + + if (contentParts[0] !== 'starterpack') return null + if (contentParts.length !== 3) return null + + return `at://${contentParts[1]}/app.bsky.graph.starterpack/${contentParts[2]}` + } catch (e) { + return null + } +} + +export function parseStarterPackUri(uri?: string): { + name: string + rkey: string +} | null { + if (!uri) return null + + try { + if (uri.startsWith('at://')) { + const atUri = new AtUri(uri) + if (atUri.collection !== 'app.bsky.graph.starterpack') return null + if (atUri.rkey) { + return { + name: atUri.hostname, + rkey: atUri.rkey, + } + } + return null + } else { + const url = new URL(uri) + const parts = url.pathname.split('/') + const [_, path, name, rkey] = parts + + if (parts.length !== 4) return null + if (path !== 'starter-pack' && path !== 'start') return null + if (!name || !rkey) return null + return { + name, + rkey, + } + } + } catch (e) { + return null + } +} + +export function createStarterPackGooglePlayUri( + name: string, + rkey: string, +): string | null { + if (!name || !rkey) return null + return `https://play.google.com/store/apps/details?id=xyz.blueskyweb.app&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_${name}_${rkey}` +} + +export function httpStarterPackUriToAtUri(httpUri?: string): string | null { + if (!httpUri) return null + + const parsed = parseStarterPackUri(httpUri) + if (!parsed) return null + + if (httpUri.startsWith('at://')) return httpUri + + return `at://${parsed.name}/app.bsky.graph.starterpack/${parsed.rkey}` +} + +export function getStarterPackOgCard( + didOrStarterPack: AppBskyGraphDefs.StarterPackView | string, + rkey?: string, +) { + if (typeof didOrStarterPack === 'string') { + return `https://ogcard.cdn.bsky.app/start/${didOrStarterPack}/${rkey}` + } else { + const rkey = new AtUri(didOrStarterPack.uri).rkey + return `https://ogcard.cdn.bsky.app/start/${didOrStarterPack.creator.did}/${rkey}` + } +} + +export function createStarterPackUri({ + did, + rkey, +}: { + did: string + rkey: string +}): string | null { + return new AtUri(`at://${did}/app.bsky.graph.starterpack/${rkey}`).toString() +} diff --git a/src/routes.ts b/src/routes.ts index de711f5dc..f241d37a0 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -41,4 +41,8 @@ export const router = new Router({ Messages: '/messages', MessagesSettings: '/messages/settings', MessagesConversation: '/messages/:conversation', + Start: '/start/:name/:rkey', + StarterPackEdit: '/starter-pack/edit/:rkey', + StarterPack: '/starter-pack/:name/:rkey', + StarterPackWizard: '/starter-pack/create', }) diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index dfa10668b..7cfd38e34 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -21,6 +21,7 @@ import {logger} from '#/logger' import {useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useRequestNotificationsPermission} from 'lib/notifications/notifications' +import {useSetHasCheckedForStarterPack} from 'state/preferences/used-starter-packs' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {FormError} from '#/components/forms/FormError' @@ -69,6 +70,7 @@ export const LoginForm = ({ const {login} = useSessionApi() const requestNotificationsPermission = useRequestNotificationsPermission() const {setShowLoggedOut} = useLoggedOutViewControls() + const setHasCheckedForStarterPack = useSetHasCheckedForStarterPack() const onPressSelectService = React.useCallback(() => { Keyboard.dismiss() @@ -116,6 +118,7 @@ export const LoginForm = ({ 'LoginForm', ) setShowLoggedOut(false) + setHasCheckedForStarterPack(true) requestNotificationsPermission('Login') } catch (e: any) { const errMsg = e.toString() diff --git a/src/screens/Login/ScreenTransition.tsx b/src/screens/Login/ScreenTransition.tsx index ab0a22367..6fad26680 100644 --- a/src/screens/Login/ScreenTransition.tsx +++ b/src/screens/Login/ScreenTransition.tsx @@ -1,9 +1,16 @@ import React from 'react' +import {StyleProp, ViewStyle} from 'react-native' import Animated, {FadeInRight, FadeOutLeft} from 'react-native-reanimated' -export function ScreenTransition({children}: {children: React.ReactNode}) { +export function ScreenTransition({ + style, + children, +}: { + style?: StyleProp + children: React.ReactNode +}) { return ( - + {children} ) diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index c75dd4fa7..c7a459659 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -1,11 +1,18 @@ import React from 'react' import {View} from 'react-native' +import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' +import {SavedFeed} from '@atproto/api/dist/client/types/app/bsky/actor/defs' +import {TID} from '@atproto/common-web' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' import {useAnalytics} from '#/lib/analytics/analytics' -import {BSKY_APP_ACCOUNT_DID} from '#/lib/constants' +import { + BSKY_APP_ACCOUNT_DID, + DISCOVER_SAVED_FEED, + TIMELINE_SAVED_FEED, +} from '#/lib/constants' import {logEvent} from '#/lib/statsig/statsig' import {logger} from '#/logger' import {preferencesQueryKey} from '#/state/queries/preferences' @@ -14,6 +21,11 @@ import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' import {uploadBlob} from 'lib/api' import {useRequestNotificationsPermission} from 'lib/notifications/notifications' +import {useSetHasCheckedForStarterPack} from 'state/preferences/used-starter-packs' +import { + useActiveStarterPack, + useSetActiveStarterPack, +} from 'state/shell/starter-pack' import { DescriptionText, OnboardingControls, @@ -41,17 +53,74 @@ export function StepFinished() { const queryClient = useQueryClient() const agent = useAgent() const requestNotificationsPermission = useRequestNotificationsPermission() + const activeStarterPack = useActiveStarterPack() + const setActiveStarterPack = useSetActiveStarterPack() + const setHasCheckedForStarterPack = useSetHasCheckedForStarterPack() const finishOnboarding = React.useCallback(async () => { setSaving(true) - const {interestsStepResults, profileStepResults} = state - const {selectedInterests} = interestsStepResults + let starterPack: AppBskyGraphDefs.StarterPackView | undefined + let listItems: AppBskyGraphDefs.ListItemView[] | undefined + + if (activeStarterPack?.uri) { + try { + const spRes = await agent.app.bsky.graph.getStarterPack({ + starterPack: activeStarterPack.uri, + }) + starterPack = spRes.data.starterPack + + if (starterPack.list) { + const listRes = await agent.app.bsky.graph.getList({ + list: starterPack.list.uri, + limit: 50, + }) + listItems = listRes.data.items + } + } catch (e) { + logger.error('Failed to fetch starter pack', {safeMessage: e}) + // don't tell the user, just get them through onboarding. + } + } + try { + const {interestsStepResults, profileStepResults} = state + const {selectedInterests} = interestsStepResults + await Promise.all([ - bulkWriteFollows(agent, [BSKY_APP_ACCOUNT_DID]), + bulkWriteFollows(agent, [ + BSKY_APP_ACCOUNT_DID, + ...(listItems?.map(i => i.subject.did) ?? []), + ]), (async () => { + // Interests need to get saved first, then we can write the feeds to prefs await agent.setInterestsPref({tags: selectedInterests}) + + // Default feeds that every user should have pinned when landing in the app + const feedsToSave: SavedFeed[] = [ + { + ...DISCOVER_SAVED_FEED, + id: TID.nextStr(), + }, + { + ...TIMELINE_SAVED_FEED, + id: TID.nextStr(), + }, + ] + + // Any starter pack feeds will be pinned _after_ the defaults + if (starterPack && starterPack.feeds?.length) { + feedsToSave.concat( + starterPack.feeds.map(f => ({ + type: 'feed', + value: f.uri, + pinned: true, + id: TID.nextStr(), + })), + ) + } + + await agent.overwriteSavedFeeds(feedsToSave) })(), (async () => { const {imageUri, imageMime} = profileStepResults @@ -63,9 +132,24 @@ export function StepFinished() { if (res.data.blob) { existing.avatar = res.data.blob } + + if (starterPack) { + existing.joinedViaStarterPack = { + uri: starterPack.uri, + cid: starterPack.cid, + } + } + + existing.displayName = '' + // HACKFIX + // creating a bunch of identical profile objects is breaking the relay + // tossing this unspecced field onto it to reduce the size of the problem + // -prf + existing.createdAt = new Date().toISOString() return existing }) } + logEvent('onboarding:finished:avatarResult', { avatarResult: profileStepResults.isCreatedAvatar ? 'created' @@ -96,19 +180,40 @@ export function StepFinished() { }) setSaving(false) + setActiveStarterPack(undefined) + setHasCheckedForStarterPack(true) dispatch({type: 'finish'}) onboardDispatch({type: 'finish'}) track('OnboardingV2:StepFinished:End') track('OnboardingV2:Complete') - logEvent('onboarding:finished:nextPressed', {}) + logEvent('onboarding:finished:nextPressed', { + usedStarterPack: Boolean(starterPack), + starterPackName: AppBskyGraphStarterpack.isRecord(starterPack?.record) + ? starterPack.record.name + : undefined, + starterPackCreator: starterPack?.creator.did, + starterPackUri: starterPack?.uri, + profilesFollowed: listItems?.length ?? 0, + feedsPinned: starterPack?.feeds?.length ?? 0, + }) + if (starterPack && listItems?.length) { + logEvent('starterPack:followAll', { + logContext: 'Onboarding', + starterPack: starterPack.uri, + count: listItems?.length, + }) + } }, [ - state, queryClient, agent, dispatch, onboardDispatch, track, + activeStarterPack, + state, requestNotificationsPermission, + setActiveStarterPack, + setHasCheckedForStarterPack, ]) React.useEffect(() => { diff --git a/src/screens/Profile/Header/DisplayName.tsx b/src/screens/Profile/Header/DisplayName.tsx index b6d88db71..c63658a44 100644 --- a/src/screens/Profile/Header/DisplayName.tsx +++ b/src/screens/Profile/Header/DisplayName.tsx @@ -1,10 +1,10 @@ import React from 'react' import {View} from 'react-native' import {AppBskyActorDefs, ModerationDecision} from '@atproto/api' -import {sanitizeHandle} from 'lib/strings/handles' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {Shadow} from '#/state/cache/types' +import {Shadow} from '#/state/cache/types' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' import {atoms as a, useTheme} from '#/alf' import {Text} from '#/components/Typography' diff --git a/src/screens/Signup/index.tsx b/src/screens/Signup/index.tsx index 2cc1bcab0..3203d443c 100644 --- a/src/screens/Signup/index.tsx +++ b/src/screens/Signup/index.tsx @@ -1,6 +1,11 @@ import React from 'react' import {View} from 'react-native' -import {LayoutAnimationConfig} from 'react-native-reanimated' +import Animated, { + FadeIn, + FadeOut, + LayoutAnimationConfig, +} from 'react-native-reanimated' +import {AppBskyGraphStarterpack} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -11,6 +16,8 @@ import {createFullHandle} from '#/lib/strings/handles' import {logger} from '#/logger' import {useServiceQuery} from '#/state/queries/service' import {useAgent} from '#/state/session' +import {useStarterPackQuery} from 'state/queries/starter-packs' +import {useActiveStarterPack} from 'state/shell/starter-pack' import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' import { initialState, @@ -26,6 +33,7 @@ import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {AppLanguageDropdown} from '#/components/AppLanguageDropdown' import {Button, ButtonText} from '#/components/Button' import {Divider} from '#/components/Divider' +import {LinearGradientBackground} from '#/components/LinearGradientBackground' import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' @@ -38,6 +46,11 @@ export function Signup({onPressBack}: {onPressBack: () => void}) { const {gtMobile} = useBreakpoints() const agent = useAgent() + const activeStarterPack = useActiveStarterPack() + const {data: starterPack} = useStarterPackQuery({ + uri: activeStarterPack?.uri, + }) + const { data: serviceInfo, isFetching, @@ -142,6 +155,31 @@ export function Signup({onPressBack}: {onPressBack: () => void}) { description={_(msg`We're so excited to have you join us!`)} scrollable> + {state.activeStep === SignupStep.INFO && + starterPack && + AppBskyGraphStarterpack.isRecord(starterPack.record) ? ( + + + + {starterPack.record.name} + + + {starterPack.feeds?.length ? ( + + You'll follow the suggested users and feeds once you + finish creating your account! + + ) : ( + + You'll follow the suggested users once you finish creating + your account! + + )} + + + + ) : null} void +}) { + const moderationOpts = useModerationOpts() + const activeStarterPack = useActiveStarterPack() + + const {data: starterPack, isError: isErrorStarterPack} = useStarterPackQuery({ + uri: activeStarterPack?.uri, + }) + + const isValid = + starterPack && + starterPack.list && + AppBskyGraphDefs.validateStarterPackView(starterPack) && + AppBskyGraphStarterpack.validateRecord(starterPack.record) + + React.useEffect(() => { + if (isErrorStarterPack || (starterPack && !isValid)) { + setScreenState(LoggedOutScreenState.S_LoginOrCreateAccount) + } + }, [isErrorStarterPack, setScreenState, isValid, starterPack]) + + if (!starterPack || !isValid || !moderationOpts) { + return + } + + return ( + + ) +} + +function LandingScreenLoaded({ + starterPack, + setScreenState, + // TODO apply this to profile card + + moderationOpts, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + setScreenState: (state: LoggedOutScreenState) => void + moderationOpts: ModerationOpts +}) { + const {record, creator, listItemsSample, feeds, joinedWeekCount} = starterPack + const {_} = useLingui() + const t = useTheme() + const activeStarterPack = useActiveStarterPack() + const setActiveStarterPack = useSetActiveStarterPack() + const {isTabletOrDesktop} = useWebMediaQueries() + const androidDialogControl = useDialogControl() + + const [appClipOverlayVisible, setAppClipOverlayVisible] = + React.useState(false) + + const listItemsCount = starterPack.list?.listItemCount ?? 0 + + const onContinue = () => { + setActiveStarterPack({ + uri: starterPack.uri, + }) + setScreenState(LoggedOutScreenState.S_CreateAccount) + } + + const onJoinPress = () => { + if (activeStarterPack?.isClip) { + setAppClipOverlayVisible(true) + postAppClipMessage({ + action: 'present', + }) + } else if (isAndroidWeb) { + androidDialogControl.open() + } else { + onContinue() + } + } + + const onJoinWithoutPress = () => { + if (activeStarterPack?.isClip) { + setAppClipOverlayVisible(true) + postAppClipMessage({ + action: 'present', + }) + } else { + setActiveStarterPack(undefined) + setScreenState(LoggedOutScreenState.S_CreateAccount) + } + } + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + + + + + + + + {record.name} + + + Starter pack by {`@${creator.handle}`} + + + + {record.description ? ( + + {record.description} + + ) : null} + + + {joinedWeekCount && joinedWeekCount >= 25 ? ( + + + + 123,659 joined this week + + + ) : null} + + + {Boolean(listItemsSample?.length) && ( + + + {listItemsCount <= 8 ? ( + You'll follow these people right away + ) : ( + + You'll follow these people and {listItemsCount - 8} others + + )} + + + {starterPack.listItemsSample?.slice(0, 8).map(item => ( + + + + ))} + + + )} + {feeds?.length ? ( + + + You'll stay updated with these feeds + + + + {feeds?.map(feed => ( + + + + ))} + + + ) : null} + + + + + + + + Download Bluesky + + + + The experience is better in the app. Download Bluesky now and we'll + pick back up where you left off. + + + + { + const rkey = new AtUri(starterPack.uri).rkey + if (!rkey) return + + const googlePlayUri = createStarterPackGooglePlayUri( + creator.handle, + rkey, + ) + if (!googlePlayUri) return + + window.location.href = googlePlayUri + }} + /> + + + + {isWeb && ( + + )} + + ) +} + +function AppClipOverlay({ + visible, + setIsVisible, +}: { + visible: boolean + setIsVisible: (visible: boolean) => void +}) { + if (!visible) return + + return ( + setIsVisible(false)}> + + {/* Webkit needs this to have a zindex of 2? */} + + + Download Bluesky to get started! + + + We'll remember the starter pack you chose and use it when you create + an account in the app. + + + + + ) +} diff --git a/src/screens/StarterPack/StarterPackScreen.tsx b/src/screens/StarterPack/StarterPackScreen.tsx new file mode 100644 index 000000000..46ce25236 --- /dev/null +++ b/src/screens/StarterPack/StarterPackScreen.tsx @@ -0,0 +1,627 @@ +import React from 'react' +import {View} from 'react-native' +import {Image} from 'expo-image' +import { + AppBskyGraphDefs, + AppBskyGraphGetList, + AppBskyGraphStarterpack, + AtUri, + ModerationOpts, +} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import { + InfiniteData, + UseInfiniteQueryResult, + useQueryClient, +} from '@tanstack/react-query' + +import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' +import {useDeleteStarterPackMutation} from '#/state/queries/starter-packs' +import {HITSLOP_20} from 'lib/constants' +import {makeProfileLink, makeStarterPackLink} from 'lib/routes/links' +import {CommonNavigatorParams, NavigationProp} from 'lib/routes/types' +import {logEvent} from 'lib/statsig/statsig' +import {getStarterPackOgCard} from 'lib/strings/starter-pack' +import {isWeb} from 'platform/detection' +import {useModerationOpts} from 'state/preferences/moderation-opts' +import {RQKEY, useListMembersQuery} from 'state/queries/list-members' +import {useResolveDidQuery} from 'state/queries/resolve-uri' +import {useShortenLink} from 'state/queries/shorten-link' +import {useStarterPackQuery} from 'state/queries/starter-packs' +import {useAgent, useSession} from 'state/session' +import * as Toast from '#/view/com/util/Toast' +import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' +import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' +import {CenteredView} from 'view/com/util/Views' +import {bulkWriteFollows} from '#/screens/Onboarding/util' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' +import {ArrowOutOfBox_Stroke2_Corner0_Rounded as ArrowOutOfBox} from '#/components/icons/ArrowOutOfBox' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid' +import {Pencil_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' +import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' +import {ListMaybePlaceholder} from '#/components/Lists' +import {Loader} from '#/components/Loader' +import * as Menu from '#/components/Menu' +import * as Prompt from '#/components/Prompt' +import {ReportDialog, useReportDialogControl} from '#/components/ReportDialog' +import {FeedsList} from '#/components/StarterPack/Main/FeedsList' +import {ProfilesList} from '#/components/StarterPack/Main/ProfilesList' +import {QrCodeDialog} from '#/components/StarterPack/QrCodeDialog' +import {ShareDialog} from '#/components/StarterPack/ShareDialog' +import {Text} from '#/components/Typography' + +type StarterPackScreeProps = NativeStackScreenProps< + CommonNavigatorParams, + 'StarterPack' +> + +export function StarterPackScreen({route}: StarterPackScreeProps) { + const {_} = useLingui() + const {currentAccount} = useSession() + + const {name, rkey} = route.params + const moderationOpts = useModerationOpts() + const { + data: did, + isLoading: isLoadingDid, + isError: isErrorDid, + } = useResolveDidQuery(name) + const { + data: starterPack, + isLoading: isLoadingStarterPack, + isError: isErrorStarterPack, + } = useStarterPackQuery({did, rkey}) + const listMembersQuery = useListMembersQuery(starterPack?.list?.uri, 50) + + const isValid = + starterPack && + (starterPack.list || starterPack?.creator?.did === currentAccount?.did) && + AppBskyGraphDefs.validateStarterPackView(starterPack) && + AppBskyGraphStarterpack.validateRecord(starterPack.record) + + if (!did || !starterPack || !isValid || !moderationOpts) { + return ( + + ) + } + + if (!starterPack.list && starterPack.creator.did === currentAccount?.did) { + return + } + + return ( + + ) +} + +function StarterPackScreenInner({ + starterPack, + routeParams, + listMembersQuery, + moderationOpts, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + routeParams: StarterPackScreeProps['route']['params'] + listMembersQuery: UseInfiniteQueryResult< + InfiniteData + > + moderationOpts: ModerationOpts +}) { + const tabs = [ + ...(starterPack.list ? ['People'] : []), + ...(starterPack.feeds?.length ? ['Feeds'] : []), + ] + + const qrCodeDialogControl = useDialogControl() + const shareDialogControl = useDialogControl() + + const shortenLink = useShortenLink() + const [link, setLink] = React.useState() + const [imageLoaded, setImageLoaded] = React.useState(false) + + const onOpenShareDialog = React.useCallback(() => { + const rkey = new AtUri(starterPack.uri).rkey + shortenLink(makeStarterPackLink(starterPack.creator.did, rkey)).then( + res => { + setLink(res.url) + }, + ) + Image.prefetch(getStarterPackOgCard(starterPack)) + .then(() => { + setImageLoaded(true) + }) + .catch(() => { + setImageLoaded(true) + }) + shareDialogControl.open() + }, [shareDialogControl, shortenLink, starterPack]) + + React.useEffect(() => { + if (routeParams.new) { + onOpenShareDialog() + } + }, [onOpenShareDialog, routeParams.new, shareDialogControl]) + + return ( + + + ( +

+ )}> + {starterPack.list != null + ? ({headerHeight, scrollElRef}) => ( + + ) + : null} + {starterPack.feeds != null + ? ({headerHeight, scrollElRef}) => ( + + ) + : null} + + + + + + + ) +} + +function Header({ + starterPack, + routeParams, + onOpenShareDialog, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + routeParams: StarterPackScreeProps['route']['params'] + onOpenShareDialog: () => void +}) { + const {_} = useLingui() + const t = useTheme() + const {currentAccount} = useSession() + const agent = useAgent() + const queryClient = useQueryClient() + + const [isProcessing, setIsProcessing] = React.useState(false) + + const {record, creator} = starterPack + const isOwn = creator?.did === currentAccount?.did + const joinedAllTimeCount = starterPack.joinedAllTimeCount ?? 0 + + const onFollowAll = async () => { + if (!starterPack.list) return + + setIsProcessing(true) + + try { + const list = await agent.app.bsky.graph.getList({ + list: starterPack.list.uri, + }) + const dids = list.data.items + .filter(li => !li.subject.viewer?.following) + .map(li => li.subject.did) + + await bulkWriteFollows(agent, dids) + + await queryClient.refetchQueries({ + queryKey: RQKEY(starterPack.list.uri), + }) + + logEvent('starterPack:followAll', { + logContext: 'StarterPackProfilesList', + starterPack: starterPack.uri, + count: dids.length, + }) + Toast.show(_(msg`All accounts have been followed!`)) + } catch (e) { + Toast.show(_(msg`An error occurred while trying to follow all`)) + } finally { + setIsProcessing(false) + } + } + + if (!AppBskyGraphStarterpack.isRecord(record)) { + return null + } + + return ( + <> + + + {isOwn ? ( + + ) : ( + + )} + + + + {record.description || joinedAllTimeCount >= 25 ? ( + + {record.description ? ( + + {record.description} + + ) : null} + {joinedAllTimeCount >= 25 ? ( + + + + + {starterPack.joinedAllTimeCount || 0} people have used this + starter pack! + + + + ) : null} + + ) : null} + + ) +} + +function OverflowMenu({ + starterPack, + routeParams, + onOpenShareDialog, +}: { + starterPack: AppBskyGraphDefs.StarterPackView + routeParams: StarterPackScreeProps['route']['params'] + onOpenShareDialog: () => void +}) { + const t = useTheme() + const {_} = useLingui() + const {gtMobile} = useBreakpoints() + const {currentAccount} = useSession() + const reportDialogControl = useReportDialogControl() + const deleteDialogControl = useDialogControl() + const navigation = useNavigation() + + const { + mutate: deleteStarterPack, + isPending: isDeletePending, + error: deleteError, + } = useDeleteStarterPackMutation({ + onSuccess: () => { + logEvent('starterPack:delete', {}) + deleteDialogControl.close(() => { + if (navigation.canGoBack()) { + navigation.popToTop() + } else { + navigation.navigate('Home') + } + }) + }, + onError: e => { + logger.error('Failed to delete starter pack', {safeMessage: e}) + }, + }) + + const isOwn = starterPack.creator.did === currentAccount?.did + + const onDeleteStarterPack = async () => { + if (!starterPack.list) { + logger.error(`Unable to delete starterpack because list is missing`) + return + } + + deleteStarterPack({ + rkey: routeParams.rkey, + listUri: starterPack.list.uri, + }) + logEvent('starterPack:delete', {}) + } + + return ( + <> + + + {({props}) => ( + + )} + + + {isOwn ? ( + <> + { + navigation.navigate('StarterPackEdit', { + rkey: routeParams.rkey, + }) + }}> + + Edit + + + + { + deleteDialogControl.open() + }}> + + Delete + + + + + ) : ( + <> + + + + Share link + + + + + + + + Report starter pack + + + + + )} + + + + {starterPack.list && ( + + )} + + + + Delete starter pack? + + + Are you sure you want delete this starter pack? + + {deleteError && ( + + + + Unable to delete + + {cleanError(deleteError)} + + + + )} + + + + + + + ) +} + +function InvalidStarterPack({rkey}: {rkey: string}) { + const {_} = useLingui() + const t = useTheme() + const navigation = useNavigation() + const {gtMobile} = useBreakpoints() + const [isProcessing, setIsProcessing] = React.useState(false) + + const goBack = () => { + if (navigation.canGoBack()) { + navigation.goBack() + } else { + navigation.replace('Home') + } + } + + const {mutate: deleteStarterPack} = useDeleteStarterPackMutation({ + onSuccess: () => { + setIsProcessing(false) + goBack() + }, + onError: e => { + setIsProcessing(false) + logger.error('Failed to delete invalid starter pack', {safeMessage: e}) + Toast.show(_(msg`Failed to delete starter pack`)) + }, + }) + + return ( + + + + Starter pack is invalid + + + + The starter pack that you are trying to view is invalid. You may + delete this starter pack instead. + + + + + + + + + ) +} diff --git a/src/screens/StarterPack/Wizard/State.tsx b/src/screens/StarterPack/Wizard/State.tsx new file mode 100644 index 000000000..ea9bbf9d3 --- /dev/null +++ b/src/screens/StarterPack/Wizard/State.tsx @@ -0,0 +1,163 @@ +import React from 'react' +import { + AppBskyActorDefs, + AppBskyGraphDefs, + AppBskyGraphStarterpack, +} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {msg} from '@lingui/macro' + +import {useSession} from 'state/session' +import * as Toast from '#/view/com/util/Toast' + +const steps = ['Details', 'Profiles', 'Feeds'] as const +type Step = (typeof steps)[number] + +type Action = + | {type: 'Next'} + | {type: 'Back'} + | {type: 'SetCanNext'; canNext: boolean} + | {type: 'SetName'; name: string} + | {type: 'SetDescription'; description: string} + | {type: 'AddProfile'; profile: AppBskyActorDefs.ProfileViewBasic} + | {type: 'RemoveProfile'; profileDid: string} + | {type: 'AddFeed'; feed: GeneratorView} + | {type: 'RemoveFeed'; feedUri: string} + | {type: 'SetProcessing'; processing: boolean} + | {type: 'SetError'; error: string} + +interface State { + canNext: boolean + currentStep: Step + name?: string + description?: string + profiles: AppBskyActorDefs.ProfileViewBasic[] + feeds: GeneratorView[] + processing: boolean + error?: string + transitionDirection: 'Backward' | 'Forward' +} + +type TStateContext = [State, (action: Action) => void] + +const StateContext = React.createContext([ + {} as State, + (_: Action) => {}, +]) +export const useWizardState = () => React.useContext(StateContext) + +function reducer(state: State, action: Action): State { + let updatedState = state + + // -- Navigation + const currentIndex = steps.indexOf(state.currentStep) + if (action.type === 'Next' && state.currentStep !== 'Feeds') { + updatedState = { + ...state, + currentStep: steps[currentIndex + 1], + transitionDirection: 'Forward', + } + } else if (action.type === 'Back' && state.currentStep !== 'Details') { + updatedState = { + ...state, + currentStep: steps[currentIndex - 1], + transitionDirection: 'Backward', + } + } + + switch (action.type) { + case 'SetName': + updatedState = {...state, name: action.name.slice(0, 50)} + break + case 'SetDescription': + updatedState = {...state, description: action.description} + break + case 'AddProfile': + if (state.profiles.length >= 51) { + Toast.show(msg`You may only add up to 50 profiles`.message ?? '') + } else { + updatedState = {...state, profiles: [...state.profiles, action.profile]} + } + break + case 'RemoveProfile': + updatedState = { + ...state, + profiles: state.profiles.filter( + profile => profile.did !== action.profileDid, + ), + } + break + case 'AddFeed': + if (state.feeds.length >= 50) { + Toast.show(msg`You may only add up to 50 feeds`.message ?? '') + } else { + updatedState = {...state, feeds: [...state.feeds, action.feed]} + } + break + case 'RemoveFeed': + updatedState = { + ...state, + feeds: state.feeds.filter(f => f.uri !== action.feedUri), + } + break + case 'SetProcessing': + updatedState = {...state, processing: action.processing} + break + } + + return updatedState +} + +// TODO supply the initial state to this component +export function Provider({ + starterPack, + listItems, + children, +}: { + starterPack?: AppBskyGraphDefs.StarterPackView + listItems?: AppBskyGraphDefs.ListItemView[] + children: React.ReactNode +}) { + const {currentAccount} = useSession() + + const createInitialState = (): State => { + if (starterPack && AppBskyGraphStarterpack.isRecord(starterPack.record)) { + return { + canNext: true, + currentStep: 'Details', + name: starterPack.record.name, + description: starterPack.record.description, + profiles: + listItems + ?.map(i => i.subject) + .filter(p => p.did !== currentAccount?.did) ?? [], + feeds: starterPack.feeds ?? [], + processing: false, + transitionDirection: 'Forward', + } + } + + return { + canNext: true, + currentStep: 'Details', + profiles: [], + feeds: [], + processing: false, + transitionDirection: 'Forward', + } + } + + const [state, dispatch] = React.useReducer(reducer, null, createInitialState) + + return ( + + {children} + + ) +} + +export { + type Action as WizardAction, + type State as WizardState, + type Step as WizardStep, +} diff --git a/src/screens/StarterPack/Wizard/StepDetails.tsx b/src/screens/StarterPack/Wizard/StepDetails.tsx new file mode 100644 index 000000000..24c992c60 --- /dev/null +++ b/src/screens/StarterPack/Wizard/StepDetails.tsx @@ -0,0 +1,84 @@ +import React from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useProfileQuery} from 'state/queries/profile' +import {useSession} from 'state/session' +import {useWizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, useTheme} from '#/alf' +import * as TextField from '#/components/forms/TextField' +import {StarterPack} from '#/components/icons/StarterPack' +import {ScreenTransition} from '#/components/StarterPack/Wizard/ScreenTransition' +import {Text} from '#/components/Typography' + +export function StepDetails() { + const {_} = useLingui() + const t = useTheme() + const [state, dispatch] = useWizardState() + + const {currentAccount} = useSession() + const {data: currentProfile} = useProfileQuery({ + did: currentAccount?.did, + staleTime: 300, + }) + + return ( + + + + + + Invites, but personal + + + + Invite your friends to follow your favorite feeds and people + + + + + + What do you want to call your starter pack? + + + dispatch({type: 'SetName', name: text})} + /> + + + {state.name?.length ?? 0}/50 + + + + + + + Tell us a little more + + + + dispatch({type: 'SetDescription', description: text}) + } + multiline + style={{minHeight: 150}} + /> + + + + + ) +} diff --git a/src/screens/StarterPack/Wizard/StepFeeds.tsx b/src/screens/StarterPack/Wizard/StepFeeds.tsx new file mode 100644 index 000000000..6752a95db --- /dev/null +++ b/src/screens/StarterPack/Wizard/StepFeeds.tsx @@ -0,0 +1,113 @@ +import React, {useState} from 'react' +import {ListRenderItemInfo, View} from 'react-native' +import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' +import {AppBskyFeedDefs, ModerationOpts} from '@atproto/api' +import {Trans} from '@lingui/macro' + +import {useA11y} from '#/state/a11y' +import {DISCOVER_FEED_URI} from 'lib/constants' +import { + useGetPopularFeedsQuery, + useSavedFeeds, + useSearchPopularFeedsQuery, +} from 'state/queries/feed' +import {SearchInput} from 'view/com/util/forms/SearchInput' +import {List} from 'view/com/util/List' +import {useWizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, useTheme} from '#/alf' +import {useThrottledValue} from '#/components/hooks/useThrottledValue' +import {Loader} from '#/components/Loader' +import {ScreenTransition} from '#/components/StarterPack/Wizard/ScreenTransition' +import {WizardFeedCard} from '#/components/StarterPack/Wizard/WizardListCard' +import {Text} from '#/components/Typography' + +function keyExtractor(item: AppBskyFeedDefs.GeneratorView) { + return item.uri +} + +export function StepFeeds({moderationOpts}: {moderationOpts: ModerationOpts}) { + const t = useTheme() + const [state, dispatch] = useWizardState() + const [query, setQuery] = useState('') + const throttledQuery = useThrottledValue(query, 500) + const {screenReaderEnabled} = useA11y() + + const {data: savedFeedsAndLists} = useSavedFeeds() + const savedFeeds = savedFeedsAndLists?.feeds + .filter(f => f.type === 'feed' && f.view.uri !== DISCOVER_FEED_URI) + .map(f => f.view) as AppBskyFeedDefs.GeneratorView[] + + const {data: popularFeedsPages, fetchNextPage} = useGetPopularFeedsQuery({ + limit: 30, + }) + const popularFeeds = + popularFeedsPages?.pages + .flatMap(page => page.feeds) + .filter(f => !savedFeeds?.some(sf => sf?.uri === f.uri)) ?? [] + + const suggestedFeeds = savedFeeds?.concat(popularFeeds) + + const {data: searchedFeeds, isLoading: isLoadingSearch} = + useSearchPopularFeedsQuery({q: throttledQuery}) + + const renderItem = ({ + item, + }: ListRenderItemInfo) => { + return ( + + ) + } + + return ( + + + + setQuery(t)} + onPressCancelSearch={() => setQuery('')} + onSubmitQuery={() => {}} + /> + + + fetchNextPage() : undefined + } + onEndReachedThreshold={2} + renderScrollComponent={props => } + keyboardShouldPersistTaps="handled" + containWeb={true} + sideBorders={false} + style={{flex: 1}} + ListEmptyComponent={ + + {isLoadingSearch ? ( + + ) : ( + + No feeds found. Try searching for something else. + + )} + + } + /> + + ) +} diff --git a/src/screens/StarterPack/Wizard/StepFinished.tsx b/src/screens/StarterPack/Wizard/StepFinished.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/src/screens/StarterPack/Wizard/StepProfiles.tsx b/src/screens/StarterPack/Wizard/StepProfiles.tsx new file mode 100644 index 000000000..8fe7f52fe --- /dev/null +++ b/src/screens/StarterPack/Wizard/StepProfiles.tsx @@ -0,0 +1,101 @@ +import React, {useState} from 'react' +import {ListRenderItemInfo, View} from 'react-native' +import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' +import {AppBskyActorDefs, ModerationOpts} from '@atproto/api' +import {Trans} from '@lingui/macro' + +import {useA11y} from '#/state/a11y' +import {isNative} from 'platform/detection' +import {useActorAutocompleteQuery} from 'state/queries/actor-autocomplete' +import {useActorSearchPaginated} from 'state/queries/actor-search' +import {SearchInput} from 'view/com/util/forms/SearchInput' +import {List} from 'view/com/util/List' +import {useWizardState} from '#/screens/StarterPack/Wizard/State' +import {atoms as a, useTheme} from '#/alf' +import {Loader} from '#/components/Loader' +import {ScreenTransition} from '#/components/StarterPack/Wizard/ScreenTransition' +import {WizardProfileCard} from '#/components/StarterPack/Wizard/WizardListCard' +import {Text} from '#/components/Typography' + +function keyExtractor(item: AppBskyActorDefs.ProfileViewBasic) { + return item?.did ?? '' +} + +export function StepProfiles({ + moderationOpts, +}: { + moderationOpts: ModerationOpts +}) { + const t = useTheme() + const [state, dispatch] = useWizardState() + const [query, setQuery] = useState('') + const {screenReaderEnabled} = useA11y() + + const {data: topPages, fetchNextPage} = useActorSearchPaginated({ + query: encodeURIComponent('*'), + }) + const topFollowers = topPages?.pages.flatMap(p => p.actors) + + const {data: results, isLoading: isLoadingResults} = + useActorAutocompleteQuery(query, true, 12) + + const renderItem = ({ + item, + }: ListRenderItemInfo) => { + return ( + + ) + } + + return ( + + + + setQuery('')} + onSubmitQuery={() => {}} + /> + + + } + keyboardShouldPersistTaps="handled" + containWeb={true} + sideBorders={false} + style={[a.flex_1]} + onEndReached={ + !query && !screenReaderEnabled ? () => fetchNextPage() : undefined + } + onEndReachedThreshold={isNative ? 2 : 0.25} + ListEmptyComponent={ + + {isLoadingResults ? ( + + ) : ( + + Nobody was found. Try searching for someone else. + + )} + + } + /> + + ) +} diff --git a/src/screens/StarterPack/Wizard/index.tsx b/src/screens/StarterPack/Wizard/index.tsx new file mode 100644 index 000000000..76691dc98 --- /dev/null +++ b/src/screens/StarterPack/Wizard/index.tsx @@ -0,0 +1,575 @@ +import React from 'react' +import {Keyboard, TouchableOpacity, View} from 'react-native' +import { + KeyboardAwareScrollView, + useKeyboardController, +} from 'react-native-keyboard-controller' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {Image} from 'expo-image' +import { + AppBskyActorDefs, + AppBskyGraphDefs, + AtUri, + ModerationOpts, +} from '@atproto/api' +import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Plural, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useFocusEffect, useNavigation} from '@react-navigation/native' +import {NativeStackScreenProps} from '@react-navigation/native-stack' + +import {logger} from '#/logger' +import {HITSLOP_10} from 'lib/constants' +import {CommonNavigatorParams, NavigationProp} from 'lib/routes/types' +import {logEvent} from 'lib/statsig/statsig' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {enforceLen} from 'lib/strings/helpers' +import { + getStarterPackOgCard, + parseStarterPackUri, +} from 'lib/strings/starter-pack' +import {isAndroid, isNative, isWeb} from 'platform/detection' +import {useModerationOpts} from 'state/preferences/moderation-opts' +import {useListMembersQuery} from 'state/queries/list-members' +import {useProfileQuery} from 'state/queries/profile' +import { + useCreateStarterPackMutation, + useEditStarterPackMutation, + useStarterPackQuery, +} from 'state/queries/starter-packs' +import {useSession} from 'state/session' +import {useSetMinimalShellMode} from 'state/shell' +import * as Toast from '#/view/com/util/Toast' +import {UserAvatar} from 'view/com/util/UserAvatar' +import {CenteredView} from 'view/com/util/Views' +import {useWizardState, WizardStep} from '#/screens/StarterPack/Wizard/State' +import {StepDetails} from '#/screens/StarterPack/Wizard/StepDetails' +import {StepFeeds} from '#/screens/StarterPack/Wizard/StepFeeds' +import {StepProfiles} from '#/screens/StarterPack/Wizard/StepProfiles' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' +import {ListMaybePlaceholder} from '#/components/Lists' +import {Loader} from '#/components/Loader' +import {WizardEditListDialog} from '#/components/StarterPack/Wizard/WizardEditListDialog' +import {Text} from '#/components/Typography' +import {Provider} from './State' + +export function Wizard({ + route, +}: NativeStackScreenProps< + CommonNavigatorParams, + 'StarterPackEdit' | 'StarterPackWizard' +>) { + const {rkey} = route.params ?? {} + const {currentAccount} = useSession() + const moderationOpts = useModerationOpts() + + const {_} = useLingui() + + const { + data: starterPack, + isLoading: isLoadingStarterPack, + isError: isErrorStarterPack, + } = useStarterPackQuery({did: currentAccount!.did, rkey}) + const listUri = starterPack?.list?.uri + + const { + data: profilesData, + isLoading: isLoadingProfiles, + isError: isErrorProfiles, + } = useListMembersQuery(listUri, 50) + const listItems = profilesData?.pages.flatMap(p => p.items) + + const { + data: profile, + isLoading: isLoadingProfile, + isError: isErrorProfile, + } = useProfileQuery({did: currentAccount?.did}) + + const isEdit = Boolean(rkey) + const isReady = + (!isEdit || (isEdit && starterPack && listItems)) && + profile && + moderationOpts + + if (!isReady) { + return ( + + ) + } else if (isEdit && starterPack?.creator.did !== currentAccount?.did) { + return ( + + ) + } + + return ( + + + + ) +} + +function WizardInner({ + currentStarterPack, + currentListItems, + profile, + moderationOpts, +}: { + currentStarterPack?: AppBskyGraphDefs.StarterPackView + currentListItems?: AppBskyGraphDefs.ListItemView[] + profile: AppBskyActorDefs.ProfileViewBasic + moderationOpts: ModerationOpts +}) { + const navigation = useNavigation() + const {_} = useLingui() + const t = useTheme() + const setMinimalShellMode = useSetMinimalShellMode() + const {setEnabled} = useKeyboardController() + const [state, dispatch] = useWizardState() + const {currentAccount} = useSession() + const {data: currentProfile} = useProfileQuery({ + did: currentAccount?.did, + staleTime: 0, + }) + const parsed = parseStarterPackUri(currentStarterPack?.uri) + + React.useEffect(() => { + navigation.setOptions({ + gestureEnabled: false, + }) + }, [navigation]) + + useFocusEffect( + React.useCallback(() => { + setEnabled(true) + setMinimalShellMode(true) + + return () => { + setMinimalShellMode(false) + setEnabled(false) + } + }, [setMinimalShellMode, setEnabled]), + ) + + const getDefaultName = () => { + let displayName + if ( + currentProfile?.displayName != null && + currentProfile?.displayName !== '' + ) { + displayName = sanitizeDisplayName(currentProfile.displayName) + } else { + displayName = sanitizeHandle(currentProfile!.handle) + } + return _(msg`${displayName}'s Starter Pack`).slice(0, 50) + } + + const wizardUiStrings: Record< + WizardStep, + {header: string; nextBtn: string; subtitle?: string} + > = { + Details: { + header: _(msg`Starter Pack`), + nextBtn: _(msg`Next`), + }, + Profiles: { + header: _(msg`People`), + nextBtn: _(msg`Next`), + subtitle: _( + msg`Add people to your starter pack that you think others will enjoy following`, + ), + }, + Feeds: { + header: _(msg`Feeds`), + nextBtn: state.feeds.length === 0 ? _(msg`Skip`) : _(msg`Finish`), + subtitle: _(msg`Some subtitle`), + }, + } + const currUiStrings = wizardUiStrings[state.currentStep] + + const onSuccessCreate = (data: {uri: string; cid: string}) => { + const rkey = new AtUri(data.uri).rkey + logEvent('starterPack:create', { + setName: state.name != null, + setDescription: state.description != null, + profilesCount: state.profiles.length, + feedsCount: state.feeds.length, + }) + Image.prefetch([getStarterPackOgCard(currentProfile!.did, rkey)]) + dispatch({type: 'SetProcessing', processing: false}) + navigation.replace('StarterPack', { + name: currentAccount!.handle, + rkey, + new: true, + }) + } + + const onSuccessEdit = () => { + if (navigation.canGoBack()) { + navigation.goBack() + } else { + navigation.replace('StarterPack', { + name: currentAccount!.handle, + rkey: parsed!.rkey, + }) + } + } + + const {mutate: createStarterPack} = useCreateStarterPackMutation({ + onSuccess: onSuccessCreate, + onError: e => { + logger.error('Failed to create starter pack', {safeMessage: e}) + dispatch({type: 'SetProcessing', processing: false}) + Toast.show(_(msg`Failed to create starter pack`)) + }, + }) + const {mutate: editStarterPack} = useEditStarterPackMutation({ + onSuccess: onSuccessEdit, + onError: e => { + logger.error('Failed to edit starter pack', {safeMessage: e}) + dispatch({type: 'SetProcessing', processing: false}) + Toast.show(_(msg`Failed to create starter pack`)) + }, + }) + + const submit = async () => { + dispatch({type: 'SetProcessing', processing: true}) + if (currentStarterPack && currentListItems) { + editStarterPack({ + name: state.name ?? getDefaultName(), + description: state.description, + descriptionFacets: [], + profiles: state.profiles, + feeds: state.feeds, + currentStarterPack: currentStarterPack, + currentListItems: currentListItems, + }) + } else { + createStarterPack({ + name: state.name ?? getDefaultName(), + description: state.description, + descriptionFacets: [], + profiles: state.profiles, + feeds: state.feeds, + }) + } + } + + const onNext = () => { + if (state.currentStep === 'Feeds') { + submit() + return + } + + const keyboardVisible = Keyboard.isVisible() + Keyboard.dismiss() + setTimeout( + () => { + dispatch({type: 'Next'}) + }, + keyboardVisible ? 16 : 0, + ) + } + + return ( + + + + { + if (state.currentStep === 'Details') { + navigation.pop() + } else { + dispatch({type: 'Back'}) + } + }}> + + + + + {currUiStrings.header} + + + + + + {state.currentStep === 'Details' ? ( + + ) : state.currentStep === 'Profiles' ? ( + + ) : state.currentStep === 'Feeds' ? ( + + ) : null} + + + {state.currentStep !== 'Details' && ( +