diff --git a/.github/workflows/discord_notify.yml b/.github/workflows/discord_notify.yml
index ff2caa1bf..02afa95b4 100644
--- a/.github/workflows/discord_notify.yml
+++ b/.github/workflows/discord_notify.yml
@@ -2,11 +2,26 @@ name: Discord Notify
on:
pull_request_target:
+<<<<<<< HEAD
types: [ labeled ]
jobs:
notify:
if: ${{ github.event.label.name == 'React Core Team' }}
+=======
+ types: [labeled]
+
+jobs:
+ check_maintainer:
+ uses: facebook/react/.github/workflows/shared_check_maintainer.yml@main
+ with:
+ actor: ${{ github.event.pull_request.user.login }}
+ is_remote: true
+
+ notify:
+ if: ${{ needs.check_maintainer.outputs.is_core_team == 'true' }}
+ needs: check_maintainer
+>>>>>>> a5aad0d5e92872ef715b462b1dd6dcbeb45cf781
runs-on: ubuntu-latest
steps:
- name: Discord Webhook Action
@@ -18,4 +33,8 @@ jobs:
embed-author-icon-url: ${{ github.event.pull_request.user.avatar_url }}
embed-title: '#${{ github.event.number }} (+${{github.event.pull_request.additions}} -${{github.event.pull_request.deletions}}): ${{ github.event.pull_request.title }}'
embed-description: ${{ github.event.pull_request.body }}
- embed-url: ${{ github.event.pull_request.html_url }}
\ No newline at end of file
+<<<<<<< HEAD
+ embed-url: ${{ github.event.pull_request.html_url }}
+=======
+ embed-url: ${{ github.event.pull_request.html_url }}
+>>>>>>> a5aad0d5e92872ef715b462b1dd6dcbeb45cf781
diff --git a/.github/workflows/label_core_team_prs.yml b/.github/workflows/label_core_team_prs.yml
new file mode 100644
index 000000000..3d9fa2be1
--- /dev/null
+++ b/.github/workflows/label_core_team_prs.yml
@@ -0,0 +1,32 @@
+name: Label Core Team PRs
+
+on:
+ pull_request_target:
+
+env:
+ TZ: /usr/share/zoneinfo/America/Los_Angeles
+ # https://github.com/actions/cache/blob/main/tips-and-workarounds.md#cache-segment-restore-timeout
+ SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1
+
+jobs:
+ check_maintainer:
+ uses: facebook/react/.github/workflows/shared_check_maintainer.yml@main
+ with:
+ actor: ${{ github.event.pull_request.user.login }}
+ is_remote: true
+
+ label:
+ if: ${{ needs.check_maintainer.outputs.is_core_team == 'true' }}
+ runs-on: ubuntu-latest
+ needs: check_maintainer
+ steps:
+ - name: Label PR as React Core Team
+ uses: actions/github-script@v7
+ with:
+ script: |
+ github.rest.issues.addLabels({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: ${{ github.event.number }},
+ labels: ['React Core Team']
+ });
diff --git a/src/content/community/conferences.md b/src/content/community/conferences.md
index ff0803c56..dbb96578b 100644
--- a/src/content/community/conferences.md
+++ b/src/content/community/conferences.md
@@ -11,15 +11,36 @@ Do you know of a local React.js conference? Add it here! (Please keep the list c
## Upcoming Conferences {/*upcoming-conferences*/}
### React Paris 2025 {/*react-paris-2025*/}
+<<<<<<< HEAD
March 20 - 21, 2024. In-person in Paris, France (hybrid event)
[Website](https://react.paris/) - [Twitter](https://x.com/BeJS_)
+=======
+March 20 - 21, 2025. In-person in Paris, France (hybrid event)
+
+[Website](https://react.paris/) - [Twitter](https://x.com/BeJS_)
+
+### React Native Connection 2025 {/*react-native-connection-2025*/}
+April 3 (Reanimated Training) + April 4 (Conference), 2025. Paris, France.
+
+[Website](https://reactnativeconnection.io/) - [X](https://x.com/reactnativeconn) - [Bluesky](https://bsky.app/profile/reactnativeconnect.bsky.social)
+
+### CityJS London 2025 {/*cityjs-london*/}
+April 23 - 25, 2025. In-person in London, UK
+
+[Website](https://london.cityjsconf.org/) - [Twitter](https://x.com/cityjsconf) - [Bluesky](https://bsky.app/profile/cityjsconf.bsky.social)
+>>>>>>> a5aad0d5e92872ef715b462b1dd6dcbeb45cf781
### App.js Conf 2025 {/*appjs-conf-2025*/}
May 28 - 30, 2025. In-person in Kraków, Poland + remote
[Website](https://appjs.co) - [Twitter](https://twitter.com/appjsconf)
+### CityJS Athens 2025 {/*cityjs-athens*/}
+May 27 - 31, 2025. In-person in Athens, Greece
+
+[Website](https://athens.cityjsconf.org/) - [Twitter](https://x.com/cityjsconf) - [Bluesky](https://bsky.app/profile/cityjsconf.bsky.social)
+
### React Summit 2025 {/*react-summit-2025*/}
June 13 - 17, 2025. In-person in Amsterdam, Netherlands + remote (hybrid event)
diff --git a/src/content/learn/add-react-to-an-existing-project.md b/src/content/learn/add-react-to-an-existing-project.md
index 0457d0cfc..c5ef17345 100644
--- a/src/content/learn/add-react-to-an-existing-project.md
+++ b/src/content/learn/add-react-to-an-existing-project.md
@@ -20,9 +20,15 @@ title: 將 React 加入到一個現有的專案
以下是我們推薦的設定方式:
+<<<<<<< HEAD
1. 使用其中一個[基於 React 的框架]((/learn/start-a-new-react-project))來**建構你的應用程式中的 React 部分**。
2. 在你的框架設定中將 **`/some-app` 指定為 *基本路徑***(這裡是如何設定:[Next.js](https://nextjs.org/docs/app/api-reference/config/next-config-js/basePath)、[Gatsby](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting/path-prefix/))。
3. **設定你的伺服器或代理**,讓所有在 `/some-app/` 下的請求都由 React 應用程式處理。
+=======
+1. **Build the React part of your app** using one of the [React-based frameworks](/learn/start-a-new-react-project).
+2. **Specify `/some-app` as the *base path*** in your framework's configuration (here's how: [Next.js](https://nextjs.org/docs/app/api-reference/config/next-config-js/basePath), [Gatsby](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting/path-prefix/)).
+3. **Configure your server or a proxy** so that all requests under `/some-app/` are handled by your React app.
+>>>>>>> a5aad0d5e92872ef715b462b1dd6dcbeb45cf781
這可以確保你的應用程式中 React 部分能夠[受益於這些框架所內建的最佳實踐](/learn/start-a-new-react-project#can-i-use-react-without-a-framework)。
diff --git a/src/content/learn/react-developer-tools.md b/src/content/learn/react-developer-tools.md
index 5b141ea90..4e465e570 100644
--- a/src/content/learn/react-developer-tools.md
+++ b/src/content/learn/react-developer-tools.md
@@ -54,7 +54,11 @@ react-devtools
## 行動裝置(React Native) {/*mobile-react-native*/}
+<<<<<<< HEAD
若要檢查使用 [React Native](https://reactnative.dev/) 建立的應用程式,你可以使用 [React Native DevTools](https://reactnative.dev/docs/react-native-devtools),這是一個深度整合 React Developer Tools 的內建偵錯工具。所有功能都與瀏覽器擴充功能完全相同,包含原生元素的高亮顯示和選取功能。
+=======
+To inspect apps built with [React Native](https://reactnative.dev/), you can use [React Native DevTools](https://reactnative.dev/docs/react-native-devtools), the built-in debugger that deeply integrates React Developer Tools. All features work identically to the browser extension, including native element highlighting and selection.
+>>>>>>> a5aad0d5e92872ef715b462b1dd6dcbeb45cf781
[深入了解 React Native 的偵錯功能。](https://reactnative.dev/docs/debugging)
diff --git a/src/content/reference/react/useActionState.md b/src/content/reference/react/useActionState.md
index a6905cec2..f83f6bdc7 100644
--- a/src/content/reference/react/useActionState.md
+++ b/src/content/reference/react/useActionState.md
@@ -68,7 +68,7 @@ If used with a Server Function, `useActionState` allows the server's response fr
`useActionState` returns an array with the following values:
1. The current state. During the first render, it will match the `initialState` you have passed. After the action is invoked, it will match the value returned by the action.
-2. A new action that you can pass as the `action` prop to your `form` component or `formAction` prop to any `button` component within the form.
+2. A new action that you can pass as the `action` prop to your `form` component or `formAction` prop to any `button` component within the form. The action can also be called manually within [`startTransition`](/reference/react/startTransition).
3. The `isPending` flag that tells you whether there is a pending Transition.
#### Caveats {/*caveats*/}
@@ -102,8 +102,8 @@ function MyComponent() {
`useActionState` returns an array with the following items:
1. The