diff --git a/public/images/team/noahlemen.jpg b/public/images/team/noahlemen.jpg
new file mode 100644
index 000000000..e3f788d89
Binary files /dev/null and b/public/images/team/noahlemen.jpg differ
diff --git a/src/components/Layout/Footer.tsx b/src/components/Layout/Footer.tsx
index 67e4667bf..26bdf6711 100644
--- a/src/components/Layout/Footer.tsx
+++ b/src/components/Layout/Footer.tsx
@@ -333,7 +333,7 @@ export function Footer() {
Terms
-
+
* Released under MIT license
- * https://github.com/sindresorhus/linkify-urls/blob/edd75a64a9c36d7025f102f666ddbb6cf0afa7cd/index.js#L4C25-L4C137
+ * https://github.com/sindresorhus/linkify-urls/blob/b2397096df152e2f799011f7a48e5f73b4bf1c7e/index.js#L5C1-L7C1
*
* The regex is used to extract URL from the string for linkify.
*/
-const urlRegex =
- /((?
+ /((?:https?(?::\/\/))(?:www\.)?(?:[a-zA-Z\d-_.]+(?:(?:\.|@)[a-zA-Z\d]{2,})|localhost)(?:(?:[-a-zA-Z\d:%_+.~#!?&//=@]*)(?:[,](?![\s]))*)*)/g;
// When the message contains a URL (like https://fb.me/react-refs-must-have-owner),
// make it a clickable link.
function urlify(str: string): React.ReactNode[] {
- const segments = str.split(urlRegex);
+ const segments = str.split(urlRegex());
return segments.map((message, i) => {
if (i % 2 === 1) {
diff --git a/src/content/community/acknowledgements.md b/src/content/community/acknowledgements.md
index e6f6ccaf3..c87a92979 100644
--- a/src/content/community/acknowledgements.md
+++ b/src/content/community/acknowledgements.md
@@ -35,6 +35,7 @@ We'd like to recognize a few people who have made significant contributions to R
* [Joe Critchley](https://github.com/joecritch)
* [Jeff Morrison](https://github.com/jeffmo)
* [Luna Ruan](https://github.com/lunaruan)
+* [Kathryn Middleton](https://github.com/kmiddleton14)
* [Keyan Zhang](https://github.com/keyz)
* [Marco Salazar](https://github.com/salazarm)
* [Mengdi Chen](https://github.com/mondaychen)
@@ -46,6 +47,7 @@ We'd like to recognize a few people who have made significant contributions to R
* [Philipp Spiess](https://github.com/philipp-spiess)
* [Rachel Nabors](https://github.com/rachelnabors)
* [Robert Zhang](https://github.com/robertzhidealx)
+* [Samuel Susla](https://github.com/sammy-SC)
* [Sander Spies](https://github.com/sanderspies)
* [Sasha Aickin](https://github.com/aickin)
* [Sean Keegan](https://github.com/seanryankeegan)
diff --git a/src/content/community/conferences.md b/src/content/community/conferences.md
index 7b104c14b..f2a744306 100644
--- a/src/content/community/conferences.md
+++ b/src/content/community/conferences.md
@@ -10,6 +10,11 @@ Do you know of a local React.js conference? Add it here! (Please keep the list c
## Upcoming Conferences {/*upcoming-conferences*/}
+### React Summit 2024 {/*react-summit-2024*/}
+June 14 & 18, 2024. In-person in Amsterdam, Netherlands + remote (hybrid event)
+
+[Website](https://reactsummit.com/) - [Twitter](https://twitter.com/reactsummit) - [Videos](https://portal.gitnation.org/)
+
### React Paris 2024 {/*react-paris-2024*/}
March 22, 2024. In-person in Paris, France + Remote (hybrid)
@@ -20,6 +25,11 @@ April 19 - 20, 2024. In-person in Miami, FL, USA
[Website](https://reactmiami.com/) - [Twitter](https://twitter.com/ReactMiamiConf)
+### Epic Web Conf 2024 {/*epic-web-2024*/}
+April 10 - 11, 2024. In-person in Park City, UT, USA
+
+[Website](https://www.epicweb.dev/conf) - [YouTube](https://www.youtube.com/@EpicWebDev)
+
### App.js Conf 2024 {/*appjs-conf-2024*/}
May 22 - 24, 2024. In-person in Kraków, Poland + remote
diff --git a/src/content/community/team.md b/src/content/community/team.md
index 3b3c56e5f..0c6c63a8b 100644
--- a/src/content/community/team.md
+++ b/src/content/community/team.md
@@ -42,10 +42,6 @@ Current members of the React team are listed in alphabetical order below.
Josh majored in Mathematics and discovered programming while in college. His first professional developer job was to program insurance rate calculations in Microsoft Excel, the paragon of Reactive Programming which must be why he now works on React. In between that time Josh has been an IC, Manager, and Executive at a few startups. outside of work he likes to push his limits with cooking.
-
- Kathryn initially discovered web development when she wanted to make her myspace page look cool. She ended up majoring in Computer Science, and quickly became a huge fan of React building features on the Instagram.com team. Outside of work she loves playing pingpong, teaching spin classes, and going plant shopping.
-
-
Lauren’s programming career peaked when she first discovered the `
@@ -62,12 +58,12 @@ Current members of the React team are listed in alphabetical order below.
Mofei started programming when she realized it can help her cheat in video games. She focused on operating systems in undergrad / grad school, but now finds herself happily tinkering on React. Outside of work, she enjoys debugging bouldering problems and planning her next backpacking trip(s).
-
- Ricky majored in theoretical math and somehow found himself on the React Native team for a couple years before joining the React team. When he's not programming you can find him snowboarding, biking, climbing, golfing, or closing GitHub issues that do not match the issue template.
+
+ Noah’s interest in UI programming sparked during his education in music technology at NYU. At Meta, he's worked on internal tools, browsers, web performance, and is currently focused on React. Outside of work, Noah can be found tinkering with synthesizers or spending time with his cat.
-
- Samuel’s interest in programming started with the movie Matrix. He still has Matrix screen saver. Before working on React, he was focused on writing iOS apps. Outside of work, Samuel enjoys playing beach volleyball, squash, badminton and spending time with his family.
+
+ Ricky majored in theoretical math and somehow found himself on the React Native team for a couple years before joining the React team. When he's not programming you can find him snowboarding, biking, climbing, golfing, or closing GitHub issues that do not match the issue template.
diff --git a/src/content/learn/adding-interactivity.md b/src/content/learn/adding-interactivity.md
index d1359d05a..0d4a3b23f 100644
--- a/src/content/learn/adding-interactivity.md
+++ b/src/content/learn/adding-interactivity.md
@@ -646,7 +646,6 @@ Arrays are another type of mutable JavaScript objects you can store in state and
```js
import { useState } from 'react';
-let nextId = 3;
const initialList = [
{ id: 0, title: 'Big Bellies', seen: false },
{ id: 1, title: 'Lunar Landscape', seen: false },
@@ -714,7 +713,6 @@ If copying arrays in code gets tedious, you can use a library like [Immer](https
import { useState } from 'react';
import { useImmer } from 'use-immer';
-let nextId = 3;
const initialList = [
{ id: 0, title: 'Big Bellies', seen: false },
{ id: 1, title: 'Lunar Landscape', seen: false },
diff --git a/src/content/learn/thinking-in-react.md b/src/content/learn/thinking-in-react.md
index eec4ae336..0f05a0569 100644
--- a/src/content/learn/thinking-in-react.md
+++ b/src/content/learn/thinking-in-react.md
@@ -484,12 +484,26 @@ function FilterableProductTable({ products }) {
Inside the `SearchBar`, you will add the `onChange` event handlers and set the parent state from them:
-```js {5}
- onFilterTextChange(e.target.value)} />
+```js {4,5,13,19}
+function SearchBar({
+ filterText,
+ inStockOnly,
+ onFilterTextChange,
+ onInStockOnlyChange
+}) {
+ return (
+