react-native 0.74.6 → 0.74.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,7 @@ const version: $ReadOnly<{
16
16
  }> = {
17
17
  major: 0,
18
18
  minor: 74,
19
- patch: 6,
19
+ patch: 7,
20
20
  prerelease: null,
21
21
  };
22
22
 
@@ -23,7 +23,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(74),
26
- RCTVersionPatch: @(6),
26
+ RCTVersionPatch: @(7),
27
27
  RCTVersionPrerelease: [NSNull null],
28
28
  };
29
29
  });
@@ -119,6 +119,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : coder)
119
119
  if (_isPresented) {
120
120
  [_delegate dismissModalHostView:self withViewController:_modalViewController animated:[self hasAnimationType]];
121
121
  _isPresented = NO;
122
+ [self setVisible:NO];
122
123
  }
123
124
  }
124
125
 
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.74.6
1
+ VERSION_NAME=0.74.7
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
 
4
4
  android.useAndroidX=true
@@ -17,6 +17,6 @@ public class ReactNativeVersion {
17
17
  public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
18
18
  "major", 0,
19
19
  "minor", 74,
20
- "patch", 6,
20
+ "patch", 7,
21
21
  "prerelease", null);
22
22
  }
@@ -579,6 +579,7 @@ public class ReactViewBackgroundDrawable extends Drawable {
579
579
  }
580
580
 
581
581
  // Clip border ONLY if its color is non transparent
582
+ float pathAdjustment = 0f;
582
583
  if (Color.alpha(colorLeft) != 0
583
584
  && Color.alpha(colorTop) != 0
584
585
  && Color.alpha(colorRight) != 0
@@ -589,6 +590,10 @@ public class ReactViewBackgroundDrawable extends Drawable {
589
590
  mInnerClipTempRectForBorderRadius.bottom -= borderWidth.bottom;
590
591
  mInnerClipTempRectForBorderRadius.left += borderWidth.left;
591
592
  mInnerClipTempRectForBorderRadius.right -= borderWidth.right;
593
+
594
+ // only close gap between border and main path if we draw the border, otherwise
595
+ // we wind up pixelating small pixel-radius curves
596
+ pathAdjustment = mGapBetweenPaths;
592
597
  }
593
598
 
594
599
  mTempRectForCenterDrawPath.top += borderWidth.top * 0.5f;
@@ -716,10 +721,10 @@ public class ReactViewBackgroundDrawable extends Drawable {
716
721
  // (mInnerClipTempRectForBorderRadius), ensuring the border can be
717
722
  // drawn on top without the gap.
718
723
  mBackgroundColorRenderPath.addRoundRect(
719
- mInnerClipTempRectForBorderRadius.left - mGapBetweenPaths,
720
- mInnerClipTempRectForBorderRadius.top - mGapBetweenPaths,
721
- mInnerClipTempRectForBorderRadius.right + mGapBetweenPaths,
722
- mInnerClipTempRectForBorderRadius.bottom + mGapBetweenPaths,
724
+ mInnerClipTempRectForBorderRadius.left - pathAdjustment,
725
+ mInnerClipTempRectForBorderRadius.top - pathAdjustment,
726
+ mInnerClipTempRectForBorderRadius.right + pathAdjustment,
727
+ mInnerClipTempRectForBorderRadius.bottom + pathAdjustment,
723
728
  new float[] {
724
729
  innerTopLeftRadiusX,
725
730
  innerTopLeftRadiusY,
@@ -17,7 +17,7 @@ namespace facebook::react {
17
17
  constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 74;
20
- int32_t Patch = 6;
20
+ int32_t Patch = 7;
21
21
  std::string_view Prerelease = "";
22
22
  } ReactNativeVersion;
23
23
 
@@ -795,10 +795,7 @@ LayoutAnimationKeyFrameManager::pullTransaction(
795
795
  finalConflictingMutations.end(),
796
796
  &shouldFirstComeBeforeSecondMutation);
797
797
 
798
- std::stable_sort(
799
- immediateMutations.begin(),
800
- immediateMutations.end(),
801
- &shouldFirstComeBeforeSecondRemovesOnly);
798
+ handleShouldFirstComeBeforeSecondRemovesOnly(immediateMutations);
802
799
 
803
800
  animation.keyFrames = keyFramesToAnimate;
804
801
  inflightAnimations_.push_back(std::move(animation));
@@ -24,6 +24,40 @@ static inline bool shouldFirstComeBeforeSecondRemovesOnly(
24
24
  (lhs.index > rhs.index);
25
25
  }
26
26
 
27
+ static inline void handleShouldFirstComeBeforeSecondRemovesOnly(
28
+ ShadowViewMutation::List& list) noexcept {
29
+ std::unordered_map<std::string, std::vector<ShadowViewMutation>>
30
+ removeMutationsByTag;
31
+ ShadowViewMutation::List finalList;
32
+ for (auto& mutation : list) {
33
+ if (mutation.type == ShadowViewMutation::Type::Remove) {
34
+ auto key = std::to_string(mutation.parentShadowView.tag);
35
+ removeMutationsByTag[key].push_back(mutation);
36
+ } else {
37
+ finalList.push_back(mutation);
38
+ }
39
+ }
40
+
41
+ if (removeMutationsByTag.size() == 0) {
42
+ return;
43
+ }
44
+
45
+ for (auto& mutationsPair : removeMutationsByTag) {
46
+ if (mutationsPair.second.size() > 1) {
47
+ std::stable_sort(
48
+ mutationsPair.second.begin(),
49
+ mutationsPair.second.end(),
50
+ &shouldFirstComeBeforeSecondRemovesOnly);
51
+ }
52
+ finalList.insert(
53
+ finalList.begin(),
54
+ mutationsPair.second.begin(),
55
+ mutationsPair.second.end());
56
+ }
57
+
58
+ list = finalList;
59
+ }
60
+
27
61
  static inline bool shouldFirstComeBeforeSecondMutation(
28
62
  const ShadowViewMutation& lhs,
29
63
  const ShadowViewMutation& rhs) noexcept {
@@ -55,6 +89,17 @@ static inline bool shouldFirstComeBeforeSecondMutation(
55
89
  lhs.type == ShadowViewMutation::Type::Insert) {
56
90
  return false;
57
91
  }
92
+
93
+ // Remove comes before Update
94
+ if (lhs.type == ShadowViewMutation::Type::Remove &&
95
+ rhs.type == ShadowViewMutation::Type::Update) {
96
+ return true;
97
+ }
98
+ if (rhs.type == ShadowViewMutation::Type::Remove &&
99
+ lhs.type == ShadowViewMutation::Type::Update) {
100
+ return false;
101
+ }
102
+
58
103
  } else {
59
104
  // Make sure that removes on the same level are sorted - highest indices
60
105
  // must come first.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.74.6",
3
+ "version": "0.74.7",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -110,13 +110,13 @@
110
110
  "@react-native-community/cli": "13.6.9",
111
111
  "@react-native-community/cli-platform-android": "13.6.9",
112
112
  "@react-native-community/cli-platform-ios": "13.6.9",
113
- "@react-native/assets-registry": "0.74.88",
114
- "@react-native/codegen": "0.74.88",
115
- "@react-native/community-cli-plugin": "0.74.88",
116
- "@react-native/gradle-plugin": "0.74.88",
117
- "@react-native/js-polyfills": "0.74.88",
118
- "@react-native/normalize-colors": "0.74.88",
119
- "@react-native/virtualized-lists": "0.74.88",
113
+ "@react-native/assets-registry": "0.74.89",
114
+ "@react-native/codegen": "0.74.89",
115
+ "@react-native/community-cli-plugin": "0.74.89",
116
+ "@react-native/gradle-plugin": "0.74.89",
117
+ "@react-native/js-polyfills": "0.74.89",
118
+ "@react-native/normalize-colors": "0.74.89",
119
+ "@react-native/virtualized-lists": "0.74.89",
120
120
  "abort-controller": "^3.0.0",
121
121
  "anser": "^1.4.9",
122
122
  "ansi-regex": "^5.0.0",
@@ -192,19 +192,7 @@ function create_universal_framework {
192
192
  for i in "${!platforms[@]}"; do
193
193
  local platform="${platforms[$i]}"
194
194
  local hermes_framework_path="${platform}/hermes.framework"
195
- local dSYM_path="$hermes_framework_path"
196
- local dSYM_base_path="$HERMES_PATH/destroot/Library/Frameworks"
197
-
198
- # If the dSYM rename has failed, the dSYM are generated as 0.dSYM
199
- # (Apple default name) rather then hermes.framework.dSYM.
200
- if [[ -e "$dSYM_base_path/${platform}/0.dSYM" ]]; then
201
- dSYM_path="${platform}/0"
202
- fi
203
-
204
195
  args+="-framework $hermes_framework_path "
205
-
206
- # Path to dSYM must be absolute
207
- args+="-debug-symbols $dSYM_base_path/$dSYM_path.dSYM "
208
196
  done
209
197
 
210
198
  mkdir -p universal
Binary file
Binary file
Binary file
package/template/Gemfile CHANGED
@@ -7,3 +7,5 @@ ruby ">= 2.6.10"
7
7
  # bound in the template on Cocoapods with next React Native release.
8
8
  gem 'cocoapods', '>= 1.13', '< 1.15'
9
9
  gem 'activesupport', '>= 6.1.7.5', '< 7.1.0'
10
+ gem 'xcodeproj', '< 1.26.0'
11
+ gem 'concurrent-ruby', '<= 1.3.4'
@@ -11,16 +11,16 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "react": "18.2.0",
14
- "react-native": "0.74.6"
14
+ "react-native": "0.74.7"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@babel/core": "^7.20.0",
18
18
  "@babel/preset-env": "^7.20.0",
19
19
  "@babel/runtime": "^7.20.0",
20
- "@react-native/babel-preset": "0.74.88",
21
- "@react-native/eslint-config": "0.74.88",
22
- "@react-native/metro-config": "0.74.88",
23
- "@react-native/typescript-config": "0.74.88",
20
+ "@react-native/babel-preset": "0.74.89",
21
+ "@react-native/eslint-config": "0.74.89",
22
+ "@react-native/metro-config": "0.74.89",
23
+ "@react-native/typescript-config": "0.74.89",
24
24
  "@types/react": "^18.2.6",
25
25
  "@types/react-test-renderer": "^18.0.0",
26
26
  "babel-jest": "^29.6.3",