forked from microsoft/react-native-macos
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] main from microsoft:main #33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pull
wants to merge
1,011
commits into
Saadnajmi:main
Choose a base branch
from
microsoft:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ss (facebook#49377) Summary: Pull Request resolved: facebook#49377 ReactAccessibilityDelegate exists to handle much of the accessibility tasks in the various Views in RN. There is quite a bit of text specific logic, mostly related to virtual views and nested links within a TextView. I decided to subclass this into a TextView-specific version because I need this delegate to reference TextView or ReactClickableSpan, which live under `react/views` while ReactAccessibilityDelegate live under `react/uimanager`. The former depends on the latter, so making the latter depend on the former would for a dependency cycle that would break builds. I thought about making a separate package for this but both `react/views` and `react/uimanager` need to include ReactAccessibilityDelegate so we would still have a cycle. mAccessibilityLinks is only set on ReactTextViewManager, so this is purely a text thing. Subclassing is not the most ideal as it extends the inheritance chain some more but I do not see a better option. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D69499115 fbshipit-source-id: 1720d20bb56ba1e1b5bd114d32bc70e80e3b4558
Summary: Whenever we remove a link in some text we do not properly update the accessibility delegate to respond to this change. As a result we still think that there are nodes to access around the spans Changelog: [Android][Fixed] - Fix text link accessibility on state update removal Reviewed By: NickGerleman, mdvacca Differential Revision: D69551906 fbshipit-source-id: f43fcf72219e76d2d0bbb29d31ab219d73413671
…ok#49381) Summary: Pull Request resolved: facebook#49381 A much improved version of my previous attempt in D68306316 (facebook#48773). Instead of LinkMovementMethod which makes TextViews scrollable if they overflow, this implementation uses `ExploreByTouchHelper`'s `onVirtualViewKeyboardFocusChanged` and `onPerformActionForVirtualView` to handle focus changes and clicks on virtual views (aka spans in our case). This impl will correctly ellipsize text and allow tab to nav through the links. Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D69551206 fbshipit-source-id: 6a88ccd507dc5534c1f494e3303c6bfc2bae5e9f
…ebook#49605) Summary: Pull Request resolved: facebook#49605 changelog: [internal] Calling `RCTUnsafeExecuteOnMainQueueSync` while holding a lock can lead to a deadlock. In this diff, we remove it from RCTKeyWindowValuesProxy. Reviewed By: javache Differential Revision: D69997888 fbshipit-source-id: a09fc641c9fb2aec59aef34e4047e1ef11cdaf02
Summary: Pull Request resolved: facebook#49612 `[UIApplication sharedApplication]` is not allowed in Mac Catalyst. This #ifdef's it out which is a common pattern elsewhere. Changelog: [Internal] Reviewed By: shwanton Differential Revision: D69971189 fbshipit-source-id: 89dbc0a02ed2a06936f910fbfc13e1fb91972540
Summary: MessageQueueThreadHandler was migrated to Kotlin in facebook#49583 but during merging the Java file was kept, this is currently breaking the `build-android` action in CI. [See this action for example](https://github.com/facebook/react-native/actions/runs/13472084782/job/37646841097?pr=49607) ## Changelog: [INTERNAL] - Remove MessageQueueThreadHandler.java implementation to fix CI Pull Request resolved: facebook#49613 Test Plan: ```bash yarn build-android ``` Reviewed By: fkgozali Differential Revision: D70059045 Pulled By: arushikesarwani94 fbshipit-source-id: 93665a8ac4ccc1cb1b03908179e2fcd12c61b3dd
Summary: Pull Request resolved: facebook#49592 Changelog: [Internal] Reviewed By: huntie Differential Revision: D69984225 fbshipit-source-id: 753917f31a803c3bc8ea2e4635ec1d58cecb9224
…acebook#49591) Summary: Pull Request resolved: facebook#49591 Changelog: [Internal] - Added optional reference to the TouchableHighlight and new types test Reviewed By: huntie Differential Revision: D69984286 fbshipit-source-id: f6757720d0914ea3da3a32c824eb9aaeb5a1f39b
) Summary: Pull Request resolved: facebook#49618 Changelog: [General][Internal] - create a heartbeat for device, and not only for debugger. Introducing a heartbeat for the connection between the proxy and the device similarly to the one between the proxy and the debugger. This will allow us to: * Most importantly I'd like to track the ping-pong roundtrip to the device as well, to see if we have any anomalies there * Terminate the connection if it is abandoned for 60seconds- this might have a real effect in some case where the device runs remotely * Also keep that connection alive if the other side disconnects after a period of inactivity. While a no-op in our case, this is an implementation detail. It is a no-op because the WebSocket on the Device is implemented by us and is not supposed to drop connections like the browser does. Reviewed By: robhogan Differential Revision: D69990715 fbshipit-source-id: 6bb3a2ed3eaffff9535aa2d0fc8cff0262af022f
) Summary: Pull Request resolved: facebook#49598 Changelog: [Internal] - Added StatusBar to buildTypes and aligned Flow with TS types Reviewed By: huntie Differential Revision: D69990300 fbshipit-source-id: 684c3692fd3cc4862fd3cd3fe4731129887b9bcc
Summary: Pull Request resolved: facebook#49596 I'm relanding D69934543 as it was previsouly reverted. I'm making this class internal as I've verified that there are no meaningful usages. [Source](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+com.facebook.react.devsupport.RedBoxContentView) Changelog: [Internal] [Changed] - Reviewed By: cipolleschi Differential Revision: D69987752 fbshipit-source-id: 191a5f5aacbe6ff642e98d4e8c621c17156e55de
Summary: `TextInput` component has been missing support for `numberOfLines` prop on iOS, this PR adds it. ## Changelog: [IOS] [ADDED] - Add support for `numberOfLines` prop on `TextInput` Pull Request resolved: facebook#49549 Test Plan: Tested on RNTester and added a new case utilizing the prop Reviewed By: cipolleschi Differential Revision: D69915133 Pulled By: j-piasecki fbshipit-source-id: b6a86bc64bd3c2129a64e99c9bcec9cf5bfde3bc
Summary: Pull Request resolved: facebook#49617 Changelog: [Internal] Reviewed By: huntie Differential Revision: D69981167 fbshipit-source-id: d4b2661b9ec746f30b512bad2c84d4dd0c1755c7
Summary: Pull Request resolved: facebook#49621 Changelog: [General][Internal] - remove duplicate call to json stringify Reviewed By: robhogan Differential Revision: D70082245 fbshipit-source-id: 01a4277a73978fcee1fc44b5bc6ae5a728e6b504
…nd host components that ReactNativeTypes defines (facebook#49601) Summary: Pull Request resolved: facebook#49601 Changelog: [internal] This creates a new module in React Native to define some of the types related to `HostInstance` that are currently defined in `ReactNativeTypes` (synced from the React repo). We want to remove the types from `ReactNativeTypes` so this is a necessary initial step. Reviewed By: huntie Differential Revision: D69996010 fbshipit-source-id: 21cfed4c222e22332936e56aca895fe578809792
Summary: Pull Request resolved: facebook#49602 Changelog: [internal] This just prepares for the removal of some types from `ReactNativeTypes`, and defines some types in `ReactNativePrivateInterface` that `ReactNativeTypes` expects to be defined after facebook/react#32446 Reviewed By: huntie Differential Revision: D69996009 fbshipit-source-id: 3c156b4dede8e217d6a828ab310533a2f8bfd42c
Summary: Pull Request resolved: facebook#49625 Changelog: [Internal] Reviewed By: huntie Differential Revision: D70084487 fbshipit-source-id: f4f0a06f3d7cf87659696ac41a27be5f5972d99f
Summary: Pull Request resolved: facebook#49629 I don't think `RCTSampleTurboCxxModule_v1` does anything useful anymore since we no longer use the `getTurboModuleWithJsInvoker:` API anywhere. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D70088150 fbshipit-source-id: 6391531c412dec18c63948db883aba07ab21499e
Summary: Pull Request resolved: facebook#49519 Changelog: [Internal] Reviewed By: huntie Differential Revision: D69661567 fbshipit-source-id: 35e3849eeea188f8bdfa0664c90d3d9e5328ef80
…ok#49615) Summary: The js prop name is `shouldRasterizeIOS` https://reactnative.dev/docs/view#shouldrasterizeios-ios, so we should change the prop name when parsing the props. ## Changelog: [IOS] [FIXED] - Fabric: Fixes shouldRasterizeIOS prop of View not work on iOS Pull Request resolved: facebook#49615 Test Plan: Enable `shouldRasterizeIOS` should work in Fabric: ``` <View shouldRasterizeIOS={true}> ``` Reviewed By: rshest Differential Revision: D70085480 Pulled By: javache fbshipit-source-id: 499524b7812f932b0da4a4f239ff6a79043b2f87
…ok#49564) Summary: Pull Request resolved: facebook#49564 Changelog: [Internal] - Added RefreshControl to buildTypes and aligned Flow with TS types Reviewed By: huntie Differential Revision: D69924368 fbshipit-source-id: 1a01ede28f9d0729c483036f8d3f9c9eced58286
Summary: fix: facebook#49368 description is provided inside the ticket. When we use TextInput on ios and manage selection with the selection prop, TextInput is reset when we change selection. ## Changelog: [IOS] [FIXED] - Fix selection makes TextInput clear its content when using children Pull Request resolved: facebook#49450 Test Plan: Tested with sample provided in ticket. I also test it with my app on both android and ios, but I cannot share video Reviewed By: sammy-SC Differential Revision: D69984616 Pulled By: cipolleschi fbshipit-source-id: a17169608f9df0ea1cb579e6038345f8e48bbc27
…ed by Flow tooling syntax (facebook#32382) Summary: ## Summary The `flow-api-translator` from the `hermes` repo does not support flow type spreads. It is currently not able to digest the ReactNativeTypes file as it contains unsupported syntax. The simplest solution is to change the type of the `TouchedViewDataAtPoint` to equivalent, yet supported by the Flow tooling. In this case the intersection can be used as the `TouchedViewDataAtPoint` and `InspectorData` have no common property. ## How did you test this change? Run yarn flow native DiffTrain build for [e670e72fa076449e40172e20d17cc67c1c15419c](facebook/react@e670e72) Reviewed By: rickhanlonii Differential Revision: D69661050 fbshipit-source-id: 1732bd9ac9c1af1e4c0b95758e92d9ccf3b807e6
Summary: Pull Request resolved: facebook#49593 Changelog: [Internal] Reviewed By: huntie Differential Revision: D69984581 fbshipit-source-id: 1a9607866dee564718081a15f9f6740dfb8dd0e4
…facebook#49559) Summary: Pull Request resolved: facebook#49559 ## Motivation Modernising the RN codebase to allow for modern Flow tooling to process it. ## This diff Renames `Animated.js` to `AnimatedExports.js`, and introduces an intermediate file that reexports `* as Animated` as a default. This should have equivalent runtime behavior, but allows for a common interface file: `Animated.js.flow` to reinterpret the module as having single exports. TypeScript treats this as a namespace. Changelog: [Internal] Reviewed By: huntie Differential Revision: D69849314 fbshipit-source-id: cdaa605ba5361d3349c6dd0e84fd0fbfee263941
) Summary: Pull Request resolved: facebook#49647 Changelog: [Internal] Reviewed By: panagosg7 Differential Revision: D70103465 fbshipit-source-id: 24f3c9fa7c56ed88609e60202d2a8c865fe18b47
…bug mode (facebook#49422) Summary: Fixes assert crash in facebook#46568 (comment). We can temporarily downgrade _LIBCPP_HARDENING_MODE to _LIBCPP_HARDENING_MODE_EXTENSIVE, it disables strict weak ordering check in debug mode. Actually, when we sort animation mutations, we don't need it to satisfy strict weak ordering. https://libcxx.llvm.org/Hardening.html#id3 Another solution is we make sort satisfy it, but we don't have any key to compare when two mutation is the same mutation type but not the same parentTag. Maybe we can use pointer of muation to compare? ## Changelog: [IOS] [FIXED] - Fabric: disable React-Fabric stable_sort strict weak sort check in debug mode Pull Request resolved: facebook#49422 Test Plan: Fixes facebook#46568 (comment). Reviewed By: sammy-SC Differential Revision: D69984937 Pulled By: cipolleschi fbshipit-source-id: 2a3d17970def513c4ba915068f25338169db82d6
Summary: Pull Request resolved: facebook#49638 Changelog: [internal] This adds a basic benchmark for different use cases of the `performance` API. Baseline: | (index) | Task name | Latency average (ns) | Latency median (ns) | Throughput average (ops/s) | Throughput median (ops/s) | Samples | | ------- | --------------------------------------------------------- | -------------------- | ------------------- | -------------------------- | ------------------------- | ------- | | 0 | 'mark (default)' | '5692.08 ± 0.33%' | '5590.00' | '177735 ± 0.02%' | '178891' | 175683 | | 1 | 'mark (with custom startTime)' | '5775.21 ± 0.27%' | '5690.00' | '174880 ± 0.02%' | '175747' | 173154 | | 2 | 'measure (with start and end timestamps)' | '6842.61 ± 0.35%' | '6730.00' | '147672 ± 0.02%' | '148588' | 146144 | | 3 | 'measure (with mark names)' | '6828.01 ± 0.75%' | '6700.00' | '148371 ± 0.02%' | '149254' | 146456 | | 4 | 'clearMarks' | '817.04 ± 0.03%' | '800.00' | '1233054 ± 0.01%' | '1250000' | 1223933 | | 5 | 'clearMeasures' | '835.59 ± 0.03%' | '820.00' | '1203121 ± 0.01%' | '1219512' | 1196758 | | 6 | 'mark + clearMarks' | '6137.42 ± 1.32%' | '5920.00' | '167661 ± 0.02%' | '168919' | 162935 | | 7 | 'measure + clearMeasures (with start and end timestamps)' | '7353.85 ± 0.60%' | '7200.00' | '138196 ± 0.02%' | '138889' | 135984 | | 8 | 'measure + clearMeasures (with mark names)' | '7342.93 ± 0.66%' | '7170.00' | '138726 ± 0.02%' | '139470' | 136186 | Reviewed By: bgirard Differential Revision: D66926182 fbshipit-source-id: b314b359147e758810598a241269d0c019f77466
…k#49639) Summary: Pull Request resolved: facebook#49639 Changelog: [internal] This refactors some code in the performance API and Perfetto to avoid doing unnecessary work when not tracing (e.g.: string manipulation for tracks). It also reduces the cost of logging marks/measures to tracing backends if not actively tracing (e.g.: moving the check to outside the lock). Reviewed By: bgirard Differential Revision: D69246772 fbshipit-source-id: 141a13f609f12be7ab8ca00f7aa1892b34770bbb
Summary: this is now canary and on everywhere DiffTrain build for [8a7b487e3b171c91f2fe18e9142af53f4dd83454](facebook/react@8a7b487) Reviewed By: jackpope, kassens Differential Revision: D69784493 fbshipit-source-id: 363d28c1ffe3eb264ac78f55bac105dd14f571d1
## Summary: Cherry pick a change from #2117 to add tooltip support ## Test Plan: Existing test page works --------- Co-authored-by: Nick Lefever <[email protected]>
## Summary: Cherry pick more commits from #2117 to implement Drag and Drop Support on View. ## Test Plan: Moved the TextInput example (which doesn't work on Fabric yet) to a new page, and added a View example (which does work on Fabric) https://github.com/user-attachments/assets/b00b25fc-24b9-4587-865f-a05f305d0f40 --------- Co-authored-by: Nick Lefever <[email protected]> Co-authored-by: Tommy Nguyen <[email protected]>
## Summary: - RNTester had a build phase "Build JS Bundle", while RNTester-macOS did not. Let's just copy it over - While we're here, update the OS deployment target to match our minimum. ## Test Plan: CI should pass
## Problem The "Lint PR Title" job in the PR workflow was consistently failing on first run with the following error: > Error: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved. After a rerun, the job would usually succeed, but this was annoying and required manual intervention. ## Root Cause The `lint-title` job uses the `microsoft-setup-toolchain` action, which has `cache-npm-dependencies: yarn` enabled by default. This causes the underlying `actions/setup-node` action to attempt to cache yarn directories. However, the `lint-title` job never runs `yarn install` - it only executes `npx @rnx-kit/[email protected]` to validate the PR title. Since the cache paths don't exist when the job runs for the first time (before dependencies are installed), the cache action fails with a validation error. ## Solution Disabled caching for the `lint-title` job by setting `cache-npm-dependencies: ''` in the setup-toolchain step. This is appropriate because: 1. The job doesn't install any dependencies - it only uses `npx` to run a single package 2. Caching provides no benefit for this job 3. This eliminates the cache path validation error ## Testing - Verified the YAML syntax is valid - The change is minimal and only affects the `lint-title` job - Other jobs that need caching remain unchanged Fixes #2403 <!-- START COPILOT CODING AGENT SUFFIX --> <details> <summary>Original prompt</summary> > > ---- > > *This section details on the original issue you should resolve* > > <issue_title>"Lint PR Title" PR Job always fails</issue_title> > <issue_description>The job always fails with the following error: > > > Error: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved. > > After a rerun it usually succeeds. But it's quite annoying, and would be nice to fix. </issue_description> > > ## Comments on the Issue (you are @copilot in this section) > > <comments> > </comments> > </details> Fixes #2721 <!-- START COPILOT CODING AGENT TIPS --> --- 💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs. --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Saadnajmi <[email protected]>
…2720) ## Summary: Two changes: - Similar to microsoft/react-native-windows#8077 , we would like to have JS event propagation (as well as native) stop if `keyDownEvents` or `keyUpEvents` is specified. - Add `Space` and `Enter` as default keyDown events for Pressable, to more closely match a button. ## Test Plan: Updated the test page:  --------- Co-authored-by: Tommy Nguyen <[email protected]>
## Summary: Implement onPaste for TextInput. This is fairly heavy as it involves heavily refactoring the `DataTransfer` object that is created and sent to JS: Notable changes: - Expose a `dataTransferPayload` method on `HostPlatformViewEventEmitter`. This means we now have a public method that returns a `JSI::Value`, which feels a bit odd. - Refactor the payload to not just be an array of items, but an object with files/iterms/types. This matches the [paper implementation](https://github.com/microsoft/react-native-macos/blob/258ce1ffac76cee44368ae3bb3bc6f911a14260e/packages/react-native/React/Views/RCTView.m#L1690-L1692) and roughly the [DataTransfer Web API](https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer) - Add a `pastedTypes` prop that matches paper to Fabric TextInput ## Test Plan: Existing example in Drag and drop test page still works, and returns the same object payload as paper. --------- Co-authored-by: Nick Lefever <[email protected]> Co-authored-by: Shawn Dempsey <[email protected]> Co-authored-by: Tommy Nguyen <[email protected]>
## Summary: While Microsoft is still far away from dropping support for iOS 18, we want to get a head-start on handling deprecated APIs for the latest OS releases. Silence these deprecated API warnings when making macOS 26, iOS 26, and watchOS 26 our minimums. ## Test Plan: There is no change to actual code.
- Add contentView initialization and container constraints for macOS - Fix layout issues with the dev loading view on macOS platform - Ensure proper positioning and sizing of the loading message window Fixes #2706 <!-- Thanks for submitting a pull request! We appreciate you spending the time to work on these changes. Please provide enough information so that others can review your pull request. The four fields below are mandatory. --> <!-- This fork of react-native provides React Native for macOS for the community. It also contains some changes that are required for usage internal to Microsoft. We are working on reducing the diff between Facebook's public version of react-native and our microsoft/react-native-macos fork. Long term, we want this fork to only contain macOS concerns and have the other iOS and Android concerns contributed upstream. If you are making a new change then one of the following should be done: - Consider if it is possible to achieve the desired behavior without making a change to microsoft/react-native-macos. Often a change can be made in a layer above in facebook/react-native instead. - Create a corresponding PR against [facebook/react-native](https://github.com/facebook/react-native) **Note:** Ideally you would wait for Facebook feedback before submitting to Microsoft, since we want to ensure that this fork doesn't deviate from upstream. --> ## Summary: <!-- Explain the **motivation** for making this change. What existing problem does the pull request solve? --> ## Test Plan: <!-- Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes the user interface. --> --------- Co-authored-by: ZJH <>
## Summary: Add the remaining view props we have on Paper that are missing on Fabric. I determined this by looking at BaseViewConfig.macos.js ## Test Plan: CI should pass
## Summary: Cherry pick another change from #2117 around Fabric We actually already had this prop in Paper, but I had removed it in one RNM upgrade. It turns out that onPress / pointer events don't expose a "count" property, so there isnt' an easy way to listen to double click. Adding this back + changes to add to Fabric. ## Test Plan: Event fires in Pressable Feedback example
Bumps [validator](https://github.com/validatorjs/validator.js) from 13.11.0 to 13.15.20. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/validatorjs/validator.js/releases">validator's releases</a>.</em></p> <blockquote> <h2>13.15.20</h2> <h3>Fixes, New Locales and Enhancements</h3> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2556">#2556</a> <code>isMobilePhone</code>: add <code>ar-QA</code> locale <a href="https://github.com/WardKhaddour"><code>@WardKhaddour</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2576">#2576</a> <code>isAlpha</code>/<code>isAlphanuneric</code>: add Indic locales (<code>ta-IN</code>, <code>te-IN</code>, <code>kn-IN</code>, <code>ml-IN</code>, <code>gu-IN</code>, <code>pa-IN</code>, <code>or-IN</code>) <a href="https://github.com/avadootharajesh"><code>@avadootharajesh</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2574">#2574</a> <code>isBase64</code>: improve padding regex <a href="https://github.com/KrayzeeKev"><code>@KrayzeeKev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2584">#2584</a> <code>isVAT</code>: improve <code>FR</code> locale <a href="https://github.com/iamAmer"><code>@iamAmer</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2608">#2608</a> <code>isURL</code>: improve protocol detection. Resolves CVE-2025-56200 <a href="https://github.com/theofidry"><code>@theofidry</code></a></li> <li><strong>Doc fixes and others:</strong> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2563">#2563</a> <a href="https://github.com/stoneLeaf"><code>@stoneLeaf</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2581">#2581</a> <a href="https://github.com/camillobruni"><code>@camillobruni</code></a></li> </ul> </li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/stoneLeaf"><code>@stoneLeaf</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2563">validatorjs/validator.js#2563</a></li> <li><a href="https://github.com/WardKhaddour"><code>@WardKhaddour</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2556">validatorjs/validator.js#2556</a></li> <li><a href="https://github.com/avadootharajesh"><code>@avadootharajesh</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2576">validatorjs/validator.js#2576</a></li> <li><a href="https://github.com/KrayzeeKev"><code>@KrayzeeKev</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2574">validatorjs/validator.js#2574</a></li> <li><a href="https://github.com/iamAmer"><code>@iamAmer</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2584">validatorjs/validator.js#2584</a></li> <li><a href="https://github.com/camillobruni"><code>@camillobruni</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2581">validatorjs/validator.js#2581</a></li> <li><a href="https://github.com/theofidry"><code>@theofidry</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2608">validatorjs/validator.js#2608</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/validatorjs/validator.js/compare/13.15.15...13.15.20">https://github.com/validatorjs/validator.js/compare/13.15.15...13.15.20</a></p> <h2>13.15.15</h2> <h3>Fixes, New Locales and Enhancements</h3> <ul> <li><code>isMobilePhone</code> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2514">#2514</a> improve <code>el-CY</code> locale <a href="https://github.com/rezk2ll"><code>@rezk2ll</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2512">#2512</a> improve <code>pt-AO</code> locale <a href="https://github.com/renaldodev"><code>@renaldodev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2502">#2502</a> improve <code>ar-OM</code> locale <a href="https://github.com/tomcastro"><code>@tomcastro</code></a></li> </ul> </li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2089">#2089</a> <code>isIP</code>: allow usage of option object <a href="https://github.com/pixelbucket-dev"><code>@pixelbucket-dev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2526">#2526</a> <code>isPassportNumber</code>: improve <code>CA</code> locale <a href="https://github.com/evanbechtol"><code>@evanbechtol</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2491">#2491</a> <code>isBase64</code>: improve validation based on RFC4648 <a href="https://github.com/aseyfpour"><code>@aseyfpour</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2479">#2479</a> <code>isPostalCode</code>: improve <code>FR</code> locale <a href="https://github.com/Rajput-Balram"><code>@Rajput-Balram</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2088">#2088</a> <code>isBefore</code>: allow usage of option object <a href="https://github.com/pixelbucket-dev"><code>@pixelbucket-dev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2346">#2346</a> <code>isRgbColor</code>: allow second digit in rgba alpha value <a href="https://github.com/controlol"><code>@controlol</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2453">#2453</a> <code>isIP</code>: improve IPv6 regex <a href="https://github.com/ShreySinha02"><code>@ShreySinha02</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2052">#2052</a> <code>isPostalCode</code>: add <code>PK</code> locale <a href="https://github.com/mateeni-dev"><code>@mateeni-dev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2529">#2529</a> <code>isPostalCode</code>: improve <code>TW</code> locale <a href="https://github.com/Crocsx"><code>@Crocsx</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2550">#2550</a> <code>isPassportNumber</code>: improve <code>US</code> locale <a href="https://github.com/yitzchak-schechter"><code>@yitzchak-schechter</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2553">#2553</a> <code>isUUID</code>: add <code>loose</code> option <a href="https://github.com/bc-m"><code>@bc-m</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2551">#2551</a> <code>isPostalCode</code>: add <code>BD</code> locale <a href="https://github.com/tanvirrb"><code>@tanvirrb</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2555">#2555</a> <code>isLicensePlate</code>: improve <code>pt-PT</code> locale <a href="https://github.com/castrosu"><code>@castrosu</code></a></li> <li><strong>Doc fixes and others:</strong> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2372">#2372</a> <a href="https://github.com/EmersonRabelo"><code>@EmersonRabelo</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2538">#2538</a> <a href="https://github.com/WikiRik"><code>@WikiRik</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2539">#2539</a> <a href="https://github.com/WikiRik"><code>@WikiRik</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2540">#2540</a> <a href="https://github.com/WikiRik"><code>@WikiRik</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2549">#2549</a> <a href="https://github.com/WikiRik"><code>@WikiRik</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2537">#2537</a> <a href="https://github.com/sgress454"><code>@sgress454</code></a></li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md">validator's changelog</a>.</em></p> <blockquote> <h1>13.15.20</h1> <h3>Fixes, New Locales and Enhancements</h3> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2556">#2556</a> <code>isMobilePhone</code>: add <code>ar-QA</code> locale <a href="https://github.com/WardKhaddour"><code>@WardKhaddour</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2576">#2576</a> <code>isAlpha</code>/<code>isAlphanuneric</code>: add Indic locales (<code>ta-IN</code>, <code>te-IN</code>, <code>kn-IN</code>, <code>ml-IN</code>, <code>gu-IN</code>, <code>pa-IN</code>, <code>or-IN</code>) <a href="https://github.com/avadootharajesh"><code>@avadootharajesh</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2574">#2574</a> <code>isBase64</code>: improve padding regex <a href="https://github.com/KrayzeeKev"><code>@KrayzeeKev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2584">#2584</a> <code>isVAT</code>: improve <code>FR</code> locale <a href="https://github.com/iamAmer"><code>@iamAmer</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2608">#2608</a> <code>isURL</code>: improve protocol detection. Resolves CVE-2025-56200 <a href="https://github.com/theofidry"><code>@theofidry</code></a></li> <li><strong>Doc fixes and others:</strong> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2563">#2563</a> <a href="https://github.com/stoneLeaf"><code>@stoneLeaf</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2581">#2581</a> <a href="https://github.com/camillobruni"><code>@camillobruni</code></a></li> </ul> </li> </ul> <h1>13.15.15</h1> <h3>Fixes, New Locales and Enhancements</h3> <ul> <li><code>isMobilePhone</code> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2514">#2514</a> improve <code>el-CY</code> locale <a href="https://github.com/rezk2ll"><code>@rezk2ll</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2512">#2512</a> improve <code>pt-AO</code> locale <a href="https://github.com/renaldodev"><code>@renaldodev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2502">#2502</a> improve <code>ar-OM</code> locale <a href="https://github.com/tomcastro"><code>@tomcastro</code></a></li> </ul> </li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2089">#2089</a> <code>isIP</code>: allow usage of option object <a href="https://github.com/pixelbucket-dev"><code>@pixelbucket-dev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2526">#2526</a> <code>isPassportNumber</code>: improve <code>CA</code> locale <a href="https://github.com/evanbechtol"><code>@evanbechtol</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2491">#2491</a> <code>isBase64</code>: improve validation based on RFC4648 <a href="https://github.com/aseyfpour"><code>@aseyfpour</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2479">#2479</a> <code>isPostalCode</code>: improve <code>FR</code> locale <a href="https://github.com/Rajput-Balram"><code>@Rajput-Balram</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2088">#2088</a> <code>isBefore</code>: allow usage of option object <a href="https://github.com/pixelbucket-dev"><code>@pixelbucket-dev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2346">#2346</a> <code>isRgbColor</code>: allow second digit in rgba alpha value <a href="https://github.com/controlol"><code>@controlol</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2453">#2453</a> <code>isIP</code>: improve IPv6 regex <a href="https://github.com/ShreySinha02"><code>@ShreySinha02</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2052">#2052</a> <code>isPostalCode</code>: add <code>PK</code> locale <a href="https://github.com/mateeni-dev"><code>@mateeni-dev</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2529">#2529</a> <code>isPostalCode</code>: improve <code>TW</code> locale <a href="https://github.com/Crocsx"><code>@Crocsx</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2550">#2550</a> <code>isPassportNumber</code>: improve <code>US</code> locale <a href="https://github.com/yitzchak-schechter"><code>@yitzchak-schechter</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2553">#2553</a> <code>isUUID</code>: add <code>loose</code> option <a href="https://github.com/bc-m"><code>@bc-m</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2551">#2551</a> <code>isPostalCode</code>: add <code>BD</code> locale <a href="https://github.com/tanvirrb"><code>@tanvirrb</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2555">#2555</a> <code>isLicensePlate</code>: improve <code>pt-PT</code> locale <a href="https://github.com/castrosu"><code>@castrosu</code></a></li> <li><strong>Doc fixes and others:</strong> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2372">#2372</a> <a href="https://github.com/EmersonRabelo"><code>@EmersonRabelo</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2538">#2538</a> <a href="https://github.com/WikiRik"><code>@WikiRik</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2539">#2539</a> <a href="https://github.com/WikiRik"><code>@WikiRik</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2540">#2540</a> <a href="https://github.com/WikiRik"><code>@WikiRik</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2549">#2549</a> <a href="https://github.com/WikiRik"><code>@WikiRik</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2537">#2537</a> <a href="https://github.com/sgress454"><code>@sgress454</code></a></li> </ul> </li> </ul> <h1>13.15.0</h1> <h3>New Features / Validators</h3> <ul> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2399">#2399</a> <code>isISO31661Numeric</code> <a href="https://github.com/RobinvanderVliet"><code>@RobinvanderVliet</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2294">#2294</a> <code>isULID</code> <a href="https://github.com/arafatkn"><code>@arafatkn</code></a></li> <li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2215">#2215</a> <code>isISO15924</code> <a href="https://github.com/xDivisionByZerox"><code>@xDivisionByZerox</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/validatorjs/validator.js/commit/30d4fe02c16d36ed471f12da658c4b5d843781e0"><code>30d4fe0</code></a> 13.15.20</li> <li><a href="https://github.com/validatorjs/validator.js/commit/cbef5088f02d36caf978f378bb845fe49bdc0809"><code>cbef508</code></a> fix(isURL): improve protocol detection. Resolves CVE-2025-56200 (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2608">#2608</a>)</li> <li><a href="https://github.com/validatorjs/validator.js/commit/6f436be36945e460ee624bf72a935a06daded859"><code>6f436be</code></a> Fix typo in validators.test.js (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2581">#2581</a>)</li> <li><a href="https://github.com/validatorjs/validator.js/commit/3c857088d58197453957a2b924dfedea328003b6"><code>3c85708</code></a> Fix: correct French VAT (FR) validation regex and add tests (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2584">#2584</a>)</li> <li><a href="https://github.com/validatorjs/validator.js/commit/eee525cd117d24ac905b9432f3f5a27e96aa9719"><code>eee525c</code></a> <a href="https://redirect.github.com/validatorjs/validator.js/issues/2491">#2491</a> <a href="https://redirect.github.com/validatorjs/validator.js/issues/2573">#2573</a> Simplify isBase64 to prevent stack overflow (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2574">#2574</a>)</li> <li><a href="https://github.com/validatorjs/validator.js/commit/abcc8ecb8569b531f8951d9f6343d2b156268e0c"><code>abcc8ec</code></a> feat(isAlpha, isAlphanumeric): add support for Indic locales (ta-IN, te-IN, k...</li> <li><a href="https://github.com/validatorjs/validator.js/commit/72573b3d1d8ab2e6575e6bba1cbe2b01f95f4935"><code>72573b3</code></a> Add Qatar phone number validation (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2556">#2556</a>)</li> <li><a href="https://github.com/validatorjs/validator.js/commit/243f6c5fe467d464deff1981275e9fc4403e84f9"><code>243f6c5</code></a> docs(isMACAddress): improve ambiguous option description (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2563">#2563</a>)</li> <li><a href="https://github.com/validatorjs/validator.js/commit/3847c6f90192bf9eec1aabc1bcb33e33d5810881"><code>3847c6f</code></a> maintenance: 2505 release (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2560">#2560</a>)</li> <li><a href="https://github.com/validatorjs/validator.js/commit/9e503840d7f10825fa4efe7cc593d42e041920c0"><code>9e50384</code></a> feat(isLicensePlate): Updated isLicensePlate to accept real pt-PT license pla...</li> <li>Additional commits viewable in <a href="https://github.com/validatorjs/validator.js/compare/13.11.0...13.15.20">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/react-native-macos/network/alerts). </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary: Back in macOS 13, Apple made a breaking change to NSView (I know, rare) to set the default of `clipsToBounds` from true to false to match iOS. We did some working around of it (See #1864 ). Now that our minimum is above macOS 13, we can remove this property. ## Test Plan: Booting paper and fabric seem fine.
- [x] Investigate the issue and locate the problematic code
- [x] Fix the macOS Configure Bundler dialog to add text input fields
- [x] Review code and address feedback
- [x] Remove formatting-only changes
- [x] Keep iOS code unchanged
- [x] Final security check
- [x] Complete implementation
## Issue Summary
The "Configure Bundler" screen in the dev menu was missing text input
fields on macOS. The iOS version properly creates an alert with three
text fields for IP, port, and entrypoint, but the macOS version only
showed a simple alert with a message and a "Use bundled JS" button
without any input fields.
## Changes Made
Updated the macOS implementation in `RCTDevMenu.mm` to:
- ✅ Add three NSTextField inputs for IP address, port, and entrypoint
using NSAlert's accessoryView property
- ✅ Implement proper button handlers for "Apply Changes", "Reset to
Default", and "Cancel"
- ✅ Match the iOS functionality for configuring the bundler location
exactly
- ✅ Keep iOS code section completely unchanged from original
- ✅ Only modify the macOS section within the `#else // [macOS` block
## Implementation Details
The implementation follows the same pattern used in `RCTAlertManager.mm`
for adding text fields to NSAlert dialogs on macOS:
1. Creates an NSView as an accessory view with frame 300x90 points
2. Adds three NSTextField instances stacked vertically (30 points apart)
3. Sets appropriate placeholders ("0.0.0.0", "8081", "index") matching
iOS
4. Handles three button responses (Apply Changes, Reset to Default,
Cancel)
5. Uses the same validation and configuration logic as iOS (inline in
macOS section)
### Code Organization
- **iOS section**: Completely unchanged from original implementation
- **macOS section**: New implementation with text input fields matching
iOS behavior
- Both platforms have their own inline logic to maintain clear
separation
## Testing
This is a UI-only change that requires manual testing on macOS. The
expected behavior is:
1. Open the dev menu (Cmd+D or shake gesture)
2. Select "Configure Bundler"
3. Verify three text input fields are displayed with placeholders
4. Test "Apply Changes" button with various inputs
5. Test "Reset to Default" button
6. Test "Cancel" button
## Security
- ✅ CodeQL check passed (no applicable code for analysis)
- ✅ No new security vulnerabilities introduced
- ✅ Uses same validation logic as existing iOS implementation
- Fixes #2746
<!-- START COPILOT CODING AGENT SUFFIX -->
<details>
<summary>Original prompt</summary>
>
> ----
>
> *This section details on the original issue you should resolve*
>
> <issue_title>[Dev Menu] TextInputs missing from "Configure Bundler"
screen of dev menu</issue_title>
> <issue_description>This is what the configure bundler screen looks
like:
>
> <img width="273" height="151" alt="Image"
src="https://github.com/user-attachments/assets/2f3eea1b-7d3e-4a64-9ab5-bc5c213200ff"
/>
>
> There should be text inputs for "Input Packager IP", "port and
entrypoint".. so something went wrong. </issue_description>
>
> ## Comments on the Issue (you are @copilot in this section)
>
> <comments>
> </comments>
>
</details>
- Fixes #2746
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: Saadnajmi <[email protected]>
## Summary Originally made with @Copilot . Added a new navbar "API" tab to the docsite that shows off the macOS specific props and APIs we have. ## Test Plan <img width="1232" height="1414" alt="image" src="https://github.com/user-attachments/assets/0037e592-2b33-4844-b77a-89f2d6ffe1b8" /> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Saadnajmi <[email protected]> Co-authored-by: Saad Najmi <[email protected]>
## Summary: You can launch the dev menu 3 ways: 1. Via the hot key Cmd+D (not supported on macOS at time of writing, see notes for why) 2. Via a right click (not enabled in Fabric yet, see #2749) 3. By pressing "d" in a metro server This PR is focused on fixing issues with (3). When the dev menu was presented from metro, we didn't have a window or mouse location to key off of, so a context menu would present at coordinates (0,0), AKA, the bottom left of your screen on macOS. This isn't very discoverable or useful. To match other platforms, I think it would be better to make the dev menu an NSAlert, presented on top of the apps window. Let's also preserve the right click context menu for now, since that is still useful and muscle memory for most macOS devs. Let's also use some newer NSMenu APIs to set the title / subtitle while we're here. ## Test Plan: https://github.com/user-attachments/assets/64bc0bc1-c1b2-4b39-a0cb-def87baa91f2 ## Notes We don't want to support (1) because we don't want to register hotkeys on the window, a window may have multiple instances of RN running. We could register it on the root view... but on macOS, keyboard focus is rarely in the root view (it's usually just on the window or application) so this isn't very discoverable. I'll elect to skip implementing this flow for now.
## Summary: You can launch the dev menu 3 ways: 1. Via the hot key Cmd+D (not supported on macOS at time of writing) 2. Via a right click (which wasn't enabled in Fabric yet) 3. By pressing "d" in metro. This had a couple of problems: We don't want to register hotkeys on the window, as a window may have multiple instances of RN running. We _could_ register it on the root view. That may be hard to discover as keyboard focus is rarely in the root view for Mac apps... it's usually just on the window or applicatin. The right click context menu wasn't available in Fabric, so this PR adds that. It involves a non trivial amount of code to add a contextContainer to RCTSurfaceHostingView and have RCTRootViewFactory set it. The other issue is that when the menu is presented from metro, it's odd for it to be a context menu off the window or (if it can't find the window) at coordiantes 0,0 (bottom left of the screen for macOS). To match other platforms, I think it would be better to make the deve menu an NSAlert. Let's also preserve the right click context menu for now, since we don't have a way to get the dev menu from the app without metro otherwise. ## Test Plan: Dev menu on Fabric: <img width="627" height="896" alt="image" src="https://github.com/user-attachments/assets/50a25f80-db10-4ca3-bbcf-44165d2f4ce8" />
## Summary: For React Native 0.81+ (the next version we're syncing to), JSC has been removed from the repo and must be installed via. third party package (see https://reactnative.dev/blog/2025/08/12/react-native-0.81#community-maintained-javascriptcore-support ). As such, let's remove JSC from our build matrix. ## Test Plan: CI should pass
…2751) <!-- Thanks for submitting a pull request! We appreciate you spending the time to work on these changes. Please provide enough information so that others can review your pull request. The four fields below are mandatory. --> <!-- This fork of react-native provides React Native for macOS for the community. It also contains some changes that are required for usage internal to Microsoft. We are working on reducing the diff between Facebook's public version of react-native and our microsoft/react-native-macos fork. Long term, we want this fork to only contain macOS concerns and have the other iOS and Android concerns contributed upstream. If you are making a new change then one of the following should be done: - Consider if it is possible to achieve the desired behavior without making a change to microsoft/react-native-macos. Often a change can be made in a layer above in facebook/react-native instead. - Create a corresponding PR against [facebook/react-native](https://github.com/facebook/react-native) **Note:** Ideally you would wait for Facebook feedback before submitting to Microsoft, since we want to ensure that this fork doesn't deviate from upstream. --> ## Summary: updates the version in the getting started guide to 0.79 <!-- Explain the **motivation** for making this change. What existing problem does the pull request solve? --> ## Test Plan: visit the docs page to see the updated page <!-- Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes the user interface. -->
## Summary: Resolves #2723
## Summary: Followup from #2756 (comment)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.1)
Can you help keep this open source service alive? 💖 Please sponsor : )