react-native-windows 0.72.0-preview.3 → 0.72.0-preview.5

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.
@@ -46,13 +46,6 @@ const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {
46
46
  flexWrap: true,
47
47
  gap: true,
48
48
  height: true,
49
- inset: true,
50
- insetBlock: true,
51
- insetBlockEnd: true,
52
- insetBlockStart: true,
53
- insetInline: true,
54
- insetInlineEnd: true,
55
- insetInlineStart: true,
56
49
  justifyContent: true,
57
50
  left: true,
58
51
  margin: true,
@@ -13,5 +13,5 @@ exports.version = {
13
13
  major: 0,
14
14
  minor: 72,
15
15
  patch: 0,
16
- prerelease: 'rc.1',
16
+ prerelease: 'rc.3',
17
17
  };
@@ -258,14 +258,6 @@ const validAttributesForNonEventProps = {
258
258
  top: true,
259
259
  bottom: true,
260
260
 
261
- inset: true,
262
- insetBlock: true,
263
- insetBlockEnd: true,
264
- insetBlockStart: true,
265
- insetInline: true,
266
- insetInlineEnd: true,
267
- insetInlineStart: true,
268
-
269
261
  position: true,
270
262
 
271
263
  style: ReactNativeStyleAttributes,
@@ -236,14 +236,6 @@ const validAttributesForNonEventProps = {
236
236
  bottom: true,
237
237
  left: true,
238
238
 
239
- inset: true,
240
- insetBlock: true,
241
- insetBlockEnd: true,
242
- insetBlockStart: true,
243
- insetInline: true,
244
- insetInlineEnd: true,
245
- insetInlineStart: true,
246
-
247
239
  width: true,
248
240
  height: true,
249
241
 
@@ -260,14 +260,6 @@ const validAttributesForNonEventProps = {
260
260
  bottom: true,
261
261
  left: true,
262
262
 
263
- inset: true,
264
- insetBlock: true,
265
- insetBlockEnd: true,
266
- insetBlockStart: true,
267
- insetInline: true,
268
- insetInlineEnd: true,
269
- insetInlineStart: true,
270
-
271
263
  width: true,
272
264
  height: true,
273
265
 
@@ -69,13 +69,6 @@ export interface FlexStyle {
69
69
  flexShrink?: number | undefined;
70
70
  flexWrap?: 'wrap' | 'nowrap' | 'wrap-reverse' | undefined;
71
71
  height?: DimensionValue | undefined;
72
- inset?: DimensionValue | undefined;
73
- insetBlock?: DimensionValue | undefined;
74
- insetBlockEnd?: DimensionValue | undefined;
75
- insetBlockStart?: DimensionValue | undefined;
76
- insetInline?: DimensionValue | undefined;
77
- insetInlineEnd?: DimensionValue | undefined;
78
- insetInlineStart?: DimensionValue | undefined;
79
72
  justifyContent?:
80
73
  | 'flex-start'
81
74
  | 'flex-end'
@@ -134,80 +134,6 @@ type ____LayoutStyle_Internal = $ReadOnly<{
134
134
  */
135
135
  top?: DimensionValue,
136
136
 
137
- /** `inset` is a shorthand that corresponds to the top, right, bottom, and/or left properties.
138
- *
139
- * It works similarly to `inset` in CSS, but in React Native you
140
- * must use points or percentages. Ems and other units are not supported.
141
- *
142
- * See https://developer.mozilla.org/en-US/docs/Web/CSS/inset
143
- * for more details of how `inset` affects layout.
144
- */
145
- inset?: DimensionValue,
146
-
147
- /** `insetBlock` is a shorthand that corresponds to the `insetBlockStart` and `insetBlockEnd` properties.
148
- *
149
- * It works similarly to `inset-block` in CSS, but in React Native you
150
- * must use points or percentages. Ems and other units are not supported.
151
- *
152
- * See https://developer.mozilla.org/en-US/docs/Web/CSS/inset-block
153
- * for more details of how `inset-block` affects layout.
154
- */
155
- insetBlock?: DimensionValue,
156
-
157
- /** `insetBlockEnd` is a logical property that sets the length that an
158
- * element is offset in the block direction from its ending edge.
159
- *
160
- * It works similarly to `inset-block-end` in CSS, but in React Native you
161
- * must use points or percentages. Ems and other units are not supported.
162
- *
163
- * See https://developer.mozilla.org/en-US/docs/Web/CSS/inset-block-end
164
- * for more details of how `inset-block-end` affects layout.
165
- */
166
- insetBlockEnd?: DimensionValue,
167
-
168
- /** `insetBlockStart` is a logical property that sets the length that an
169
- * element is offset in the block direction from its starting edge.
170
- *
171
- * It works similarly to `inset-block-start` in CSS, but in React Native you
172
- * must use points or percentages. Ems and other units are not supported.
173
- *
174
- * See https://developer.mozilla.org/en-US/docs/Web/CSS/inset-block-start
175
- * for more details of how `inset-block-start` affects layout.
176
- */
177
- insetBlockStart?: DimensionValue,
178
-
179
- /** `insetInline` is a shorthand that corresponds to the `insetInlineStart` and `insetInlineEnd` properties.
180
- *
181
- * It works similarly to `inset-inline` in CSS, but in React Native you
182
- * must use points or percentages. Ems and other units are not supported.
183
- *
184
- * See https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline
185
- * for more details of how `inset-inline` affects layout.
186
- */
187
- insetInline?: DimensionValue,
188
-
189
- /** `insetInlineEnd` is a logical property that sets the length that an
190
- * element is offset in the starting inline direction.
191
- *
192
- * It works similarly to `inset-inline-end` in CSS, but in React Native you
193
- * must use points or percentages. Ems and other units are not supported.
194
- *
195
- * See https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-end
196
- * for more details of how `inset-inline-end` affects layout.
197
- */
198
- insetInlineEnd?: DimensionValue,
199
-
200
- /** `insetInlineStart` is a logical property that sets the length that an
201
- * element is offset in the starting inline direction.
202
- *
203
- * It works similarly to `inset-inline-start` in CSS, but in React Native you
204
- * must use points or percentages. Ems and other units are not supported.
205
- *
206
- * See https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-start
207
- * for more details of how `inset-inline-start` affects layout.
208
- */
209
- insetInlineStart?: DimensionValue,
210
-
211
137
  /** `minWidth` is the minimum width for this component, in logical pixels.
212
138
  *
213
139
  * It works similarly to `min-width` in CSS, but in React Native you
@@ -13,26 +13,16 @@ ImageRequest::ImageRequest(ImageSource imageSource, std::shared_ptr<const ImageT
13
13
  coordinator_ = std::make_shared<ImageResponseObserverCoordinator>();
14
14
  }
15
15
 
16
- ImageRequest::ImageRequest(ImageRequest &&other) noexcept
17
- : imageSource_(std::move(other.imageSource_)),
18
- telemetry_(std::move(other.telemetry_)),
19
- coordinator_(std::move(other.coordinator_)) {
20
- other.coordinator_ = nullptr;
21
- other.cancelRequest_ = nullptr;
22
- other.telemetry_ = nullptr;
23
- other.imageSource_ = {};
16
+ void ImageRequest::setCancelationFunction(std::function<void(void)> cancelationFunction) {
17
+ cancelRequest_ = cancelationFunction;
24
18
  }
25
19
 
26
- ImageRequest::~ImageRequest() {
20
+ void ImageRequest::cancel() const {
27
21
  if (cancelRequest_) {
28
22
  cancelRequest_();
29
23
  }
30
24
  }
31
25
 
32
- void ImageRequest::setCancelationFunction(std::function<void(void)> cancelationFunction) {
33
- cancelRequest_ = cancelationFunction;
34
- }
35
-
36
26
  const ImageSource &ImageRequest::getImageSource() const {
37
27
  return imageSource_;
38
28
  }
@@ -10,11 +10,11 @@
10
10
  -->
11
11
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
12
12
  <PropertyGroup>
13
- <ReactNativeWindowsVersion>0.72.0-preview.3</ReactNativeWindowsVersion>
13
+ <ReactNativeWindowsVersion>0.72.0-preview.5</ReactNativeWindowsVersion>
14
14
  <ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
15
15
  <ReactNativeWindowsMinor>72</ReactNativeWindowsMinor>
16
16
  <ReactNativeWindowsPatch>0</ReactNativeWindowsPatch>
17
17
  <ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
18
- <ReactNativeWindowsCommitId>0783647397c3eb6c2a594b5805c5523ded61743a</ReactNativeWindowsCommitId>
18
+ <ReactNativeWindowsCommitId>1fe020c840d9e24856d7efabe16e21878f5a5b73</ReactNativeWindowsCommitId>
19
19
  </PropertyGroup>
20
20
  </Project>
@@ -24,7 +24,7 @@
24
24
  <EnableDevServerHBCBundles Condition="'$(EnableDevServerHBCBundles)' == ''">false</EnableDevServerHBCBundles>
25
25
 
26
26
  <UseV8 Condition="'$(UseV8)' == ''">false</UseV8>
27
- <V8Version Condition="'$(V8Version)' == ''">0.71.2</V8Version>
27
+ <V8Version Condition="'$(V8Version)' == ''">0.71.3</V8Version>
28
28
  <V8PackageName>ReactNative.V8Jsi.Windows</V8PackageName>
29
29
  <V8PackageName Condition="'$(V8AppPlatform)' != 'win32'">$(V8PackageName).UWP</V8PackageName>
30
30
  </PropertyGroup>
@@ -136,13 +136,6 @@ void YogaStylableProps::setProp(
136
136
  REBUILD_FIELD_YG_EDGES(border, "border", "Width");
137
137
 
138
138
  // Aliases
139
- RAW_SET_PROP_SWITCH_CASE(inset, "inset");
140
- RAW_SET_PROP_SWITCH_CASE(insetBlock, "insetBlock");
141
- RAW_SET_PROP_SWITCH_CASE(insetBlockEnd, "insetBlockEnd");
142
- RAW_SET_PROP_SWITCH_CASE(insetBlockStart, "insetBlockStart");
143
- RAW_SET_PROP_SWITCH_CASE(insetInline, "insetInline");
144
- RAW_SET_PROP_SWITCH_CASE(insetInlineEnd, "insetInlineEnd");
145
- RAW_SET_PROP_SWITCH_CASE(insetInlineStart, "insetInlineStart");
146
139
  RAW_SET_PROP_SWITCH_CASE(marginInline, "marginInline");
147
140
  RAW_SET_PROP_SWITCH_CASE(marginInlineStart, "marginInlineStart");
148
141
  RAW_SET_PROP_SWITCH_CASE(marginInlineEnd, "marginInlineEnd");
@@ -242,48 +235,6 @@ void YogaStylableProps::convertRawPropAliases(
242
235
  const PropsParserContext &context,
243
236
  YogaStylableProps const &sourceProps,
244
237
  RawProps const &rawProps) {
245
- inset = convertRawProp(
246
- context,
247
- rawProps,
248
- "inset",
249
- sourceProps.inset,
250
- CompactValue::ofUndefined());
251
- insetBlock = convertRawProp(
252
- context,
253
- rawProps,
254
- "insetBlock",
255
- sourceProps.insetBlock,
256
- CompactValue::ofUndefined());
257
- insetBlockEnd = convertRawProp(
258
- context,
259
- rawProps,
260
- "insetBlockEnd",
261
- sourceProps.insetBlockEnd,
262
- CompactValue::ofUndefined());
263
- insetBlockStart = convertRawProp(
264
- context,
265
- rawProps,
266
- "insetBlockStart",
267
- sourceProps.insetBlockStart,
268
- CompactValue::ofUndefined());
269
- insetInline = convertRawProp(
270
- context,
271
- rawProps,
272
- "insetInline",
273
- sourceProps.insetInline,
274
- CompactValue::ofUndefined());
275
- insetInlineEnd = convertRawProp(
276
- context,
277
- rawProps,
278
- "insetInlineEnd",
279
- sourceProps.insetInlineEnd,
280
- CompactValue::ofUndefined());
281
- insetInlineStart = convertRawProp(
282
- context,
283
- rawProps,
284
- "insetInlineStart",
285
- sourceProps.insetInlineStart,
286
- CompactValue::ofUndefined());
287
238
  marginInline = convertRawProp(
288
239
  context,
289
240
  rawProps,
@@ -11,57 +11,75 @@ using std::unique_ptr;
11
11
 
12
12
  namespace Microsoft::JSI {
13
13
 
14
- struct NapiTask {
15
- NapiTask(
16
- napi_env env,
17
- napi_ext_task_callback taskCallback,
18
- void *taskData,
19
- napi_finalize finalizeCallback,
20
- void *finalizeHint) noexcept
21
- : m_env{env},
22
- m_taskCallback{taskCallback},
23
- m_taskData{taskData},
24
- m_finalizeCallback{finalizeCallback},
25
- m_finalizeHint{finalizeHint} {}
26
-
27
- NapiTask(const NapiTask &) = delete;
28
- NapiTask &operator=(const NapiTask &) = delete;
14
+ class NapiTask {
15
+ public:
16
+ NapiTask(void *task, v8_task_run_cb onTaskRun, v8_task_release_cb onTaskRelease)
17
+ : task_(task), onTaskRun_(onTaskRun), onTaskRelease_(onTaskRelease) {}
18
+
19
+ NapiTask(NapiTask &&other)
20
+ : task_(std::exchange(other.task_, nullptr)),
21
+ onTaskRun_(std::exchange(other.onTaskRun_, nullptr)),
22
+ onTaskRelease_(std::exchange(other.onTaskRelease_, nullptr)) {}
23
+
24
+ NapiTask &operator=(NapiTask &&other) {
25
+ if (this != &other) {
26
+ NapiTask taskToDelete(std::move(*this));
27
+ task_ = std::exchange(other.task_, nullptr);
28
+ onTaskRun_ = std::exchange(other.onTaskRun_, nullptr);
29
+ onTaskRelease_ = std::exchange(other.onTaskRelease_, nullptr);
30
+ }
31
+ return *this;
32
+ }
33
+
34
+ NapiTask(const NapiTask &other) = delete;
35
+ NapiTask &operator=(const NapiTask &other) = delete;
29
36
 
30
37
  ~NapiTask() {
31
- if (m_finalizeCallback) {
32
- m_finalizeCallback(m_env, m_taskData, m_finalizeHint);
38
+ if (task_ != nullptr) {
39
+ onTaskRelease_(task_);
33
40
  }
34
41
  }
35
42
 
36
- void operator()() noexcept {
37
- m_taskCallback(m_env, m_taskData);
43
+ void Run() const {
44
+ if (task_ != nullptr) {
45
+ onTaskRun_(task_);
46
+ }
38
47
  }
39
48
 
40
49
  private:
41
- napi_env m_env;
42
- napi_ext_task_callback m_taskCallback;
43
- void *m_taskData;
44
- napi_finalize m_finalizeCallback;
45
- void *m_finalizeHint;
50
+ void *task_;
51
+ v8_task_run_cb onTaskRun_;
52
+ v8_task_release_cb onTaskRelease_;
46
53
  };
47
54
 
48
- // See napi_ext_schedule_task_callback definition.
49
- /*static*/ void NapiJsiV8RuntimeHolder::ScheduleTaskCallback(
50
- napi_env env,
51
- napi_ext_task_callback taskCallback,
52
- void *taskData,
53
- uint32_t /*delayInMsec*/,
54
- napi_finalize finalizeCallback,
55
- void *finalizeHint) {
56
- NapiJsiV8RuntimeHolder *holder;
57
- auto result = napi_get_instance_data(env, (void **)&holder);
58
- if (result != napi_status::napi_ok) {
59
- std::terminate();
55
+ class NapiTaskRunner {
56
+ public:
57
+ NapiTaskRunner(std::shared_ptr<facebook::react::MessageQueueThread> jsQueue) : m_jsQueue(std::move(jsQueue)) {}
58
+
59
+ static v8_task_runner_t Create(std::shared_ptr<facebook::react::MessageQueueThread> jsQueue) {
60
+ NapiTaskRunner *taskRunner = new NapiTaskRunner(std::move(jsQueue));
61
+ return v8_create_task_runner(reinterpret_cast<void *>(taskRunner), &PostTask, &Release);
60
62
  }
61
63
 
62
- auto task = std::make_shared<NapiTask>(env, taskCallback, taskData, finalizeCallback, finalizeHint);
63
- holder->m_jsQueue->runOnQueue([task = std::move(task)]() { task->operator()(); });
64
- }
64
+ private:
65
+ static void __cdecl PostTask(
66
+ void *taskRunner,
67
+ void *task,
68
+ v8_task_run_cb onTaskRun,
69
+ v8_task_release_cb onTaskRelease) {
70
+ auto napiTask = std::make_shared<NapiTask>(task, onTaskRun, onTaskRelease);
71
+ reinterpret_cast<NapiTaskRunner *>(taskRunner)->m_jsQueue->runOnQueue([napiTask = std::move(napiTask)] {
72
+ napiTask->Run();
73
+ });
74
+ }
75
+
76
+ static void __cdecl Release(void *taskRunner) {
77
+ delete reinterpret_cast<NapiTaskRunner *>(taskRunner);
78
+ }
79
+
80
+ private:
81
+ std::shared_ptr<facebook::react::MessageQueueThread> m_jsQueue;
82
+ };
65
83
 
66
84
  NapiJsiV8RuntimeHolder::NapiJsiV8RuntimeHolder(
67
85
  shared_ptr<DevSettings> devSettings,
@@ -85,7 +103,7 @@ void NapiJsiV8RuntimeHolder::InitRuntime() noexcept {
85
103
  settings.flags.enable_inspector = m_useDirectDebugger;
86
104
  settings.flags.wait_for_debugger = m_debuggerBreakOnNextLine;
87
105
  // TODO: args.debuggerRuntimeName = debuggerRuntimeName_;
88
- settings.foreground_scheduler = &NapiJsiV8RuntimeHolder::ScheduleTaskCallback;
106
+ settings.foreground_task_runner = NapiTaskRunner::Create(m_jsQueue);
89
107
 
90
108
  napi_ext_script_cache scriptCache = InitScriptCache(std::move(m_preparedScriptStore));
91
109
  settings.script_cache = &scriptCache;
@@ -24,14 +24,6 @@ class NapiJsiV8RuntimeHolder : public Microsoft::JSI::RuntimeHolderLazyInit {
24
24
  std::unique_ptr<facebook::jsi::PreparedScriptStore> &&preparedScriptStore) noexcept;
25
25
 
26
26
  private:
27
- static void __cdecl ScheduleTaskCallback(
28
- napi_env env,
29
- napi_ext_task_callback taskCb,
30
- void *taskData,
31
- uint32_t delayMs,
32
- napi_finalize finalizeCb,
33
- void *finalizeHint);
34
-
35
27
  void InitRuntime() noexcept;
36
28
  napi_ext_script_cache InitScriptCache(
37
29
  std::unique_ptr<facebook::jsi::PreparedScriptStore> &&preparedScriptStore) noexcept;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
- "version": "0.72.0-preview.3",
3
+ "version": "0.72.0-preview.5",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,10 +23,10 @@
23
23
  "dependencies": {
24
24
  "@babel/runtime": "^7.0.0",
25
25
  "@jest/create-cache-key-function": "^29.2.1",
26
- "@react-native-community/cli": "11.2.0",
27
- "@react-native-community/cli-platform-android": "11.2.0",
28
- "@react-native-community/cli-platform-ios": "11.2.0",
29
- "@react-native-windows/cli": "0.72.0-preview.3",
26
+ "@react-native-community/cli": "11.2.3",
27
+ "@react-native-community/cli-platform-android": "11.2.3",
28
+ "@react-native-community/cli-platform-ios": "11.2.3",
29
+ "@react-native-windows/cli": "0.72.0-preview.4",
30
30
  "@react-native/assets": "1.0.0",
31
31
  "@react-native/assets-registry": "^0.72.0",
32
32
  "@react-native/codegen": "^0.72.3",
@@ -37,15 +37,15 @@
37
37
  "abort-controller": "^3.0.0",
38
38
  "anser": "^1.4.9",
39
39
  "base64-js": "^1.1.2",
40
- "deprecated-react-native-prop-types": "^4.0.0",
40
+ "deprecated-react-native-prop-types": "^4.1.0",
41
41
  "event-target-shim": "^5.0.1",
42
42
  "flow-enums-runtime": "^0.0.5",
43
43
  "invariant": "^2.2.4",
44
44
  "jest-environment-node": "^29.2.1",
45
45
  "jsc-android": "^250231.0.0",
46
46
  "memoize-one": "^5.0.0",
47
- "metro-runtime": "0.76.2",
48
- "metro-source-map": "0.76.2",
47
+ "metro-runtime": "0.76.4",
48
+ "metro-source-map": "0.76.4",
49
49
  "mkdirp": "^0.5.1",
50
50
  "nullthrows": "^1.1.1",
51
51
  "pretty-format": "^26.5.2",
@@ -76,10 +76,10 @@
76
76
  "flow-bin": "^0.202.0",
77
77
  "jscodeshift": "^0.14.0",
78
78
  "just-scripts": "^1.3.3",
79
- "metro-config": "0.76.2",
79
+ "metro-config": "0.76.4",
80
80
  "prettier": "^2.4.1",
81
81
  "react": "18.2.0",
82
- "react-native": "0.72.0-rc.1",
82
+ "react-native": "0.72.0-rc.3",
83
83
  "react-native-platform-override": "^1.9.4",
84
84
  "react-refresh": "^0.4.0",
85
85
  "typescript": "^4.9.5"