Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
6605970
Prevent ProfileHeaderHandle from breaking out of its parent view (#6574)
HorusGoul Nov 20, 2024
97a4ff1
Bump 1.95.0 (#6530)
mozzius Nov 21, 2024
6438ec6
Disable vertical scrollbars on Android only (#6586)
gaearon Nov 21, 2024
ad83b83
Remove unused RN.Animated code (#6584)
gaearon Nov 21, 2024
dff11fc
Pin exact version of React Compiler packages (#6607)
poteto Nov 21, 2024
ff23ddb
Don't underline links on native hover (#6588)
gaearon Nov 21, 2024
cc60566
Fix Fast Refresh in <Text> files (#6609)
gaearon Nov 21, 2024
48cda13
Dedup zod versions in bskyembed/yarn.lock (#6610)
jviide Nov 21, 2024
f67e00a
fix: reused getRkey function in embed component (#6591)
MathurAditya724 Nov 21, 2024
9f1e648
Fix overflow issue on iOS autocomplete, among other things (#6611)
mozzius Nov 21, 2024
84724bb
[Android] Patch react-native-svg to cache parsed paths (#6583)
gaearon Nov 21, 2024
dc3a42e
Reduce <Text> nesting (#6615)
gaearon Nov 21, 2024
391e0c4
Fix embeder (#6616)
gaearon Nov 21, 2024
625459a
Fix some overdraw (#6617)
gaearon Nov 21, 2024
c858700
[Android] Lower Feed maxRenderPerBatch (#6624)
gaearon Nov 22, 2024
09ce65b
Fix display language not switching correctly to Chinese on native. (#…
auroursa Nov 22, 2024
058a29c
Add `CFBundleLocalizations` key to `Info.plist` (#6567)
surfdude29 Nov 22, 2024
5028753
Fix lightbox spinner (#6561)
PaulACoroneos Nov 22, 2024
a0acd51
[Lightbox] Fix jump when zooming out on iOS (#6633)
gaearon Nov 22, 2024
a5dbb35
Use outline style for repost cancel button (#6509)
mozzius Nov 22, 2024
7232684
Improve error name and message for signed-in only feeds (#6577)
estrattonbailey Nov 22, 2024
d9ba324
Use android native animations (#6562)
mozzius Nov 22, 2024
437bdcf
Remove unnecessary lint rule suppression (#6544)
PaulACoroneos Nov 22, 2024
5d4aaa5
[a11y] Video - fix labels and make more detailed (#6635)
mozzius Nov 22, 2024
76ca72c
Dismissable toasts (#6345)
mozzius Nov 22, 2024
3781074
Add gif support to web (#6433)
mozzius Nov 22, 2024
bc2a3ae
fix avi follow deadzone (#6639)
mozzius Nov 22, 2024
247bc10
Bump Typescript version to 5.7 (#6640)
mozzius Nov 22, 2024
ced6787
Add ability to block account from post dropdown menu (#6091)
rshigg Nov 22, 2024
7fa47ef
Simplify play icon shadow (#6641)
gaearon Nov 22, 2024
ba04bb5
Fix leaking background (#6642)
gaearon Nov 22, 2024
fee2f5d
Remove indirection, insert between slices (#6645)
gaearon Nov 22, 2024
ac5b2cf
Pass referrer on native (with an opt out) (#6648)
gaearon Nov 22, 2024
631277d
Add a hotness thread sort (#6649)
gaearon Nov 23, 2024
e9a792e
Bump @atproto/dev-env to align with @atproto/api (#6652)
trivikr Nov 23, 2024
d29599f
Fix translate button not working (#6657)
auroursa Nov 23, 2024
4dd62e2
Fix Newline handling in Web's Composer (#6658)
HorusGoul Nov 23, 2024
e428474
Fix inconsistent number formatting between mobile and web (#6384)
khuddite Nov 23, 2024
b1c1c49
Fix avi button hitslops (#6662)
gaearon Nov 23, 2024
30af267
Fix hovered repost button styling when logged out (#6222)
rolandcrosby Nov 23, 2024
f802f81
Fix broken pagination for lists tab on profile page (#6221)
khuddite Nov 23, 2024
9663b3e
fix: nothing selected bug (#6260)
O4FDev Nov 23, 2024
b892d8b
Fix media query used to prevent enter sending DM on mobile web (#6669)
brw Nov 23, 2024
0395ba3
derive bottom padding from header height for profiles list (#6152)
khuddite Nov 23, 2024
fdc3f0f
perf: optimizations for composer with Tiptap (#6315)
nperez0111 Nov 23, 2024
aa58216
Fix jumpy web animation for modal backdrop (#6673)
gaearon Nov 23, 2024
9f07083
Fix skeleton alignment (#6676)
gaearon Nov 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ module.exports = {
'eslint-plugin-react-compiler',
],
rules: {
// Temporary until https://github.com/facebook/react-native/pull/43756 gets into a release.
'prettier/prettier': 0,
'react/no-unescaped-entities': 0,
'react/prop-types': 0,
'react-native/no-inline-styles': 0,
Expand Down
24 changes: 24 additions & 0 deletions app.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,30 @@ module.exports = function (config) {
NSPhotoLibraryUsageDescription:
'Used for profile pictures, posts, and other kinds of content',
CFBundleSpokenName: 'Blue Sky',
CFBundleLocalizations: [
'en',
'ca',
'de',
'es',
'fi',
'fr',
'ga',
'hi',
'hu',
'id',
'it',
'ja',
'ko',
'pl',
'pt',
'ru',
'th',
'tr',
'uk',
'zh_CN',
'zh_HK',
'zh_TW',
],
},
associatedDomains: ASSOCIATED_DOMAINS,
splash: {
Expand Down
1 change: 1 addition & 0 deletions assets/icons/chainLink3_stroke2_corner0_rounded.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 2 additions & 3 deletions bskyembed/src/components/embed.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {
AppBskyGraphDefs,
AppBskyGraphStarterpack,
AppBskyLabelerDefs,
AtUri,
} from '@atproto/api'
import {ComponentChildren, h} from 'preact'
import {useMemo} from 'preact/hooks'
Expand Down Expand Up @@ -437,14 +436,14 @@ function StarterPackEmbed({

// from #/lib/strings/starter-pack.ts
function getStarterPackImage(starterPack: AppBskyGraphDefs.StarterPackView) {
const rkey = new AtUri(starterPack.uri).rkey
const rkey = getRkey({uri: starterPack.uri})
return `https://ogcard.cdn.bsky.app/start/${starterPack.creator.did}/${rkey}`
}

function getStarterPackHref(
starterPack: AppBskyGraphDefs.StarterPackViewBasic,
) {
const rkey = new AtUri(starterPack.uri).rkey
const rkey = getRkey({uri: starterPack.uri})
const handleOrDid = starterPack.creator.handle || starterPack.creator.did
return `/starter-pack/${handleOrDid}/${rkey}`
}
Expand Down
7 changes: 1 addition & 6 deletions bskyembed/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4209,12 +4209,7 @@ yocto-queue@^0.1.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==

zod@^3.21.4:
version "3.22.4"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff"
integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==

zod@^3.23.8:
zod@^3.21.4, zod@^3.23.8:
version "3.23.8"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d"
integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==
45 changes: 22 additions & 23 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bsky.app",
"version": "1.94.0",
"version": "1.95.0",
"private": true,
"engines": {
"node": ">=20"
Expand Down Expand Up @@ -54,7 +54,7 @@
"icons:optimize": "svgo -f ./assets/icons"
},
"dependencies": {
"@atproto/api": "^0.13.11",
"@atproto/api": "^0.13.18",
"@braintree/sanitize-url": "^6.0.2",
"@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet",
"@emoji-mart/react": "^1.1.1",
Expand Down Expand Up @@ -90,18 +90,18 @@
"@tanstack/query-async-storage-persister": "^5.25.0",
"@tanstack/react-query": "^5.8.1",
"@tanstack/react-query-persist-client": "^5.25.0",
"@tiptap/core": "^2.6.6",
"@tiptap/extension-document": "^2.6.6",
"@tiptap/extension-hard-break": "^2.6.6",
"@tiptap/extension-history": "^2.6.6",
"@tiptap/extension-mention": "^2.6.6",
"@tiptap/extension-paragraph": "^2.6.6",
"@tiptap/extension-placeholder": "^2.6.6",
"@tiptap/extension-text": "^2.6.6",
"@tiptap/html": "^2.6.6",
"@tiptap/pm": "^2.6.6",
"@tiptap/react": "^2.6.6",
"@tiptap/suggestion": "^2.6.6",
"@tiptap/core": "^2.9.1",
"@tiptap/extension-document": "^2.9.1",
"@tiptap/extension-hard-break": "^2.9.1",
"@tiptap/extension-history": "^2.9.1",
"@tiptap/extension-mention": "^2.9.1",
"@tiptap/extension-paragraph": "^2.9.1",
"@tiptap/extension-placeholder": "^2.9.1",
"@tiptap/extension-text": "^2.9.1",
"@tiptap/html": "^2.9.1",
"@tiptap/pm": "^2.9.1",
"@tiptap/react": "^2.9.1",
"@tiptap/suggestion": "^2.9.1",
"@types/invariant": "^2.2.37",
"@types/lodash.throttle": "^4.1.9",
"@types/node": "^20.14.3",
Expand Down Expand Up @@ -163,7 +163,7 @@
"postinstall-postinstall": "^2.1.0",
"psl": "^1.9.0",
"react": "18.2.0",
"react-compiler-runtime": "^19.0.0-beta-a7bf2bd-20241110",
"react-compiler-runtime": "19.0.0-beta-a7bf2bd-20241110",
"react-dom": "^18.2.0",
"react-image-crop": "^11.0.7",
"react-keyed-flatten-children": "^3.0.0",
Expand Down Expand Up @@ -204,7 +204,7 @@
"zod": "^3.20.2"
},
"devDependencies": {
"@atproto/dev-env": "^0.3.55",
"@atproto/dev-env": "^0.3.64",
"@babel/core": "^7.23.2",
"@babel/preset-env": "^7.20.0",
"@babel/runtime": "^7.20.0",
Expand Down Expand Up @@ -232,14 +232,14 @@
"babel-jest": "^29.7.0",
"babel-plugin-macros": "^3.1.0",
"babel-plugin-module-resolver": "^5.0.0",
"babel-plugin-react-compiler": "^19.0.0-beta-a7bf2bd-20241110",
"babel-plugin-react-compiler": "19.0.0-beta-a7bf2bd-20241110",
"babel-preset-expo": "^10.0.0",
"eslint": "^8.19.0",
"eslint-plugin-bsky-internal": "link:./eslint",
"eslint-plugin-ft-flow": "^2.0.3",
"eslint-plugin-lingui": "^0.2.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-compiler": "^19.0.0-beta-a7bf2bd-20241110",
"eslint-plugin-react-compiler": "19.0.0-beta-a7bf2bd-20241110",
"eslint-plugin-react-native-a11y": "^3.3.0",
"eslint-plugin-simple-import-sort": "^12.0.0",
"file-loader": "6.2.0",
Expand All @@ -256,17 +256,16 @@
"react-test-renderer": "18.2.0",
"svgo": "^3.3.2",
"ts-node": "^10.9.1",
"typescript": "^5.5.4",
"typescript": "^5.7.2",
"webpack-bundle-analyzer": "^4.10.1"
},
"resolutions": {
"@radix-ui/react-focus-scope": "1.1.0",
"@react-native/babel-preset": "0.74.1",
"@types/react": "^18",
"**/zeed-dom": "0.10.9",
"**/zod": "3.23.8",
"**/expo-constants": "16.0.1",
"**/expo-device": "6.0.2",
"@react-native/babel-preset": "0.74.1",
"@radix-ui/react-focus-scope": "1.1.0"
"**/zod": "3.23.8"
},
"jest": {
"preset": "jest-expo/ios",
Expand Down
57 changes: 57 additions & 0 deletions patches/react-native-svg+15.3.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
diff --git a/node_modules/react-native-svg/android/src/main/java/com/horcrux/svg/PathView.java b/node_modules/react-native-svg/android/src/main/java/com/horcrux/svg/PathView.java
index 06829bd..1b15818 100644
--- a/node_modules/react-native-svg/android/src/main/java/com/horcrux/svg/PathView.java
+++ b/node_modules/react-native-svg/android/src/main/java/com/horcrux/svg/PathView.java
@@ -14,17 +14,33 @@ import android.graphics.Paint;
import android.graphics.Path;
import com.facebook.react.bridge.ReactContext;

+import java.util.ArrayList;
+import java.util.HashMap;
+
+class ParsedPath {
+ final Path path;
+ final ArrayList<PathElement> elements;
+
+ ParsedPath(Path path, ArrayList<PathElement> elements) {
+ this.path = path;
+ this.elements = elements;
+ }
+}
+
@SuppressLint("ViewConstructor")
class PathView extends RenderableView {
private Path mPath;

+ // This grows forever but for our use case (static icons) it's ok.
+ private static final HashMap<String, ParsedPath> sPathCache = new HashMap<>();
+
public PathView(ReactContext reactContext) {
super(reactContext);
PathParser.mScale = mScale;
mPath = new Path();
}

- public void setD(String d) {
+ void setDByParsing(String d) {
mPath = PathParser.parse(d);
elements = PathParser.elements;
for (PathElement elem : elements) {
@@ -33,6 +49,17 @@ class PathView extends RenderableView {
point.y *= mScale;
}
}
+ }
+
+ public void setD(String d) {
+ ParsedPath cached = sPathCache.get(d);
+ if (cached != null) {
+ mPath = cached.path;
+ elements = cached.elements;
+ } else {
+ setDByParsing(d);
+ sPathCache.put(d, new ParsedPath(mPath, elements));
+ }
invalidate();
}

8 changes: 1 addition & 7 deletions src/Navigation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import {
import {RouteParams, State} from '#/lib/routes/types'
import {attachRouteToLogEvents, logEvent} from '#/lib/statsig/statsig'
import {bskyTitle} from '#/lib/strings/headings'
import {isAndroid, isNative, isWeb} from '#/platform/detection'
import {isNative, isWeb} from '#/platform/detection'
import {useModalControls} from '#/state/modals'
import {useUnreadNotifications} from '#/state/queries/notifications/unread'
import {useSession} from '#/state/session'
Expand Down Expand Up @@ -453,7 +453,6 @@ function HomeTabNavigator() {
return (
<HomeTab.Navigator
screenOptions={{
animation: isAndroid ? 'ios' : undefined,
animationDuration: 285,
gestureEnabled: true,
fullScreenGestureEnabled: true,
Expand All @@ -472,7 +471,6 @@ function SearchTabNavigator() {
return (
<SearchTab.Navigator
screenOptions={{
animation: isAndroid ? 'ios' : undefined,
animationDuration: 285,
gestureEnabled: true,
fullScreenGestureEnabled: true,
Expand All @@ -490,7 +488,6 @@ function NotificationsTabNavigator() {
return (
<NotificationsTab.Navigator
screenOptions={{
animation: isAndroid ? 'ios' : undefined,
animationDuration: 285,
gestureEnabled: true,
fullScreenGestureEnabled: true,
Expand All @@ -512,7 +509,6 @@ function MyProfileTabNavigator() {
return (
<MyProfileTab.Navigator
screenOptions={{
animation: isAndroid ? 'ios' : undefined,
animationDuration: 285,
gestureEnabled: true,
fullScreenGestureEnabled: true,
Expand All @@ -538,7 +534,6 @@ function MessagesTabNavigator() {
return (
<MessagesTab.Navigator
screenOptions={{
animation: isAndroid ? 'ios' : undefined,
animationDuration: 285,
gestureEnabled: true,
fullScreenGestureEnabled: true,
Expand Down Expand Up @@ -572,7 +567,6 @@ const FlatNavigator = () => {
<Flat.Navigator
screenListeners={screenListeners}
screenOptions={{
animation: isAndroid ? 'ios' : undefined,
animationDuration: 285,
gestureEnabled: true,
fullScreenGestureEnabled: true,
Expand Down
Loading