Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
73d7073
fix: correct overlay highlighting in code examples (#7669)
mrbadri May 15, 2025
4a7bdc1
fix: the value property of checkbox to the checked property (#7804)
kosh-jp May 16, 2025
ae4a40a
No need for useState here — useCounter handles the state internally (…
gbhardwaj00 May 16, 2025
a73055f
docs: fix misplaced prepositional phrase error (#7799)
mehmetmalli May 16, 2025
e2d9fd7
Fix wrong documentation for effect events (#7800)
gbhardwaj00 May 16, 2025
b92bb59
Remove stray console.log and image (#7814)
rickhanlonii May 16, 2025
b3b2166
fix(template): remove unnecessary import of React in template code (#…
dahoho May 16, 2025
9fb0519
fix(reference): correct singular form of 'Server Functions' to 'Serve…
dahoho May 16, 2025
69ce5d3
Add bold mono font (#7815)
rickhanlonii May 16, 2025
8b2fe2b
Remove TODO comments and convert them to issues (#7743)
BartoszKlonowski May 16, 2025
00587d6
Add example of `useActionState` handling execution order (#7733)
ajits01 May 16, 2025
79e1c48
docs: update vite link (#7784)
bornkiss May 16, 2025
c289cd0
docs: add bsky link (#7781)
bornkiss May 16, 2025
7ab1969
React Montreal Meetings have a new link (#7809)
EricCote May 16, 2025
f275c9d
fix: remove useless content (#6615)
loveloki May 17, 2025
0b68054
fix: wrong verb tense in doc (#7818)
aalhoura May 17, 2025
65d297e
fix: typo in challenge solution (#7816)
aalhoura May 17, 2025
f15830d
Use experiemental in all uEE doc sandboxes (#7820)
rickhanlonii May 20, 2025
2571aee
Author: Josh Story <[email protected]>
gnoff May 21, 2025
3ee3a60
Fix wrong explanation in preserving-and-resetting-state (#6043)
smikitky May 26, 2025
9db23d6
fix: correct broken WAI-ARIA modal dialog link in createPortal refere…
dimatitov Jun 2, 2025
bbcb9af
Update meetups.md adding React Rajasthan Community (#7831)
shubhamui Jun 2, 2025
a2d17d1
Update components-and-hooks-must-be-pure.md (#7830)
ExercitusMortem Jun 2, 2025
94424ae
Update referencing-values-with-refs.md (#7829)
cHaLkdusT Jun 2, 2025
172f0b9
Add uwu click animation (#7822)
Jinsoo1004 Jun 2, 2025
3dcc4c4
Fix typo and clarily that a server function reference is created only…
kapantzak Jun 2, 2025
06965de
Add React Alicante 2025 to Conferences page (#7674)
mikedidomizio Jun 2, 2025
e901790
fix: use const where applicable in examples for keeping components pu…
ad1992 Jun 2, 2025
87cef4a
Remove `forwardRef` reference from API listing (#7837)
kassens Jun 3, 2025
c60173f
docs: Refactor context provider usage (#7793)
nannany Jun 3, 2025
37b09ea
fix: typo in docs on prerendering (#7823)
yeskunall Jun 3, 2025
5927c4e
Replace Context.Provider with Context (#7838)
kassens Jun 3, 2025
5dca520
fix(blog): resolve typo in React 19 blog post (`refs` → `ref`s) (#7828)
amir78729 Jun 3, 2025
50d6991
Update analyze_comment.yml (#7840)
jtn-dev Jun 6, 2025
82f2863
Fix #6915: typo fix (#6917)
Rekl0w Jun 28, 2025
741e8d9
fix: update ids to point to right part of the docs (#7854)
yeskunall Jun 28, 2025
c0c955e
chore: remove unused date-fns (#7856)
noritaka1166 Jun 28, 2025
b79ad22
chore: fix typo in resource and metadata components documentation (#7…
Rekl0w Jul 2, 2025
341c312
fix: correct typo in scaling-up-with-reducer-and-context.md (#7390)
bcdipesh Jul 2, 2025
4846020
fix flushSync link (#7862)
rickhanlonii Jul 9, 2025
84a5696
docs(react): fix grammar in forward ref deprecation message (#7864)
SimonSchick Jul 10, 2025
e245b77
[be] Add deadlinks script (#7879)
poteto Jul 18, 2025
d52b3ec
Fix deadlinks (#7880)
poteto Jul 18, 2025
8ad6c60
Revert "Fix deadlinks (#7880)" (#7881)
poteto Jul 21, 2025
79eb0c5
Update deadlinks script to take into account redirects (#7882)
poteto Jul 21, 2025
aa5448d
Fix deadlinks take 2 (#7883)
poteto Jul 21, 2025
b165e71
[compiler] Rewrite React Compiler Docs (#7868)
poteto Jul 21, 2025
d7160a8
[compiler] Fix misleading code example (#7889)
poteto Jul 21, 2025
b462664
[compiler] Flesh out incremental adoption intro more (#7890)
poteto Jul 21, 2025
b6450e8
[compiler] Add note about gating evaluation (#7891)
poteto Jul 21, 2025
e07ac94
Remove non-existent meetup group (Edinburgh, Scotland) (#7895)
melanterite Jul 25, 2025
a102b44
merging all conflicts
react-translations-bot Jul 28, 2025
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
62 changes: 62 additions & 0 deletions scripts/deadLinkChecker.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ const PUBLIC_DIR = path.join(__dirname, '../public');
const fileCache = new Map();
const anchorMap = new Map(); // Map<filepath, Set<anchorId>>
const contributorMap = new Map(); // Map<anchorId, URL>
<<<<<<< HEAD
=======
const redirectMap = new Map(); // Map<source, destination>
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
let errorCodes = new Set();

async function readFileWithCache(filePath) {
Expand Down Expand Up @@ -162,6 +166,25 @@ async function validateLink(link) {
return {valid: true};
}

<<<<<<< HEAD
=======
// Check for redirects
if (redirectMap.has(urlWithoutAnchor)) {
const redirectDestination = redirectMap.get(urlWithoutAnchor);
if (
redirectDestination.startsWith('http://') ||
redirectDestination.startsWith('https://')
) {
return {valid: true};
}
const redirectedLink = {
...link,
url: redirectDestination + (anchorMatch ? anchorMatch[0] : ''),
};
return validateLink(redirectedLink);
}

>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
// Check if it's an error code link
const errorCodeMatch = urlWithoutAnchor.match(/^\/errors\/(\d+)$/);
if (errorCodeMatch) {
Expand Down Expand Up @@ -295,17 +318,52 @@ async function fetchErrorCodes() {
}
const codes = await response.json();
errorCodes = new Set(Object.keys(codes));
<<<<<<< HEAD
console.log(chalk.gray(`Fetched ${errorCodes.size} React error codes\n`));
=======
console.log(chalk.gray(`Fetched ${errorCodes.size} React error codes`));
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
} catch (error) {
throw new Error(`Failed to fetch error codes: ${error.message}`);
}
}

<<<<<<< HEAD
=======
async function buildRedirectsMap() {
try {
const vercelConfigPath = path.join(__dirname, '../vercel.json');
const vercelConfig = JSON.parse(
await fs.promises.readFile(vercelConfigPath, 'utf8')
);

if (vercelConfig.redirects) {
for (const redirect of vercelConfig.redirects) {
redirectMap.set(redirect.source, redirect.destination);
}
console.log(
chalk.gray(`Loaded ${redirectMap.size} redirects from vercel.json`)
);
}
} catch (error) {
console.log(
chalk.yellow(
`Warning: Could not load redirects from vercel.json: ${error.message}\n`
)
);
}
}

>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
async function main() {
const files = getMarkdownFiles();
console.log(chalk.gray(`Checking ${files.length} markdown files...`));

await fetchErrorCodes();
<<<<<<< HEAD
=======
await buildRedirectsMap();
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
await buildContributorMap();
await buildAnchorMap(files);

Expand All @@ -315,6 +373,10 @@ async function main() {
const totalLinks = results.reduce((sum, r) => sum + r.totalLinks, 0);

if (deadLinks.length > 0) {
<<<<<<< HEAD
=======
console.log('\n');
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9
for (const link of deadLinks) {
console.log(chalk.yellow(`${link.file}:${link.line}:${link.column}`));
console.log(chalk.reset(` Link text: ${link.text}`));
Expand Down
6 changes: 3 additions & 3 deletions src/content/blog/2024/10/21/react-compiler-beta-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,11 @@ Or, if you're using Yarn:
yarn add -D eslint-plugin-react-compiler@beta
</TerminalBlock>

After installation you can enable the linter by [adding it to your ESLint config](/learn/react-compiler#installing-eslint-plugin-react-compiler). Using the linter helps identify Rules of React breakages, making it easier to adopt the compiler when it's fully released.
After installation you can enable the linter by [adding it to your ESLint config](/learn/react-compiler/installation#eslint-integration). Using the linter helps identify Rules of React breakages, making it easier to adopt the compiler when it's fully released.

## Backwards Compatibility {/*backwards-compatibility*/}

React Compiler produces code that depends on runtime APIs added in React 19, but we've since added support for the compiler to also work with React 17 and 18. If you are not on React 19 yet, in the Beta release you can now try out React Compiler by specifying a minimum `target` in your compiler config, and adding `react-compiler-runtime` as a dependency. [You can find docs on this here](/learn/react-compiler#using-react-compiler-with-react-17-or-18).
React Compiler produces code that depends on runtime APIs added in React 19, but we've since added support for the compiler to also work with React 17 and 18. If you are not on React 19 yet, in the Beta release you can now try out React Compiler by specifying a minimum `target` in your compiler config, and adding `react-compiler-runtime` as a dependency. [You can find docs on this here](/reference/react-compiler/configuration#react-17-18).

## Using React Compiler in libraries {/*using-react-compiler-in-libraries*/}

Expand All @@ -86,7 +86,7 @@ React Compiler can also be used to compile libraries. Because React Compiler nee

Because your code is pre-compiled, users of your library will not need to have the compiler enabled in order to benefit from the automatic memoization applied to your library. If your library targets apps not yet on React 19, specify a minimum `target` and add `react-compiler-runtime` as a direct dependency. The runtime package will use the correct implementation of APIs depending on the application's version, and polyfill the missing APIs if necessary.

[You can find more docs on this here.](/learn/react-compiler#using-the-compiler-on-libraries)
[You can find more docs on this here.](/reference/react-compiler/compiling-libraries)

## Opening up React Compiler Working Group to everyone {/*opening-up-react-compiler-working-group-to-everyone*/}

Expand Down
3 changes: 0 additions & 3 deletions src/content/community/meetups.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,6 @@ Do you have a local React.js meetup? Add it here! (Please keep the list alphabet
## Portugal {/*portugal*/}
* [Lisbon](https://www.meetup.com/JavaScript-Lisbon/)

## Scotland (UK) {/*scotland-uk*/}
* [Edinburgh](https://www.meetup.com/React-Scotland/)

## Spain {/*spain*/}
* [Barcelona](https://www.meetup.com/ReactJS-Barcelona/)

Expand Down
4 changes: 4 additions & 0 deletions src/content/learn/add-react-to-an-existing-project.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,11 @@ Here's how we recommend to set it up:
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.

<<<<<<< HEAD
This ensures the React part of your app can [benefit from the best practices](/learn/creating-a-react-app#full-stack-frameworks) baked into those frameworks.
=======
This ensures the React part of your app can [benefit from the best practices](/learn/build-a-react-app-from-scratch#consider-using-a-framework) baked into those frameworks.
>>>>>>> e07ac94bc2c1ffd817b13930977be93325e5bea9

Many React-based frameworks are full-stack and let your React app take advantage of the server. However, you can use the same approach even if you can't or don't want to run JavaScript on the server. In that case, serve the HTML/CSS/JS export ([`next export` output](https://nextjs.org/docs/advanced-features/static-html-export) for Next.js, default for Gatsby) at `/some-app/` instead.

Expand Down
Loading
Loading