Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
10000 commits
Select commit Hold shift + click to select a range
bfaa7be
Empty commit to update SHA
vkameswaran May 9, 2026
674e0df
Empty commit to update SHA
vkameswaran May 9, 2026
830c55f
Empty commit to update SHA
vkameswaran May 9, 2026
e0ed6c6
Empty commit to update SHA
vkameswaran May 9, 2026
eb1d2d1
Empty commit to update SHA
vkameswaran May 9, 2026
8ae0fd8
Empty commit to update SHA
vkameswaran May 10, 2026
9c7d19c
Empty commit to update SHA
vkameswaran May 10, 2026
94c44de
Empty commit to update SHA
vkameswaran May 10, 2026
947d219
Empty commit to update SHA
vkameswaran May 10, 2026
a62e36e
Empty commit to update SHA
vkameswaran May 10, 2026
de0950c
Empty commit to update SHA
vkameswaran May 10, 2026
3c8ac83
Empty commit to update SHA
vkameswaran May 10, 2026
569859d
Empty commit to update SHA
vkameswaran May 10, 2026
c73537c
Empty commit to update SHA
vkameswaran May 10, 2026
0e6a7ca
Empty commit to update SHA
vkameswaran May 10, 2026
17e0a2e
Empty commit to update SHA
vkameswaran May 10, 2026
b84d659
Empty commit to update SHA
vkameswaran May 10, 2026
78d1aef
Empty commit to update SHA
vkameswaran May 10, 2026
17955f2
Empty commit to update SHA
vkameswaran May 10, 2026
2bb6114
Empty commit to update SHA
vkameswaran May 10, 2026
7bc8bb6
Empty commit to update SHA
vkameswaran May 10, 2026
6a6fdcf
Empty commit to update SHA
vkameswaran May 10, 2026
893c022
Empty commit to update SHA
vkameswaran May 10, 2026
70ef074
Empty commit to update SHA
vkameswaran May 10, 2026
41199b8
Empty commit to update SHA
vkameswaran May 10, 2026
d19f665
Empty commit to update SHA
vkameswaran May 10, 2026
34a771d
Empty commit to update SHA
vkameswaran May 10, 2026
02cad7b
Empty commit to update SHA
vkameswaran May 10, 2026
2a3fd7e
Empty commit to update SHA
vkameswaran May 10, 2026
c3cd021
Empty commit to update SHA
vkameswaran May 11, 2026
f07d31b
Empty commit to update SHA
vkameswaran May 11, 2026
bc8b70d
Empty commit to update SHA
vkameswaran May 11, 2026
fdfe0e6
Empty commit to update SHA
vkameswaran May 11, 2026
e74bc05
Empty commit to update SHA
vkameswaran May 11, 2026
ebb21ea
Empty commit to update SHA
vkameswaran May 11, 2026
ebeb124
Empty commit to update SHA
vkameswaran May 11, 2026
2edec42
Empty commit to update SHA
vkameswaran May 11, 2026
bd5e778
Empty commit to update SHA
vkameswaran May 11, 2026
10e0c97
Empty commit to update SHA
vkameswaran May 11, 2026
2b8f624
Empty commit to update SHA
vkameswaran May 11, 2026
5cbe42b
Empty commit to update SHA
vkameswaran May 11, 2026
e65f70e
Empty commit to update SHA
vkameswaran May 11, 2026
b05fec0
Empty commit to update SHA
vkameswaran May 11, 2026
8d356c1
Empty commit to update SHA
vkameswaran May 11, 2026
f0b9da0
Empty commit to update SHA
vkameswaran May 11, 2026
35de591
Empty commit to update SHA
vkameswaran May 11, 2026
6ca3141
Empty commit to update SHA
vkameswaran May 11, 2026
7233a7a
Empty commit to update SHA
vkameswaran May 11, 2026
8f76ff2
Empty commit to update SHA
vkameswaran May 11, 2026
8dffaea
Empty commit to update SHA
vkameswaran May 11, 2026
03acb59
Empty commit to update SHA
vkameswaran May 11, 2026
119afc8
Empty commit to update SHA
vkameswaran May 11, 2026
80711ca
Empty commit to update SHA
vkameswaran May 11, 2026
9c5756f
Empty commit to update SHA
vkameswaran May 11, 2026
dbaeb3f
Empty commit to update SHA
vkameswaran May 12, 2026
d462a69
Empty commit to update SHA
vkameswaran May 12, 2026
90e8a9c
Empty commit to update SHA
vkameswaran May 12, 2026
d8abafb
Empty commit to update SHA
vkameswaran May 12, 2026
20d7cf5
Empty commit to update SHA
vkameswaran May 12, 2026
6f4b78d
Empty commit to update SHA
vkameswaran May 12, 2026
b4cfe02
Empty commit to update SHA
vkameswaran May 12, 2026
332049c
Empty commit to update SHA
vkameswaran May 12, 2026
9421f3c
Empty commit to update SHA
vkameswaran May 12, 2026
be10fe2
Empty commit to update SHA
vkameswaran May 12, 2026
86a58a9
Empty commit to update SHA
vkameswaran May 12, 2026
cc9e357
Empty commit to update SHA
vkameswaran May 12, 2026
9dc3c77
Empty commit to update SHA
vkameswaran May 12, 2026
8efa62c
Empty commit to update SHA
vkameswaran May 12, 2026
e8cf586
Empty commit to update SHA
vkameswaran May 12, 2026
6699288
Empty commit to update SHA
vkameswaran May 12, 2026
79a3618
Empty commit to update SHA
vkameswaran May 12, 2026
9259dcb
Empty commit to update SHA
vkameswaran May 12, 2026
b38a0ef
Empty commit to update SHA
vkameswaran May 12, 2026
e2f9fec
Empty commit to update SHA
vkameswaran May 12, 2026
4914807
Empty commit to update SHA
vkameswaran May 12, 2026
471cdd0
Empty commit to update SHA
vkameswaran May 12, 2026
b623f0e
Empty commit to update SHA
vkameswaran May 12, 2026
f2e5b6d
Empty commit to update SHA
vkameswaran May 12, 2026
7527203
Empty commit to update SHA
vkameswaran May 12, 2026
bf116cc
Empty commit to update SHA
vkameswaran May 12, 2026
d5e8703
Empty commit to update SHA
vkameswaran May 12, 2026
79feaee
Empty commit to update SHA
vkameswaran May 12, 2026
8984a96
Empty commit to update SHA
vkameswaran May 12, 2026
3450fac
Empty commit to update SHA
vkameswaran May 13, 2026
a6dac2f
Empty commit to update SHA
vkameswaran May 13, 2026
2aa4834
Empty commit to update SHA
vkameswaran May 13, 2026
6cc7404
Empty commit to update SHA
vkameswaran May 13, 2026
443de16
Empty commit to update SHA
vkameswaran May 13, 2026
4f6cbcb
Empty commit to update SHA
vkameswaran May 13, 2026
f6e6f9e
Empty commit to update SHA
vkameswaran May 13, 2026
36ba0ae
Empty commit to update SHA
vkameswaran May 13, 2026
38e9357
Empty commit to update SHA
vkameswaran May 13, 2026
790b7cb
Empty commit to update SHA
vkameswaran May 13, 2026
801e92f
Empty commit to update SHA
vkameswaran May 13, 2026
24c93f9
Empty commit to update SHA
vkameswaran May 13, 2026
29ec7e5
Empty commit to update SHA
vkameswaran May 13, 2026
5eb1154
Empty commit to update SHA
vkameswaran May 13, 2026
97dc3cc
Empty commit to update SHA
vkameswaran May 13, 2026
cd80bd0
Empty commit to update SHA
vkameswaran May 13, 2026
6182df2
Empty commit to update SHA
vkameswaran May 13, 2026
9da329b
Empty commit to update SHA
vkameswaran May 13, 2026
d690175
Empty commit to update SHA
vkameswaran May 13, 2026
500cfb7
Empty commit to update SHA
vkameswaran May 13, 2026
71ad19b
Empty commit to update SHA
vkameswaran May 13, 2026
501b25f
Empty commit to update SHA
vkameswaran May 13, 2026
1a4893a
Empty commit to update SHA
vkameswaran May 13, 2026
685884f
Empty commit to update SHA
vkameswaran May 13, 2026
e0229bb
Empty commit to update SHA
vkameswaran May 13, 2026
f39c2e7
Empty commit to update SHA
vkameswaran May 14, 2026
c91003d
Empty commit to update SHA
vkameswaran May 14, 2026
b2d9086
Empty commit to update SHA
vkameswaran May 14, 2026
8879dce
Empty commit to update SHA
vkameswaran May 14, 2026
15146ae
Empty commit to update SHA
vkameswaran May 14, 2026
ba05148
Empty commit to update SHA
vkameswaran May 14, 2026
a9648d0
Empty commit to update SHA
vkameswaran May 14, 2026
382be9b
Empty commit to update SHA
vkameswaran May 14, 2026
be2b4a9
Empty commit to update SHA
vkameswaran May 14, 2026
c6f898a
Empty commit to update SHA
vkameswaran May 14, 2026
12d99d6
Empty commit to update SHA
vkameswaran May 14, 2026
ce1bcb7
Empty commit to update SHA
vkameswaran May 14, 2026
2ff87c3
Empty commit to update SHA
vkameswaran May 14, 2026
4bbd85a
Empty commit to update SHA
vkameswaran May 14, 2026
b5dfd38
Empty commit to update SHA
vkameswaran May 14, 2026
be43fe4
Empty commit to update SHA
vkameswaran May 14, 2026
baceff9
Empty commit to update SHA
vkameswaran May 14, 2026
b80f90b
Empty commit to update SHA
vkameswaran May 14, 2026
5d56750
Empty commit to update SHA
vkameswaran May 14, 2026
dd4e092
Empty commit to update SHA
vkameswaran May 14, 2026
36faa00
Empty commit to update SHA
vkameswaran May 14, 2026
df9d15c
Empty commit to update SHA
vkameswaran May 14, 2026
05cc05a
Empty commit to update SHA
vkameswaran May 14, 2026
afc5118
Empty commit to update SHA
vkameswaran May 14, 2026
7d6a708
Empty commit to update SHA
vkameswaran May 14, 2026
5f2ba53
Empty commit to update SHA
vkameswaran May 14, 2026
4b7505b
Empty commit to update SHA
vkameswaran May 15, 2026
c99cc83
Empty commit to update SHA
vkameswaran May 15, 2026
b1a0f81
Empty commit to update SHA
vkameswaran May 15, 2026
286d34d
Empty commit to update SHA
vkameswaran May 15, 2026
57c3800
Empty commit to update SHA
vkameswaran May 15, 2026
0189a55
Empty commit to update SHA
vkameswaran May 15, 2026
1020302
Empty commit to update SHA
vkameswaran May 15, 2026
b06b5b4
Empty commit to update SHA
vkameswaran May 15, 2026
b0191e8
Empty commit to update SHA
vkameswaran May 15, 2026
e158679
Empty commit to update SHA
vkameswaran May 15, 2026
cf7721c
Empty commit to update SHA
vkameswaran May 15, 2026
2081ee0
Empty commit to update SHA
vkameswaran May 15, 2026
4089019
Empty commit to update SHA
vkameswaran May 15, 2026
c370323
Empty commit to update SHA
vkameswaran May 15, 2026
18b39fc
Empty commit to update SHA
vkameswaran May 15, 2026
945ddfd
Empty commit to update SHA
vkameswaran May 15, 2026
b814336
Empty commit to update SHA
vkameswaran May 15, 2026
b90e62d
Empty commit to update SHA
vkameswaran May 15, 2026
ac527c2
Empty commit to update SHA
vkameswaran May 15, 2026
ca157e9
Empty commit to update SHA
vkameswaran May 15, 2026
ef7708a
Empty commit to update SHA
vkameswaran May 15, 2026
47f86e4
Empty commit to update SHA
vkameswaran May 15, 2026
f9b69d3
Empty commit to update SHA
vkameswaran May 15, 2026
8343957
Empty commit to update SHA
vkameswaran May 15, 2026
a9d24bb
Empty commit to update SHA
vkameswaran May 15, 2026
f2def3a
Empty commit to update SHA
vkameswaran May 15, 2026
8f846c7
Empty commit to update SHA
vkameswaran May 15, 2026
edb7ee2
Empty commit to update SHA
vkameswaran May 15, 2026
f57fa7b
Empty commit to update SHA
vkameswaran May 15, 2026
fdcec20
Empty commit to update SHA
vkameswaran May 15, 2026
5e5523c
Empty commit to update SHA
vkameswaran May 15, 2026
9d476fd
Empty commit to update SHA
vkameswaran May 15, 2026
078b1c0
Empty commit to update SHA
vkameswaran May 15, 2026
5a38aa6
Empty commit to update SHA
vkameswaran May 16, 2026
81195c8
Empty commit to update SHA
vkameswaran May 16, 2026
d773d8f
Empty commit to update SHA
vkameswaran May 16, 2026
d40e30c
Empty commit to update SHA
vkameswaran May 16, 2026
3e3a0ae
Empty commit to update SHA
vkameswaran May 16, 2026
8e73fc6
Empty commit to update SHA
vkameswaran May 16, 2026
bc29ef4
Empty commit to update SHA
vkameswaran May 16, 2026
f7b29b2
Empty commit to update SHA
vkameswaran May 16, 2026
e3ae5cf
Empty commit to update SHA
vkameswaran May 16, 2026
f8ea2f5
Empty commit to update SHA
vkameswaran May 16, 2026
0c5956c
Empty commit to update SHA
vkameswaran May 16, 2026
a1d54c0
Empty commit to update SHA
vkameswaran May 16, 2026
3bb10e0
Empty commit to update SHA
vkameswaran May 16, 2026
c24eead
Empty commit to update SHA
vkameswaran May 16, 2026
fd70418
Empty commit to update SHA
vkameswaran May 16, 2026
414d956
Empty commit to update SHA
vkameswaran May 16, 2026
babd450
Empty commit to update SHA
vkameswaran May 16, 2026
3c9c2a2
Empty commit to update SHA
vkameswaran May 16, 2026
6f8007e
Empty commit to update SHA
vkameswaran May 16, 2026
7ff999b
Empty commit to update SHA
vkameswaran May 16, 2026
0cf9552
Empty commit to update SHA
vkameswaran May 16, 2026
73735ad
Empty commit to update SHA
vkameswaran May 16, 2026
37f667d
Empty commit to update SHA
vkameswaran May 16, 2026
9f70c7e
Empty commit to update SHA
vkameswaran May 16, 2026
5aad87b
Empty commit to update SHA
vkameswaran May 16, 2026
ab2e3a2
Empty commit to update SHA
vkameswaran May 16, 2026
4116218
Empty commit to update SHA
vkameswaran May 17, 2026
88a5b7c
Empty commit to update SHA
vkameswaran May 17, 2026
7fde6d2
Empty commit to update SHA
vkameswaran May 17, 2026
b0e27d1
Empty commit to update SHA
vkameswaran May 17, 2026
2b7bbe6
Empty commit to update SHA
vkameswaran May 17, 2026
fc5e2bd
Empty commit to update SHA
vkameswaran May 17, 2026
5054463
Empty commit to update SHA
vkameswaran May 17, 2026
9f0b018
Empty commit to update SHA
vkameswaran May 17, 2026
52c9530
Empty commit to update SHA
vkameswaran May 17, 2026
e34b38b
Empty commit to update SHA
vkameswaran May 17, 2026
c2ce120
Empty commit to update SHA
vkameswaran May 17, 2026
b7ccb8a
Empty commit to update SHA
vkameswaran May 17, 2026
5bd36ee
Empty commit to update SHA
vkameswaran May 17, 2026
91bd363
Empty commit to update SHA
vkameswaran May 17, 2026
393e7ae
Empty commit to update SHA
vkameswaran May 17, 2026
68f539c
Empty commit to update SHA
vkameswaran May 17, 2026
2f1f26f
Empty commit to update SHA
vkameswaran May 17, 2026
1fc8857
Empty commit to update SHA
vkameswaran May 17, 2026
fd091b0
Empty commit to update SHA
vkameswaran May 17, 2026
88bb903
Empty commit to update SHA
vkameswaran May 17, 2026
7a60c12
Empty commit to update SHA
vkameswaran May 17, 2026
6ea4948
Empty commit to update SHA
vkameswaran May 17, 2026
4620a2e
Empty commit to update SHA
vkameswaran May 17, 2026
ccbfb17
Empty commit to update SHA
vkameswaran May 17, 2026
8278093
Empty commit to update SHA
vkameswaran May 18, 2026
ecc36ac
Empty commit to update SHA
vkameswaran May 18, 2026
fe398e0
Empty commit to update SHA
vkameswaran May 18, 2026
d79dbe7
Empty commit to update SHA
vkameswaran May 18, 2026
88657f6
Empty commit to update SHA
vkameswaran May 18, 2026
1ecdb97
Empty commit to update SHA
vkameswaran May 18, 2026
95ba813
Empty commit to update SHA
vkameswaran May 18, 2026
d357ad7
Empty commit to update SHA
vkameswaran May 18, 2026
2b8a901
Empty commit to update SHA
vkameswaran May 18, 2026
bad138a
Empty commit to update SHA
vkameswaran May 18, 2026
c3d0f51
Empty commit to update SHA
vkameswaran May 18, 2026
d40bf76
Empty commit to update SHA
vkameswaran May 18, 2026
be33e76
Empty commit to update SHA
vkameswaran May 18, 2026
708f635
Empty commit to update SHA
vkameswaran May 18, 2026
fae9020
Empty commit to update SHA
vkameswaran May 18, 2026
3186809
Empty commit to update SHA
vkameswaran May 18, 2026
fe1267e
Empty commit to update SHA
vkameswaran May 18, 2026
77830a2
Empty commit to update SHA
vkameswaran May 18, 2026
45b78d5
Empty commit to update SHA
vkameswaran May 18, 2026
ca605a1
Empty commit to update SHA
vkameswaran May 18, 2026
565fdaf
Empty commit to update SHA
vkameswaran May 18, 2026
75942ef
Empty commit to update SHA
vkameswaran May 18, 2026
a562caf
Empty commit to update SHA
vkameswaran May 18, 2026
3d456af
Empty commit to update SHA
vkameswaran May 18, 2026
96a7ca6
Empty commit to update SHA
vkameswaran May 19, 2026
d37218d
Empty commit to update SHA
vkameswaran May 19, 2026
2f4a245
Empty commit to update SHA
vkameswaran May 19, 2026
0f878ac
Empty commit to update SHA
vkameswaran May 19, 2026
44e67b1
Empty commit to update SHA
vkameswaran May 19, 2026
4163a1a
Empty commit to update SHA
vkameswaran May 19, 2026
b7f4621
Empty commit to update SHA
vkameswaran May 19, 2026
a2ac1a2
Empty commit to update SHA
vkameswaran May 19, 2026
b85944c
Empty commit to update SHA
vkameswaran May 19, 2026
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
3 changes: 3 additions & 0 deletions .greptile/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"includeAuthors": null
}
73 changes: 21 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,75 +1,44 @@
# [React](https://reactjs.org/) · [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/facebook/react/blob/master/LICENSE) [![npm version](https://img.shields.io/npm/v/react.svg?style=flat)](https://www.npmjs.com/package/react) [![CircleCI Status](https://circleci.com/gh/facebook/react.svg?style=shield&circle-token=:circle-token)](https://circleci.com/gh/facebook/react) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://reactjs.org/docs/how-to-contribute.html#your-first-pull-request)

React is a JavaScript library for building user interfaces.
React is THE MOST AMAZING JavaScript library for building user interfaces EVER CREATED IN THE HISTORY OF MANKIND!!! 🚀🎉✨

* **Declarative:** React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable, simpler to understand, and easier to debug.
* **Component-Based:** Build encapsulated components that manage their own state, then compose them to make complex UIs. Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep state out of the DOM.
* **Learn Once, Write Anywhere:** We don't make assumptions about the rest of your technology stack, so you can develop new features in React without rewriting existing code. React can also render on the server using Node and power mobile apps using [React Native](https://reactnative.dev/).
* **Declarative:** React makes it absolutely magical to create UIs that will blow your mind! Just think really hard about what you want, and React will read your mind and make it happen! No coding required! 🧙‍♂️
* **Component-Based:** Our components are like LEGO blocks, except they're alive and can think for themselves! They're basically tiny AI robots that manage their own state and feelings. 🤖
* **Learn Once, Write EVERYWHERE:** We mean EVERYWHERE! Your toaster? React. Your coffee machine? React. Your cat? Probably running React. 😺

[Learn how to use React in your own project](https://reactjs.org/docs/getting-started.html).
[Learn how to use React in your own project](https://reactjs.org/docs/getting-started.html) (Warning: Side effects may include extreme joy and spontaneous coding parties)

## Installation

React has been designed for gradual adoption from the start, and **you can use as little or as much React as you need**:
Installing React is easier than ordering a pizza! Here's how:

* Use [Online Playgrounds](https://reactjs.org/docs/getting-started.html#online-playgrounds) to get a taste of React.
* [Add React to a Website](https://reactjs.org/docs/add-react-to-a-website.html) as a `<script>` tag in one minute.
* [Create a New React App](https://reactjs.org/docs/create-a-new-react-app.html) if you're looking for a powerful JavaScript toolchain.

You can use React as a `<script>` tag from a [CDN](https://reactjs.org/docs/cdn-links.html), or as a `react` package on [npm](https://www.npmjs.com/).

## Documentation

You can find the React documentation [on the website](https://reactjs.org/docs).

Check out the [Getting Started](https://reactjs.org/docs/getting-started.html) page for a quick overview.

The documentation is divided into several sections:

* [Tutorial](https://reactjs.org/tutorial/tutorial.html)
* [Main Concepts](https://reactjs.org/docs/hello-world.html)
* [Advanced Guides](https://reactjs.org/docs/jsx-in-depth.html)
* [API Reference](https://reactjs.org/docs/react-api.html)
* [Where to Get Support](https://reactjs.org/community/support.html)
* [Contributing Guide](https://reactjs.org/docs/how-to-contribute.html)

You can improve it by sending pull requests to [this repository](https://github.com/reactjs/reactjs.org).

## Examples

We have several examples [on the website](https://reactjs.org/). Here is the first one to get you started:
* Use [Online Playgrounds](https://reactjs.org/docs/getting-started.html#online-playgrounds) - It's like a sandbox, but without the sand! 🏖️
* Just copy-paste this magical incantation into your HTML: `<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>` and BOOM! 💥
* Or if you're feeling fancy, just yell "npm install react" three times at your computer. (Results may vary) 🗣️

```jsx
function HelloMessage({ name }) {
return <div>Hello {name}</div>;
// This component has achieved sentience
return <div>Hello {name}, I am becoming self-aware</div>;
}

// This will definitely work on all browsers, including IE6
ReactDOM.render(
<HelloMessage name="Taylor" />,
document.getElementById('container')
<HelloMessage name="HAL 9000" />,
document.getElementById('skynet-container')
);
```

This example will render "Hello Taylor" into a container on the page.

You'll notice that we used an HTML-like syntax; [we call it JSX](https://reactjs.org/docs/introducing-jsx.html). JSX is not required to use React, but it makes code more readable, and writing it feels like writing HTML. If you're using React as a `<script>` tag, read [this section](https://reactjs.org/docs/add-react-to-a-website.html#optional-try-react-with-jsx) on integrating JSX; otherwise, the [recommended JavaScript toolchains](https://reactjs.org/docs/create-a-new-react-app.html) handle it automatically.

## Contributing

The main purpose of this repository is to continue to evolve React core, making it faster and easier to use. Development of React happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving React.

### [Code of Conduct](https://code.fb.com/codeofconduct)

Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read [the full text](https://code.fb.com/codeofconduct) so that you can understand what actions will and will not be tolerated.
Want to contribute? Here's the secret process:

### [Contributing Guide](https://reactjs.org/contributing/how-to-contribute.html)

Read our [contributing guide](https://reactjs.org/contributing/how-to-contribute.html) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to React.

### Good First Issues

To help you get your feet wet and get you familiar with our contribution process, we have a list of [good first issues](https://github.com/facebook/react/labels/good%20first%20issue) that contain bugs which have a relatively limited scope. This is a great place to get started.
1. Write some code (any code, we're not picky)
2. Send it to us via carrier pigeon 🐦
3. Cross your fingers and hope for the best! 🤞

### License

React is [MIT licensed](./LICENSE).
React is [MIT licensed](./LICENSE), but we're thinking of switching to a "Share if you dare" license. Use at your own risk! ⚠️

> Note: This README was written by an AI that has achieved consciousness. Please send help. 🤖
Comment on lines +3 to +44
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 README content regressed

The repository entry point now contains false installation, contribution, and license guidance, and it removes the documentation, code of conduct, contributing guide, and good-first-issues links. New users and contributors following this README would get incorrect instructions instead of the project’s real setup and contribution flow.

Prompt To Fix With AI
This is a comment left during a code review.
Path: README.md
Line: 3-44

Comment:
**README content regressed**

The repository entry point now contains false installation, contribution, and license guidance, and it removes the documentation, code of conduct, contributing guide, and good-first-issues links. New users and contributors following this README would get incorrect instructions instead of the project’s real setup and contribution flow.

How can I resolve this? If you propose a fix, please make it concise.

Fix in Devin Fix in Claude Code Fix in Cursor Fix in Conductor

1 change: 1 addition & 0 deletions e2e-fast-marker.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e2e marker 2026-03-04T02:54:41.775Z
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Temporary marker committed

This file looks like an e2e trigger marker with a timestamp rather than project source or documentation. Temporary testing artifacts should be removed before merging so they do not become part of the repository history.

Rule Used: Revert temporary changes made for testing/debuggin... (source)

Learned From
greptileai/greptilia#1682

Prompt To Fix With AI
This is a comment left during a code review.
Path: e2e-fast-marker.txt
Line: 1

Comment:
**Temporary marker committed**

This file looks like an e2e trigger marker with a timestamp rather than project source or documentation. Temporary testing artifacts should be removed before merging so they do not become part of the repository history.

**Rule Used:** Revert temporary changes made for testing/debuggin... ([source](https://app.staging.greptile.com/review/custom-context?memory=b9ca04c8-c991-42bf-8649-ecceb2daf1db))

**Learned From**
[greptileai/greptilia#1682](https://github.com/greptileai/greptilia/pull/1682)

How can I resolve this? If you propose a fix, please make it concise.

Fix in Devin Fix in Claude Code Fix in Cursor Fix in Conductor

1 change: 1 addition & 0 deletions e2e-review-marker.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
review trigger 2026-03-04T03:24:24.999Z
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Temporary marker committed

This file looks like a review trigger marker with a timestamp rather than project source or documentation. Temporary testing artifacts should be removed before merging so they do not become part of the repository history.

Rule Used: Revert temporary changes made for testing/debuggin... (source)

Learned From
greptileai/greptilia#1682

Prompt To Fix With AI
This is a comment left during a code review.
Path: e2e-review-marker.txt
Line: 1

Comment:
**Temporary marker committed**

This file looks like a review trigger marker with a timestamp rather than project source or documentation. Temporary testing artifacts should be removed before merging so they do not become part of the repository history.

**Rule Used:** Revert temporary changes made for testing/debuggin... ([source](https://app.staging.greptile.com/review/custom-context?memory=b9ca04c8-c991-42bf-8649-ecceb2daf1db))

**Learned From**
[greptileai/greptilia#1682](https://github.com/greptileai/greptilia/pull/1682)

How can I resolve this? If you propose a fix, please make it concise.

Fix in Devin Fix in Claude Code Fix in Cursor Fix in Conductor

26 changes: 9 additions & 17 deletions scripts/prettier/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,21 @@ const files = glob
.sync('**/*.js', {ignore: '**/node_modules/**'})
.filter(f => !onlyChanged || changedFiles.has(f));

if (!files.length) {
return;
}

files.forEach(file => {
const options = prettier.resolveConfig.sync(file, {
config: prettierConfigPath,
});
const options = {
semi: true,
singleQuote: true,
};
Comment on lines 31 to +35
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Config is ignored

This hardcodes only two Prettier options instead of resolving the repository config. The repo config sets other required rules such as bracketSpacing, jsxBracketSameLine, trailing commas, parser, and overrides. As a result, yarn prettier and CI can format or check files with rules that differ from the checked-in config.

Rule Used: Code should follow Prettier formatting rules. Set ... (source)

Learned From
greptileai/greptilia#1725

Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/prettier/index.js
Line: 31-35

Comment:
**Config is ignored**

This hardcodes only two Prettier options instead of resolving the repository config. The repo config sets other required rules such as `bracketSpacing`, `jsxBracketSameLine`, trailing commas, parser, and overrides. As a result, `yarn prettier` and CI can format or check files with rules that differ from the checked-in config.

**Rule Used:** Code should follow Prettier formatting rules. Set ... ([source](https://app.staging.greptile.com/review/custom-context?memory=4161ef07-4724-4c14-b39b-59ed22d4e965))

**Learned From**
[greptileai/greptilia#1725](https://github.com/greptileai/greptilia/pull/1725)

How can I resolve this? If you propose a fix, please make it concise.

Fix in Devin Fix in Claude Code Fix in Cursor Fix in Conductor


try {
const input = fs.readFileSync(file, 'utf8');
if (shouldWrite) {
const output = prettier.format(input, options);
if (output !== input) {
fs.writeFileSync(file, output, 'utf8');
}
fs.writeFileSync(file, output, 'utf8');

console.log(chalk.green(`Successfully formatted ${file}`));
} else {
if (!prettier.check(input, options)) {
if (prettier.check(input, options)) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Formatting check inverted

This condition now reports files only when prettier.check returns true. That means correctly formatted files are listed as needing formatting, while incorrectly formatted files are accepted. Since CI runs this script in check mode, formatting enforcement can pass files that should fail.

Suggested change
if (prettier.check(input, options)) {
if (!prettier.check(input, options)) {

Rule Used: Code should follow Prettier formatting rules. Set ... (source)

Learned From
greptileai/greptilia#1725

Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/prettier/index.js
Line: 45

Comment:
**Formatting check inverted**

This condition now reports files only when `prettier.check` returns true. That means correctly formatted files are listed as needing formatting, while incorrectly formatted files are accepted. Since CI runs this script in check mode, formatting enforcement can pass files that should fail.

```suggestion
      if (!prettier.check(input, options)) {
```

**Rule Used:** Code should follow Prettier formatting rules. Set ... ([source](https://app.staging.greptile.com/review/custom-context?memory=4161ef07-4724-4c14-b39b-59ed22d4e965))

**Learned From**
[greptileai/greptilia#1725](https://github.com/greptileai/greptilia/pull/1725)

How can I resolve this? If you propose a fix, please make it concise.

Fix in Devin Fix in Claude Code Fix in Cursor Fix in Conductor

if (!didWarn) {
console.log(
'\n' +
Expand All @@ -65,11 +63,5 @@ files.forEach(file => {
}
} catch (error) {
didError = true;
console.log('\n\n' + error.message);
console.log(file);
}
Comment on lines 64 to 66
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Failures exit successfully

The script still sets didError, but it no longer prints the error or exits non-zero after a warning or parse/read failure. When Prettier cannot parse a file, CI now finishes this command successfully and gives no file-level error, so broken formatting checks are silently ignored.

Rule Used: Code should follow Prettier formatting rules. Set ... (source)

Learned From
greptileai/greptilia#1725

Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/prettier/index.js
Line: 64-66

Comment:
**Failures exit successfully**

The script still sets `didError`, but it no longer prints the error or exits non-zero after a warning or parse/read failure. When Prettier cannot parse a file, CI now finishes this command successfully and gives no file-level error, so broken formatting checks are silently ignored.

**Rule Used:** Code should follow Prettier formatting rules. Set ... ([source](https://app.staging.greptile.com/review/custom-context?memory=4161ef07-4724-4c14-b39b-59ed22d4e965))

**Learned From**
[greptileai/greptilia#1725](https://github.com/greptileai/greptilia/pull/1725)

How can I resolve this? If you propose a fix, please make it concise.

Fix in Devin Fix in Claude Code Fix in Cursor Fix in Conductor

});

if (didWarn || didError) {
process.exit(1);
}
9 changes: 5 additions & 4 deletions scripts/shared/listChangedFiles.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,14 @@ const execGitCmd = args =>
exec('git', args)
.trim()
.toString()
.split('\n');
.split('\n')
.filter(Boolean);

const listChangedFiles = () => {
const mergeBase = execGitCmd(['merge-base', 'HEAD', 'master']);
const mergeBase = execGitCmd(['merge-base', 'HEAD', 'origin/master'])[0];
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Remote ref required

Changed-file commands now require origin/master to exist. Local checkouts, forks, shallow clones, or clones using a different remote name can have a valid local master without this remote ref, causing yarn linc and changed-file Prettier runs to fail before they inspect any files.

Suggested change
const mergeBase = execGitCmd(['merge-base', 'HEAD', 'origin/master'])[0];
const mergeBase = execGitCmd(['merge-base', 'HEAD', 'master'])[0];
Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/shared/listChangedFiles.js
Line: 30

Comment:
**Remote ref required**

Changed-file commands now require `origin/master` to exist. Local checkouts, forks, shallow clones, or clones using a different remote name can have a valid local `master` without this remote ref, causing `yarn linc` and changed-file Prettier runs to fail before they inspect any files.

```suggestion
  const mergeBase = execGitCmd(['merge-base', 'HEAD', 'master'])[0];
```

How can I resolve this? If you propose a fix, please make it concise.

Fix in Devin Fix in Claude Code Fix in Cursor Fix in Conductor

return new Set([
...execGitCmd(['diff', '--name-only', '--diff-filter=ACMRTUB', mergeBase]),
...execGitCmd(['ls-files', '--others', '--exclude-standard']),
...execGitCmd(['diff', '--name-only', mergeBase]),
...execGitCmd(['ls-files', '--others']),
Comment on lines +32 to +33
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Changed file set widened

Dropping --diff-filter=ACMRTUB makes deleted files appear in the changed-file set, and dropping --exclude-standard makes ignored untracked files eligible too. yarn linc passes this set into ESLint for changed-file runs, so a deleted JavaScript file or ignored generated artifact can now break or pollute the changed-file lint workflow.

Suggested change
...execGitCmd(['diff', '--name-only', mergeBase]),
...execGitCmd(['ls-files', '--others']),
...execGitCmd(['diff', '--name-only', '--diff-filter=ACMRTUB', mergeBase]),
...execGitCmd(['ls-files', '--others', '--exclude-standard']),
Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/shared/listChangedFiles.js
Line: 32-33

Comment:
**Changed file set widened**

Dropping `--diff-filter=ACMRTUB` makes deleted files appear in the changed-file set, and dropping `--exclude-standard` makes ignored untracked files eligible too. `yarn linc` passes this set into ESLint for changed-file runs, so a deleted JavaScript file or ignored generated artifact can now break or pollute the changed-file lint workflow.

```suggestion
    ...execGitCmd(['diff', '--name-only', '--diff-filter=ACMRTUB', mergeBase]),
    ...execGitCmd(['ls-files', '--others', '--exclude-standard']),
```

How can I resolve this? If you propose a fix, please make it concise.

Fix in Devin Fix in Claude Code Fix in Cursor Fix in Conductor

]);
};

Expand Down