Compare commits

..

553 Commits

Author SHA1 Message Date
Ricky
b252e807be Update CNAME (#32413)
Fixes https://github.com/reactjs/react.dev/issues/7250
Fixes https://github.com/reactjs/react.dev/issues/7476
2025-02-17 23:38:08 -05:00
Jan Kassens
3b7b50f51f Update CNAME in gh-pages (#28983)
Fixes #28968
2024-05-03 10:05:51 -04:00
Brian Vaughn
d027eca037 Re-added CNAME 2017-09-29 08:37:03 -07:00
Brian Vaughn
c96fbd43c4 Removing CNAME file 2017-09-29 08:36:36 -07:00
Brian Vaughn
2f696fb289 Reprocess CNAME 2017-09-29 08:32:55 -07:00
Brian Vaughn
887ccf2534 Redirect users from the old gh-pages (Jekyll website) to reactjs.org (#10941)
* Deleted old Jekyll website
* Added CNAME that points to reactjs.org
2017-09-29 08:26:47 -07:00
facts-tracker
a34c28aaf9 Rebuild website 2017-09-27 11:44:51 -07:00
facts-tracker
f428b39aa1 Rebuild website 2017-09-27 09:24:15 -07:00
facts-tracker
32b3646202 Rebuild website 2017-09-27 09:14:32 -07:00
facts-tracker
cee6c8d54b Rebuild website 2017-09-27 05:39:53 -07:00
facts-tracker
a359efcd68 Rebuild website 2017-09-27 03:27:42 -07:00
facts-tracker
84506e9473 Rebuild website 2017-09-27 03:26:03 -07:00
facts-tracker
44485824f7 Rebuild website 2017-09-27 03:03:00 -07:00
facts-tracker
2586adb41c Rebuild website 2017-09-27 02:40:32 -07:00
facts-tracker
cff02339dd Rebuild website 2017-09-26 14:52:39 -07:00
Dan Abramov
a7ba8745cb Rebuild website 2017-09-26 22:13:51 +01:00
facts-tracker
4b8c8bfa7e Rebuild website 2017-09-26 14:02:13 -07:00
facts-tracker
e3dbfcd19d Rebuild website 2017-09-26 12:10:32 -07:00
facts-tracker
2cb3e9060f Rebuild website 2017-09-26 12:09:23 -07:00
facts-tracker
1daac009b3 Rebuild website 2017-09-26 11:55:58 -07:00
facts-tracker
546b9f6d59 Rebuild website 2017-09-26 11:18:35 -07:00
facts-tracker
37639a7c87 Rebuild website 2017-09-26 10:53:58 -07:00
Dan Abramov
eb0967749c Rebuild 2017-09-26 18:18:22 +01:00
Andrew Clark
9d80600b63 React 16 blog post and docs 2017-09-26 09:12:41 -07:00
Circle CI
021abead6f Rebuild website 2017-09-26 03:49:42 -07:00
Circle CI
383128d3d0 Rebuild website 2017-09-26 03:43:32 -07:00
Circle CI
f1ae286b15 Rebuild website 2017-09-25 17:26:53 -07:00
Dan Abramov
62b34d3573 Update error codes 2017-09-14 13:43:40 +01:00
Circle CI
56b0878f8c Rebuild website 2017-09-10 14:59:03 -07:00
Circle CI
eb38eace01 Rebuild website 2017-09-10 12:50:20 -07:00
Dan Abramov
af98484233 Rebuild website 2017-09-08 20:33:36 +01:00
Flarnie Marchan
cbf4858b39 Update error codes (#10622)
**what is the change?:**
This just updated the error codes on the docs.

For my future self, recording the steps it took to get here:
- On master, run `npm run build -- --extract-errors`
- Create a commit with those changes, and open a PR
  (https://github.com/facebook/react/pull/10619)
- Cherry-pick that commit onto 15-stable, and open a PR
  (https://github.com/facebook/react/pull/10621)
- Update the error codes on the `gh-pages branch` by doing the
  following based on docs
  (https://github.com/facebook/react/tree/master/docs#updating-facebookgithubioreact):
  - Set up a sister directory to `react` with `gh-pages` checked out,
    and call it `react-gh-pages`
  - In your `react` repo, with `15-stable` checked out and the
    error-codes update cherry-picked, run:
    `cd docs && bundle rake exec && bundle exec rake fetch_remotes && bundle exec rake release`
  - `cd ../react-gh-pages` and check in those changes, create a
    commit/PR
  - Manually test running the docs

**why make this change?:**
Even though this is just an RC, and not a final major release, we still
want the docs to be as up-to-date as possible.

**test plan:**
Run the docs locally and make sure things work.
(Flarnie will insert screenshots.)

**issue:**
https://github.com/facebook/react/issues/8854
2017-09-06 11:14:17 -07:00
Brian Vaughn
4221082c8e Cache-bust 404 for cross-origin-errors page 2017-08-14 14:21:57 -07:00
Brian Vaughn
2f89ee4cd5 Adding new page for cross-origin errors 2017-08-14 14:00:10 -07:00
Circle CI
c26241e8a1 Rebuild website 2017-08-05 05:25:59 -07:00
Circle CI
d62013bfe1 Rebuild website 2017-08-04 06:54:12 -07:00
Dan Abramov
c4efcecd98 Update error map 2017-08-04 00:38:15 +01:00
Dan Abramov
d6d0a17359 Rebuild 2017-08-03 16:15:30 +01:00
Circle CI
b26ebafdef Rebuild website 2017-07-27 16:00:49 -07:00
Circle CI
ea72bd2f92 Rebuild website 2017-07-27 15:52:00 -07:00
Dan Abramov
e2317870f1 Rebuild 2017-07-27 23:45:59 +01:00
Dan Abramov
7dc3b723cd Rebuild 2017-07-27 23:27:28 +01:00
Circle CI
dfa0f402d4 Rebuild website 2017-07-27 07:25:37 -07:00
Dan Abramov
c4aaff43f6 Rebuild 2017-07-27 10:50:56 +01:00
Dan Abramov
ae2fa05da5 Rebuild 2017-07-27 10:25:17 +01:00
Dan Abramov
5f47b8370c Rebuild website 2017-07-26 21:22:38 +01:00
Flarnie Marchan
8faba4cb2f Update error codes (#10292)
* Update error codes

A result of https://github.com/facebook/react/pull/10288

* Update the codes again
2017-07-26 12:50:19 -07:00
Circle CI
0be0c9ca72 Rebuild website 2017-07-26 12:43:31 -07:00
Dan Abramov
5f0258bc04 Rebuild 2017-07-11 14:09:11 +01:00
Circle CI
6941c84de2 Rebuild website 2017-06-29 08:13:33 -07:00
Dan Abramov
7bc32d9148 Rebuild 2017-06-26 18:29:28 +01:00
Circle CI
b1e6227e67 Rebuild website 2017-06-15 07:55:51 -07:00
Circle CI
f3f308ffaf Rebuild website 2017-06-14 16:18:51 -07:00
Circle CI
e7020c6106 Rebuild website 2017-06-13 16:05:17 -07:00
Circle CI
dc204718f0 Rebuild website 2017-06-13 10:18:57 -07:00
Circle CI
e4a9af594f Rebuild website 2017-06-13 07:42:06 -07:00
Dan Abramov
c22c398cec Rebuild 2017-06-10 00:06:12 +01:00
Dan Abramov
8862cb0e35 rebuild 2017-05-19 05:45:28 +01:00
Dan Abramov
4f3eb847b3 Rebuild manually 2017-05-10 08:25:57 +01:00
Dan Abramov
f11140a0a6 Rebuild website 2017-05-05 18:06:15 +01:00
Dan Abramov
c653f07ca8 Rebuild manually 2017-05-04 00:30:57 +01:00
Dan Abramov
7ceb3fdff9 Rebuild manually 2017-05-03 15:43:35 +01:00
Dan Abramov
3e9af29f7f Fix mobile layout 2017-05-03 15:39:38 +01:00
Dan Abramov
4eccc7696e Typo 2017-05-03 15:05:54 +01:00
Dan Abramov
788d9c8678 Rebuild manually 2017-05-03 11:06:23 +01:00
Dan Abramov
900ce3cc5f Rebuild manually 2017-05-01 17:25:07 +01:00
Dan Abramov
4b6a66900f Rebuild website 2017-04-26 17:34:36 +01:00
Dan Abramov
651edfe54d Rebuild website 2017-04-20 11:55:14 +01:00
Dan Abramov
636d515e62 Rebuild website 2017-04-19 12:34:25 +01:00
Dan Abramov
a3b3125c5c Rebuild website 2017-04-18 18:20:18 +01:00
Dan Abramov
d6ab9fde20 Rebuild website 2017-04-18 18:07:51 +01:00
Dan Abramov
99f82d7243 Rebuild website 2017-04-18 18:00:18 +01:00
Dan Abramov
3f2c6bebc0 Rebuild website 2017-04-18 17:54:28 +01:00
Dan Abramov
002af59ea3 Rebuild website 2017-04-18 17:45:07 +01:00
Dan Abramov
3ec1319427 Rebuild website 2017-04-18 17:42:29 +01:00
Dan Abramov
2fefe1edce Add CDN section back 2017-04-14 00:59:17 +01:00
Dan Abramov
784e29fd65 Temporarily remove CDN section
See https://twitter.com/amorgner/status/852660573364002816, there are issues with unpkg right now.
2017-04-14 00:51:22 +01:00
Dan Abramov
74d10acb03 Rebuild manually 2017-04-13 21:52:17 +01:00
Dan Abramov
0a7d248cc5 Rebuild website 2017-04-13 20:57:29 +01:00
Dan Abramov
0a095d55f4 Rebuild 2017-04-13 15:28:37 +01:00
Dan Abramov
08f6e2f603 Rebuild manually 2017-04-12 00:06:02 +01:00
Dan Abramov
a1457be82f Rebuild manually 2017-04-11 22:10:02 +01:00
Dan Abramov
724d87ea40 Update manually 2017-04-08 04:11:46 +01:00
Andrew Clark
87384331e8 Rebuild the website for 15.5.0 2017-04-07 14:48:05 -07:00
Circle CI
0db185e5d7 Rebuild website 2017-03-12 08:49:40 -07:00
Circle CI
9774f127f8 Rebuild website 2017-03-09 19:08:17 -08:00
Dan Abramov
53970c95be Rebuild 2017-02-19 12:12:06 +00:00
Dan Abramov
3842de7f5f Rebuild 2017-02-19 11:14:33 +00:00
Dan Abramov
a941c9928e Rebuild 2017-02-06 17:16:37 +00:00
Circle CI
a0924bb67a Rebuild website 2017-02-02 05:33:01 -08:00
Circle CI
ac6c3d3eae Rebuild website 2017-01-23 15:58:27 -08:00
Circle CI
9c7bb68d01 Rebuild website 2017-01-23 10:35:15 -08:00
Circle CI
451cb4c623 Rebuild website 2017-01-23 09:27:21 -08:00
Dan Abramov
e8ea302025 Rebuild the website manually 2017-01-12 16:06:32 +00:00
Dan Abramov
6bb7a6c60e Rebuild docs 2017-01-06 20:28:00 +00:00
Dan Abramov
1a60ccde97 Rebuild docs 2017-01-04 18:21:44 +00:00
Ben Alpert
ed3c401c9e Rebuild docs with 17f8e94 2016-12-07 15:46:53 -08:00
Dan Abramov
be1d6848f0 Rebuild the website manually 2016-11-19 18:29:23 +00:00
Dan Abramov
5934242b7e Rebuild website 2016-11-16 14:53:46 +00:00
Travis CI
e19372d5f4 Rebuild website 2016-11-09 02:58:31 +00:00
Travis CI
58c129dff9 Rebuild website 2016-11-09 01:00:46 +00:00
Travis CI
f5b5d9a5f3 Rebuild website 2016-10-27 12:18:24 +00:00
Dan Abramov
cd443ca3da Rebuild website manually 2016-10-27 02:14:19 +01:00
Travis CI
5b7af23023 Rebuild website 2016-10-24 14:55:58 +00:00
Travis CI
2039cf87ee Rebuild website 2016-10-23 14:51:57 +00:00
Travis CI
7149218fa4 Rebuild website 2016-10-23 13:40:12 +00:00
Travis CI
cb8283877a Rebuild website 2016-10-23 12:54:32 +00:00
Travis CI
107c74cd7a Rebuild website 2016-10-22 21:11:05 +00:00
Ben Alpert
5cef4e9780 Revert "Rebuild website"
This reverts commit 4aaf555d80.
2016-10-21 14:29:03 -07:00
Travis CI
4aaf555d80 Rebuild website 2016-10-21 21:17:00 +00:00
Dan Abramov
dc84614b0c Rebuild website manually 2016-10-21 22:01:35 +01:00
Dan Abramov
625fc71ebb Rebuild website manually 2016-10-21 21:51:45 +01:00
Dan Abramov
659cef8a98 Rebuild website manually 2016-10-21 21:37:29 +01:00
Travis CI
6cc07e595a Rebuild website 2016-10-11 18:14:29 +00:00
Travis CI
fec4df7150 Rebuild website 2016-10-10 16:32:22 +00:00
Travis CI
88fbe7cc58 Rebuild website 2016-10-05 02:09:02 +00:00
Travis CI
7eb00d77e9 Rebuild website 2016-10-04 21:03:41 +00:00
Dan Abramov
6784bf841e Rebuild the website by hand 2016-10-04 19:44:42 +01:00
Travis CI
7268e9423f Rebuild website 2016-10-04 11:54:07 +00:00
Travis CI
309de75dc5 Rebuild website 2016-10-04 11:25:53 +00:00
Travis CI
3dc13b49b9 Rebuild website 2016-10-04 11:23:12 +00:00
Travis CI
96540f5afd Rebuild website 2016-10-03 22:58:27 +00:00
Travis CI
6b504aa08b Rebuild website 2016-10-03 21:35:05 +00:00
Travis CI
e0d718e49c Rebuild website 2016-10-03 21:07:11 +00:00
Travis CI
01651c2f14 Rebuild website 2016-10-03 20:56:41 +00:00
Travis CI
f647c99f0a Rebuild website 2016-10-03 20:28:46 +00:00
Travis CI
1e4e30f9a2 Rebuild website 2016-10-03 18:25:57 +00:00
Travis CI
139a6d9f9c Rebuild website 2016-09-29 10:36:55 +00:00
Travis CI
742ad40cec Rebuild website 2016-09-28 20:47:00 +00:00
Dan Abramov
d161c0a805 Rebuild website manually 2016-09-28 10:24:22 +01:00
Travis CI
9b6bedc109 Rebuild website 2016-09-28 02:50:29 +00:00
Dan Abramov
887c2a7386 Rebuild website manually 2016-09-27 23:19:47 +01:00
Travis CI
86561ea4e6 Rebuild website 2016-09-26 23:11:46 +00:00
Travis CI
760706b92b Rebuild website 2016-09-19 22:47:11 +00:00
Travis CI
92ffaf51d5 Rebuild website 2016-09-19 18:01:08 +00:00
Travis CI
57e56e8175 Rebuild website 2016-09-06 22:51:52 +00:00
Travis CI
8a6f8eddde Rebuild website 2016-09-03 17:17:43 +00:00
Paul O’Shannessy
2d90a5ba61 Rebuild website 2016-08-19 11:57:12 -07:00
Travis CI
7c78a4d0d4 Rebuild website 2016-08-19 17:44:40 +00:00
Travis CI
d3fe28ccd0 Rebuild website 2016-08-05 22:03:32 +00:00
Paul O’Shannessy
aac960738a Rebuild website 2016-08-05 11:08:49 -07:00
Travis CI
d3e0241469 Rebuild website 2016-08-02 20:54:26 +00:00
Travis CI
22e6d6a6d2 Rebuild website 2016-07-29 23:33:35 +00:00
Travis CI
1a1d339466 Rebuild website 2016-07-29 23:25:43 +00:00
Paul O’Shannessy
3ac0f9fc9a Rebuild website 2016-07-29 14:49:58 -07:00
Travis CI
e71c772d12 Rebuild website 2016-07-29 18:42:31 +00:00
Travis CI
00b883302c Rebuild website 2016-07-28 18:44:47 +00:00
Travis CI
e33d5e7bb1 Rebuild website 2016-07-22 20:26:56 +00:00
Travis CI
7217ae2671 Rebuild website 2016-07-22 16:01:45 +00:00
Travis CI
994651f5f9 Rebuild website 2016-07-20 18:55:19 +00:00
Travis CI
f23fd9c145 Rebuild website 2016-07-16 14:04:32 +00:00
Dan Abramov
b12a61d7c6 Rebuild website 2016-07-14 21:31:55 +01:00
Travis CI
f40e975f3f Rebuild website 2016-07-14 20:09:03 +00:00
Dan Abramov
017cc60cf3 Rebuild website 2016-07-14 20:43:11 +01:00
Travis CI
b0e883b4dc Rebuild website 2016-07-14 13:28:45 +00:00
Travis CI
9cbc399916 Rebuild website 2016-07-14 02:10:06 +00:00
Travis CI
ecf1fa5827 Rebuild website 2016-07-14 02:06:29 +00:00
Travis CI
cf707bc9f7 Rebuild website 2016-07-14 01:32:51 +00:00
Dan Abramov
b9cae83735 Rebuild website 2016-07-13 18:48:38 +01:00
Dan Abramov
a622002aed Rebuild website 2016-07-13 18:01:36 +01:00
Dan Abramov
f5b00d332a Rebuild website 2016-07-13 17:48:17 +01:00
Travis CI
188230ed62 Rebuild website 2016-07-12 01:57:29 +00:00
Travis CI
a5c102546b Rebuild website 2016-07-08 22:46:54 +00:00
Travis CI
ee785cea3a Rebuild website 2016-07-05 21:42:54 +00:00
Travis CI
e6b4020059 Rebuild website 2016-07-01 19:00:57 +00:00
Travis CI
aa50560d83 Rebuild website 2016-06-30 07:18:49 +00:00
Travis CI
1f48f2a157 Rebuild website 2016-06-21 03:24:52 +00:00
Travis CI
4c213db337 Rebuild website 2016-06-14 22:07:50 +00:00
Travis CI
7327d9fc5f Rebuild website 2016-06-13 19:42:24 +00:00
Travis CI
c636a24ab6 Rebuild website 2016-06-11 02:49:21 +00:00
Travis CI
064d1cf34a Rebuild website 2016-06-09 02:33:04 +00:00
Paul O’Shannessy
35ebcd3c55 Rebuild website 2016-06-07 16:35:54 -07:00
Travis CI
1c8c0bb99e Rebuild website 2016-06-03 21:48:37 +00:00
Travis CI
d6d06c6ecc Rebuild website 2016-06-03 21:43:52 +00:00
Travis CI
bd8054ef05 Rebuild website 2016-06-01 18:44:10 +00:00
Travis CI
725a0679b2 Rebuild website 2016-05-31 19:17:40 +00:00
Travis CI
c7e6ff57f6 Rebuild website 2016-05-24 19:07:03 +00:00
Travis CI
ea4f9ef2c6 Rebuild website 2016-05-20 23:10:59 +00:00
Travis CI
bbc2a37ab8 Rebuild website 2016-05-16 20:06:23 +00:00
Travis CI
d23d35d15a Rebuild website 2016-05-10 01:29:04 +00:00
Travis CI
eef19d1a04 Rebuild website 2016-05-09 23:47:37 +00:00
Travis CI
92ec06b65c Rebuild website 2016-04-30 00:43:29 +00:00
Travis CI
e2d954d1e7 Rebuild website 2016-04-22 20:15:55 +00:00
Travis CI
1d9e1aaf2d Rebuild website 2016-04-22 17:42:50 +00:00
Travis CI
a92c60c8cc Rebuild website 2016-04-14 22:59:44 +00:00
Travis CI
1ecf70469d Rebuild website 2016-04-09 01:26:52 +00:00
Travis CI
73ee739d02 Rebuild website 2016-04-08 19:19:28 +00:00
Travis CI
fadd204d35 Rebuild website 2016-04-08 19:02:14 +00:00
Paul O’Shannessy
dd653e305d Update website for 15.0.1 2016-04-08 11:30:23 -07:00
Travis CI
13a7fc0d07 Rebuild website 2016-04-08 01:17:20 +00:00
Travis CI
4f9905e4d3 Rebuild website 2016-04-07 23:56:47 +00:00
Travis CI
42979fa4ff Rebuild website 2016-04-07 23:40:07 +00:00
Paul O’Shannessy
db8498e15c rebuild website 2016-04-07 15:29:14 -07:00
Paul O’Shannessy
1b94dd8f40 Update site for v15 2016-04-07 14:33:54 -07:00
Travis CI
181b8454b1 Rebuild website 2016-03-29 22:26:28 +00:00
Travis CI
01ac4e13d3 Rebuild website 2016-03-29 21:26:34 +00:00
Travis CI
bf916998f2 Rebuild website 2016-03-29 20:05:41 +00:00
Travis CI
7ccf5eebc0 Rebuild website 2016-03-29 17:36:50 +00:00
Paul O’Shannessy
fec4d82416 Add 0.14.8 download 2016-03-29 10:27:07 -07:00
Travis CI
6d2cc9121a Rebuild website 2016-03-29 17:02:28 +00:00
Paul O’Shannessy
853784bc3f revert js 2016-03-21 18:05:21 -07:00
Travis CI
612ab8f7bd Rebuild website 2016-03-22 00:54:32 +00:00
Paul O’Shannessy
29d9a13ffb revert JS again
I donn't have insight into the queue and don't want to leave the site
broken forever.
2016-03-21 16:27:40 -07:00
Travis CI
4c2ff9ca34 Rebuild website 2016-03-21 19:38:37 +00:00
Paul O’Shannessy
63dff641cf Update website 2016-03-21 11:28:34 -07:00
Dan Abramov
f918eaa38c Restore JS yet again 2016-03-17 00:02:43 +00:00
Travis CI
49f47947c5 Rebuild website 2016-03-16 23:30:40 +00:00
Paul O’Shannessy
bde2c2905b restore js again 2016-03-09 12:09:30 -08:00
Travis CI
781cb6db90 Rebuild website 2016-03-09 19:43:03 +00:00
Paul O’Shannessy
c4c17f4f4f re-add removed JS again 2016-03-08 18:55:09 -08:00
Travis CI
6aa47d0ebf Rebuild website 2016-03-08 02:16:50 +00:00
Travis CI
81c8a0732d Rebuild website 2016-03-08 01:55:35 +00:00
Paul O’Shannessy
dfbee7f109 Update website 2016-03-07 17:17:10 -08:00
Paul O’Shannessy
2714c5d6f2 Restore deleted JS files 2016-03-07 13:37:08 -08:00
Travis CI
2402eb5a99 Rebuild website 2016-03-07 20:28:40 +00:00
Travis CI
d957c00dca Rebuild website 2016-02-25 07:41:47 +00:00
Travis CI
0845e3efae Rebuild website 2016-02-19 20:54:06 +00:00
Travis CI
3806959a6d Rebuild website 2016-02-19 19:41:35 +00:00
Travis CI
0b18dbc001 Rebuild website 2016-02-13 02:51:01 +00:00
Travis CI
f788099ab7 Rebuild website 2016-02-08 22:24:32 +00:00
Travis CI
e52a41c7be Rebuild website 2016-02-08 21:59:07 +00:00
Paul O’Shannessy
45efe53fd2 Rebuild website 2016-01-28 12:24:39 -08:00
Travis CI
7610b39759 Rebuild website 2016-01-28 18:43:23 +00:00
Travis CI
94a04746c2 Rebuild website 2016-01-12 17:49:07 +00:00
Travis CI
b6a74e8abe Rebuild website 2016-01-12 17:34:35 +00:00
Travis CI
58ccca7f75 Rebuild website 2016-01-08 18:33:53 +00:00
Travis CI
e97536deb5 Rebuild website 2016-01-06 23:57:13 +00:00
Travis CI
6851ef63b7 Rebuild website 2015-12-29 22:43:14 +00:00
Travis CI
e559120849 Rebuild website 2015-12-29 22:20:21 +00:00
Travis CI
c9cf3bb0c5 Rebuild website 2015-12-29 22:03:15 +00:00
Travis CI
b1a1e1440b Rebuild website 2015-12-29 22:01:57 +00:00
Travis CI
89789f974b Rebuild website 2015-12-23 20:55:57 +00:00
Travis CI
e4e3cb9125 Rebuild website 2015-12-21 20:22:57 +00:00
Travis CI
d94efdaa96 Rebuild website 2015-12-18 20:46:52 +00:00
Travis CI
507c52b220 Rebuild website 2015-12-16 17:59:48 +00:00
Travis CI
330a594d4b Rebuild website 2015-12-04 22:53:51 +00:00
Travis CI
13b86c3220 Rebuild website 2015-12-04 21:04:39 +00:00
Paul O’Shannessy
ce88118f88 Rebuild website 2015-12-04 12:05:14 -08:00
Travis CI
e6e5795dab Rebuild website 2015-12-01 20:05:27 +00:00
Travis CI
b12825dee9 Rebuild website 2015-11-19 02:21:12 +00:00
Travis CI
9bd86524e2 Rebuild website 2015-11-18 18:42:37 +00:00
Travis CI
609ba0776b Rebuild website 2015-11-13 00:15:47 +00:00
Travis CI
31f223fc9e Rebuild website 2015-11-12 23:05:29 +00:00
Travis CI
8b569f5573 Rebuild website 2015-11-10 18:56:55 +00:00
Travis CI
0ea0bd7d2d Rebuild website 2015-11-03 01:24:38 +00:00
Travis CI
83ba002377 Rebuild website 2015-11-02 19:57:29 +00:00
Travis CI
99a02b92d7 Rebuild website 2015-10-31 19:23:04 +00:00
Travis CI
8fd061c819 Rebuild website 2015-10-28 21:34:43 +00:00
Travis CI
9bc9c80617 Rebuild website 2015-10-27 22:48:54 +00:00
Travis CI
3c2848d785 Rebuild website 2015-10-20 23:23:15 +00:00
Travis CI
c022e0f61b Rebuild website 2015-10-19 19:56:43 +00:00
Travis CI
49711c27aa Rebuild website 2015-10-19 18:19:13 +00:00
Travis CI
47d9b441d4 Rebuild website 2015-10-19 14:46:15 +00:00
Travis CI
d9b99c2d6f Rebuild website 2015-10-13 17:58:19 +00:00
Travis CI
b06a057dd4 Rebuild website 2015-10-12 22:16:53 +00:00
Travis CI
a5ea866492 Rebuild website 2015-10-11 02:27:59 +00:00
Travis CI
2eb3bdb7a3 Rebuild website 2015-10-09 23:03:30 +00:00
Travis CI
19c9ec1544 Rebuild website 2015-10-09 22:56:16 +00:00
Travis CI
3ead8e3d11 Rebuild website 2015-10-09 19:35:31 +00:00
Travis CI
6d6208a7fa Rebuild website 2015-10-08 20:26:17 +00:00
Travis CI
15707df9bc Rebuild website 2015-10-08 00:18:24 +00:00
Travis CI
a0b2f21987 Rebuild website 2015-10-07 20:06:38 +00:00
Travis CI
ea47c6c9f3 Rebuild website 2015-10-07 19:28:51 +00:00
Travis CI
76c780f3a9 Rebuild website 2015-10-07 17:31:12 +00:00
Travis CI
556dfa96c5 Rebuild website 2015-10-02 19:13:37 +00:00
Travis CI
ea6b0b9e56 Rebuild website 2015-09-26 03:34:40 +00:00
Travis CI
547c811365 Rebuild website 2015-09-22 18:15:43 +00:00
Travis CI
d26a0ceb1a Rebuild website 2015-09-15 03:44:46 +00:00
Travis CI
9ce9d5913b Rebuild website 2015-09-15 02:47:29 +00:00
Travis CI
83e53e59de Rebuild website 2015-09-14 15:38:09 +00:00
Travis CI
30dec0b6a0 Rebuild website 2015-09-10 20:30:20 +00:00
Travis CI
fa87fc1234 Rebuild website 2015-09-10 17:07:37 +00:00
Travis CI
3f52012b40 Rebuild website 2015-09-10 16:52:05 +00:00
Travis CI
b0091b516c Rebuild website 2015-09-02 22:20:42 +00:00
Travis CI
1f0e950538 Rebuild website 2015-08-31 18:29:13 +00:00
Travis CI
a42b28ff58 Rebuild website 2015-08-25 16:57:28 +00:00
Travis CI
fbeace0f81 Rebuild website 2015-08-25 16:48:55 +00:00
Travis CI
7a99d421c9 Rebuild website 2015-08-20 20:35:14 +00:00
Travis CI
5724abb1ed Rebuild website 2015-08-20 20:17:23 +00:00
Travis CI
0898f44329 Rebuild website 2015-08-19 23:37:02 +00:00
Travis CI
24a6ed9201 Rebuild website 2015-08-14 00:17:16 +00:00
Travis CI
3ee0f9c321 Rebuild website 2015-08-12 19:11:47 +00:00
Jim
f9b2f3f53e Merge pull request #4617 from marcuswhybrow/patch-1
Fix grammar in "Why Relay"
2015-08-12 07:51:22 -07:00
Marcus Whybrow
ed7f3299fd Fix grammar in "Why Relay" 2015-08-12 15:29:26 +01:00
Travis CI
562937ce28 Rebuild website 2015-08-11 19:33:03 +00:00
Travis CI
abb04d53f4 Rebuild website 2015-08-08 02:33:17 +00:00
Travis CI
083c2fa33f Rebuild website 2015-08-03 22:19:54 +00:00
Travis CI
eae015d0ee Rebuild website 2015-07-25 00:42:17 +00:00
Travis CI
e46589f784 Rebuild website 2015-07-20 15:34:11 +00:00
Travis CI
0b5cb01d2f Rebuild website 2015-07-17 21:25:35 +00:00
Travis CI
0c788b272f Rebuild website 2015-07-15 14:37:34 +00:00
Travis CI
9aa593096e Rebuild website 2015-07-08 17:26:34 +00:00
Travis CI
cef5a9d791 Rebuild website 2015-07-04 15:27:40 +00:00
Travis CI
480d599895 Rebuild website 2015-07-03 08:56:34 +00:00
Travis CI
813a536d0f Rebuild website 2015-06-30 13:59:44 +00:00
Travis CI
33ac4ccc76 Rebuild website 2015-06-27 10:03:17 +00:00
Travis CI
f409f18c0f Rebuild website 2015-06-25 03:26:43 +00:00
Travis CI
658bd6a67d Rebuild website 2015-06-23 05:42:46 +00:00
Travis CI
d284e50900 Rebuild website 2015-06-20 23:52:34 +00:00
Ben Alpert
459e68f93b Merge pull request #4183 from jstoja/patch-1
Update graphql-introduction.html
2015-06-20 16:47:58 -07:00
Julien Bordellier
5bdd8f8640 Update graphql-introduction.html
There was a tiny mistake line 170 s/and/an/ :)
2015-06-20 16:50:01 +02:00
Travis CI
23c85e45b7 Rebuild website 2015-06-16 17:59:43 +00:00
Travis CI
e3aea2ee0c Rebuild website 2015-06-13 04:53:37 +00:00
Travis CI
33c1227063 Rebuild website 2015-06-12 23:49:59 +00:00
Travis CI
0fdb244c6d Rebuild website 2015-06-10 23:02:35 +00:00
Travis CI
fed91d4a82 Rebuild website 2015-06-09 03:18:41 +00:00
Travis CI
7f80adf253 Rebuild website 2015-06-01 21:34:08 +00:00
Travis CI
c24c9e602c Rebuild website 2015-05-22 20:22:20 +00:00
Travis CI
d8cfaf830f Rebuild website 2015-05-21 18:51:57 +00:00
Travis CI
a7c4734802 Rebuild website 2015-05-13 22:21:23 +00:00
Travis CI
8e14fbdc0e Rebuild website 2015-05-11 05:17:12 +00:00
Travis CI
5b5b7d100d Rebuild website 2015-05-08 23:40:41 +00:00
Travis CI
431525248b Rebuild website 2015-05-02 00:02:59 +00:00
Travis CI
248d304421 Rebuild website 2015-05-01 19:37:36 +00:00
Travis CI
4ff6c8ad51 Rebuild website 2015-05-01 18:25:24 +00:00
Travis CI
e3075c6cbc Rebuild website 2015-05-01 18:11:09 +00:00
Travis CI
be7d5de803 Rebuild website 2015-04-23 00:09:10 +00:00
Travis CI
bf961b2c2a Rebuild website 2015-04-20 18:14:12 +00:00
Travis CI
c002957436 Rebuild website 2015-04-18 23:10:25 +00:00
Travis CI
fddf68752e Rebuild website 2015-04-18 22:40:10 +00:00
Travis CI
55c84b449e Rebuild website 2015-04-18 01:15:06 +00:00
Christopher Chedeau
bcf765dcf3 React Native v0.4 2015-04-17 09:15:26 -07:00
Travis CI
9424d2be52 Rebuild website 2015-04-14 21:49:45 +00:00
Travis CI
c9767eaae4 Rebuild website 2015-04-14 00:11:27 +00:00
Travis CI
52f253cfc8 Rebuild website 2015-04-13 23:17:59 +00:00
Travis CI
f9acc6517a Rebuild website 2015-04-08 18:16:02 +00:00
Travis CI
75bb7f7355 Rebuild website 2015-04-03 17:54:56 +00:00
Travis CI
0e591c19ca Rebuild website 2015-04-03 16:17:27 +00:00
Travis CI
c9d8f02c8e Rebuild website 2015-04-01 00:11:10 +00:00
Travis CI
0640447cb3 Rebuild website 2015-03-30 18:27:44 +00:00
Christopher Chedeau
d4eed6320c Round-up 26 2015-03-30 08:05:58 -07:00
Ben Alpert
237cdbb2fc Rebuild docs 2015-03-26 12:31:15 -07:00
Ben Alpert
75bdef3e45 Rebuild docs 2015-03-26 10:11:35 -07:00
Ben Alpert
4eee8efbae Rebuild docs 2015-03-26 10:09:34 -07:00
Paul O’Shannessy
043584fc6c Update for relay blog post 2015-03-19 13:07:03 -07:00
Paul O’Shannessy
8e5f7ea1d1 v0.13.1 2015-03-16 16:53:07 -07:00
Paul O’Shannessy
0a779234d2 Includes #3419, #3422, #3394 2015-03-16 16:26:40 -07:00
Paul O’Shannessy
de204315c6 v0.13.0 2015-03-10 14:54:21 -07:00
Jim
37d795f9bc Merge pull request #3319 from rynclark/patch-2
Fix typo (Clark not Clarke)
2015-03-05 03:04:21 -08:00
Ryan Clark
e3ff7dfab3 Update index.html
Fixed my name again - didn't realise it was on this page too.
2015-03-05 10:04:55 +00:00
Paul O’Shannessy
18b46dbb62 Merge pull request #3311 from rynclark/patch-1
Update community-roundup-25.html
2015-03-04 12:28:04 -08:00
Ryan Clark
88b3ce1e7d Update community-roundup-25.html
Fixed my name!
2015-03-04 19:11:55 +00:00
Christopher Chedeau
fd857723bd update of round-up 25 2015-03-04 09:26:09 -08:00
Christopher Chedeau
4c96ea3517 roundup 25 2015-03-04 09:11:05 -08:00
Paul O’Shannessy
e3d9944ed0 Facebook, not FaceBook 2015-03-03 12:48:43 -08:00
Paul O’Shannessy
d3d258ba5b v0.13 rc2 blog post 2015-03-03 12:44:50 -08:00
Paul O’Shannessy
e1fd23515a v0.13 RC blog post 2015-02-24 14:11:54 -08:00
Paul O’Shannessy
33f553da2c 4d90b9bdf3 and #3255 2015-02-24 12:48:57 -08:00
Paul O’Shannessy
331320b80b Streamlining React Elements blog post (#3250) 2015-02-24 11:29:56 -08:00
Paul O’Shannessy
2e578d1f64 Relay blog post (#3174) 2015-02-20 09:48:30 -08:00
Paul O’Shannessy
cfb998a906 Add #3190 2015-02-18 21:42:56 -08:00
Paul O’Shannessy
2af1bffce1 Update to latest
Includes #3168, #3167, #3134, #3089, #3082, #3078, #3074, #3073, #3046, #3166
2015-02-18 13:44:53 -08:00
Christopher Chedeau
738e33cd7f update image perf 2015-02-11 12:46:43 -08:00
Christopher Chedeau
0febbe14de Tweaks on advanced performance 2015-02-11 11:15:31 -08:00
Christopher Chedeau
3b45fd540f advanced performance 2015-02-11 10:57:48 -08:00
Paul O’Shannessy
4c758f484e Update to latest
Includes #3036, #3032, #3016, #3013, #3011, #3007, #3001, #2999, #2997, #2987, #2969, #2965, #2962, #2961
2015-02-04 15:36:53 -08:00
Paul O’Shannessy
0a207cc1f1 Merge pull request #2971 from koistya/patch-1
Fix a typo in 2015/01/27 blog post
2015-01-29 16:11:10 -08:00
Konstantin Tarkus
6102e015c3 Fix a typo in 2015/01/27 blog post 2015-01-28 15:50:23 +03:00
Paul O’Shannessy
20700b9e67 A couple small updates to the 0.13 beta blog post 2015-01-28 00:01:32 -08:00
Paul O’Shannessy
780f01a993 0.13 beta blog post 2015-01-27 23:08:27 -08:00
Paul O’Shannessy
3d4afaaa5d Update to latest
Includes 92e361709c (not #2874), #2875, #2881, #2890, #2902, #2903
2015-01-22 13:20:10 -08:00
Paul O’Shannessy
870def7781 Update to latest
Includes #2859, #2824, #2801, #2795, #2791, #2788, #2773, #2760, #2759, #2734, #2733, #2707, #2675, #2360, #2297
2015-01-16 16:40:06 -08:00
Paul O’Shannessy
5ab16ba05d Fix typo in blog post - #2752 2014-12-19 14:31:54 -08:00
Paul O’Shannessy
f1b8acc7b5 Diversity Scholarship blog post 2014-12-19 13:24:03 -08:00
Paul O’Shannessy
dd499fdee2 v0.12.2 2014-12-18 12:33:48 -08:00
Paul O’Shannessy
2fb27e9598 Update to latest
Includes #2718, #2705, #2694, #2689, #2679, #2672, #2671
2014-12-16 12:41:09 -08:00
Paul O’Shannessy
1dcaad3f8e Update to latest
Includes: #2630, #2633, #2616, #2623, #2622, #2636, #2615, #2649, #2639, #2635
2014-12-03 15:01:13 -08:00
Steven Luscher
6fe2c0c425 Community #24: Regenerated for the correct spelling of prism, a better Carousel link, and less whale-talk. 2014-11-24 18:31:27 -08:00
Steven Luscher
58d3bf0352 Generated Community Roundup #24 2014-11-24 18:04:00 -08:00
Christopher Chedeau
f271ce3b03 add recorded 2014-11-24 11:29:58 +00:00
Christopher Chedeau
0a9b79096b react conf updates 2014-11-24 10:35:33 +00:00
Paul O’Shannessy
12b8de2861 Update to latest
Includes #2473, #2475, #2498, #2514, #2544, #2554, #2555
2014-11-19 15:37:29 +00:00
Paul O’Shannessy
de16bd5883 0.12.1 2014-11-18 09:11:02 +01:00
Christopher Chedeau
93572503dd JSXTransformer build with stripping type annotations 2014-11-15 17:32:36 -08:00
Paul O’Shannessy
23d90ff554 Update to latest
Includes #2463, #2434
2014-11-05 16:22:36 -08:00
Paul O’Shannessy
ffa032b146 Update to latest
Includes #2419, #2428, #2418, #2443, #2433
2014-10-31 11:24:54 -07:00
Paul O’Shannessy
654b347d58 v0.12.0 2014-10-28 11:36:52 -07:00
Paul O’Shannessy
868c19523d React.js conf blog post 2014-10-27 10:16:01 -07:00
Paul O’Shannessy
252b153e86 Update to latest
* 90d1aeb
* be468c2
2014-10-20 16:23:06 -07:00
Christopher Chedeau
9220805ebf rename roundup 2014-10-17 08:18:00 -07:00
Christopher Chedeau
324d956969 round-up 23 2014-10-17 08:10:32 -07:00
Paul O’Shannessy
32525e5797 Update docs
* move React Elements post to right place
* 0.12 rc1
2014-10-16 15:37:25 -07:00
Paul O’Shannessy
76c5058590 React Elements blog post 2014-10-14 11:04:27 -07:00
Paul O’Shannessy
c149e9594d Update to latest.
* c8d5106
* 8c7cf04
* ce03543
* 995d0e5
2014-09-29 13:47:15 -07:00
Paul O’Shannessy
023e79f085 Update to latest
99a45a59cc...e179f7b19e
2014-09-24 16:59:54 -07:00
fisherwebdev
5eca790f0a publishing Testing Flux Applications blog post
GitHub154
[react] fisherwebdev closed pull request #2234: [blog] testing flux applications (master...master) https://github.com/facebook/react/pull/2234
GitHub183
[react] fisherwebdev pushed 2 new commits to master: 67eeed601b...6f54ed71da
GitHub183
react/master 9952a54 fisherwebdev: [blog] testing flux applications
GitHub183
react/master 6f54ed7 Bill Fisher: Merge pull request #2234 from fisherwebdev/master...
ChanServ has changed mode: +o yungsters
GitHub16
[react] fisherwebdev pushed 1 new commit to 0.11-stable: 99a45a59cc
GitHub16
react/0.11-stable 99a45a5 fisherwebdev: [blog] testing flux applications
2014-09-24 13:39:13 -07:00
Paul O’Shannessy
7fa746f7c8 v0.11.2 2014-09-16 11:12:31 -07:00
Christopher Chedeau
37843c4706 roundup 22 2014-09-12 11:37:40 -07:00
Paul O’Shannessy
f60002cd14 pull in #2147 2014-09-04 16:28:27 -07:00
Paul O’Shannessy
c031dd3b10 JSX blog post 2014-09-03 16:04:15 -07:00
Paul O’Shannessy
4bb397d6e5 Latest sync of docs 2014-09-03 15:58:17 -07:00
Paul O’Shannessy
118e64c400 Update Jekyll (#2035) 2014-08-13 13:15:29 -07:00
Paul O’Shannessy
62c4231389 Sync latest changes
Use `bundle exec rake release` to make sure the right gem versions are
used, which reverts some of the trivial markdown related changes from last time.
2014-08-13 13:10:08 -07:00
Paul O’Shannessy
741eea6c73 Sync latest changes to docs
Also removes stray es5-shim/sham files (and perhaps a slightly different
redcarpet version resulting in different markdown parsing...)
2014-08-12 15:26:53 -07:00
Christopher Chedeau
4ca56fea73 typo "refere"->"ence" 2014-08-03 18:52:46 +02:00
Christopher Chedeau
b63c215ac9 community round-up #21 2014-08-03 18:31:51 +02:00
Vjeux
a99bc749cb backgorund image + typo 2014-07-30 21:08:04 +02:00
Vjeux
63a6f74321 link issue 2014-07-30 19:50:01 +02:00
Vjeux
b18fb3b74d flux blog post 2014-07-30 19:33:27 +02:00
Vjeux
b394c5a833 oops, remove copy of #20 2014-07-28 12:04:30 +02:00
Vjeux
910464838a wording roundup #20 2014-07-28 11:56:44 +02:00
Ben Alpert
f39ed9ee25 Rebuild docs 2014-07-27 16:05:56 -07:00
Ben Alpert
14bac3b37a Rebuild docs 2014-07-27 13:30:48 -07:00
Ben Alpert
e9de762c45 Rebuild docs 2014-07-27 13:08:15 -07:00
Vjeux
4ea5b1d20b Community Roundup #20 2014-07-27 14:29:26 +02:00
Paul O’Shannessy
2aa83f71cc v0.11.1 2014-07-25 11:25:07 -07:00
Ben Alpert
4bc42dfe73 Rebuild docs 2014-07-17 15:59:24 -07:00
Ben Alpert
ddf7a5b5f6 Rebuild docs 2014-07-17 15:23:39 -07:00
Paul O’Shannessy
f6b0e9d59b v0.11.0 2014-07-17 13:53:28 -07:00
Paul O’Shannessy
fbc70acf2d 0.11 RC blog post 2014-07-13 13:12:54 -07:00
Ben Alpert
5720d80e67 Rebuild docs to fix link 2014-06-30 10:49:37 -07:00
Ben Alpert
08656fec3f Rebuild docs 2014-06-30 01:08:56 -07:00
Cheng Lou
0751a8f0a1 Add --harmony option and update tutorial 2014-06-29 22:09:26 -07:00
Cheng Lou
b189a7a9c0 [Blog] Update round-up 19 to include more credit 2014-06-27 10:19:18 -07:00
Ben Alpert
88348f8c85 Fix typo in blog post 2014-06-26 15:20:01 -07:00
Paul O’Shannessy
d4aced0b21 Update author of react-bootstrap (#1748) 2014-06-26 15:16:31 -07:00
Cheng Lou
2b7ef84999 Community round-up #19 2014-06-26 14:06:35 -07:00
Paul O’Shannessy
0d18bee5f3 Sync to latest 2014-06-24 15:18:05 -07:00
Paul O’Shannessy
6bcf1e5790 Sync latest changes out
2d66fc4518
d8a2f12498
7172b1d5da
f1a5a4c58e
2f61996ec3
cfdc884582
00037b3ec2
121b290899
c91f95a092
2496757364
2014-06-24 14:26:05 -07:00
Ben Alpert
02d18739d6 Fix ClojureScript typo 2014-05-29 13:22:20 -07:00
Ben Alpert
a30ccf5583 Actually add post 2014-05-29 11:45:32 -07:00
Ben Alpert
7c08596f40 Rebuild docs for one-year post 2014-05-29 11:44:34 -07:00
Ben Alpert
02ea1c044c Rebuild docs for test utils docs change 2014-05-14 21:40:02 -07:00
Ben Alpert
ced25b13a4 Rebuild docs to fix code sample 2014-05-10 18:01:57 -03:00
Ben Alpert
597c4bca44 Rebuild docs to fix link 2014-05-09 15:43:26 -03:00
Paul O’Shannessy
07ea77092d fix flux link typo 2014-05-08 20:05:09 -07:00
Vjeux
5613670284 flux blog post and tutorial 2014-05-09 01:39:33 +02:00
Paul O’Shannessy
59fe162fe5 Update to latest docs. Biggest change: no more fb comments
Commits synced:
009be62906
af79caf1aa
5167b7a5b2
f728846712
af7ea7c999
287db7017e
14580fb012
f27175d166
663dd6f5b3
df72bd76be
05cc7b635c
fbbace6b69
6323db7c18
cdac160439
dea228e4ae
b360ed80dd
67c68612c0
c4ed2c1c90
2014-05-08 11:57:43 -07:00
Paul O’Shannessy
eecc70cf96 Sync latest changes 2014-04-07 17:59:48 -07:00
Ben Alpert
431706a330 React.NET blog post 2014-04-04 13:25:30 -07:00
Ben Alpert
cf7532a1d6 Update acknowledgements page 2014-04-03 07:35:52 -07:00
Paul O’Shannessy
eaa87d8b5b fix pit of success 2014-03-28 14:43:57 -07:00
Paul O’Shannessy
9c4fea0d1c https://github.com/facebook/react/pull/1319 2014-03-28 14:33:46 -07:00
Paul O’Shannessy
69f231639d road to 1.0 blog post 2014-03-28 14:00:35 -07:00
Paul O’Shannessy
8a98319d58 0.10 blog post 2014-03-21 14:55:09 -07:00
Paul O’Shannessy
7e16bb70b1 v0.10.0 2014-03-21 13:37:35 -07:00
Paul O’Shannessy
774d877518 0.10rc1 2014-03-19 11:32:48 -07:00
Paul O’Shannessy
029dd9bb77 Community Round-up #18 2014-03-14 20:17:58 -07:00
Ben Alpert
645a32032a Add file I forgot
Fixes #1238.
2014-03-10 11:45:55 -07:00
Ben Alpert
6cfdfa8636 Rebuild docs 2014-03-09 13:46:26 -07:00
Paul O’Shannessy
4c37b3f818 Bring in recent docs changes
* 25cafec4a9
* ba78edbed8
2014-02-26 15:15:08 -08:00
Ben Alpert
c2e3735ffb Rebuild docs for clearer propTypes 2014-02-26 15:04:30 -08:00
Ben Alpert
24c909502d Actually add acknowledgements page 2014-02-24 17:25:13 -08:00
Ben Alpert
77f045ccdc Rebuild with acknowledgements 2014-02-24 17:19:49 -08:00
Ben Alpert
36aeb76e5f Rebuild docs for typo fix 2014-02-24 15:28:49 -08:00
Paul O’Shannessy
300374d9a8 Update to latest 2014-02-24 14:41:42 -08:00
Ben Alpert
b6d4923fb0 Rebuild docs 2014-02-21 12:17:45 -08:00
Paul O’Shannessy
4658413aea Context in breaking changes too. see #1141 2014-02-20 10:35:02 -08:00
Paul O’Shannessy
2221fe1132 v0.9.0 2014-02-20 09:42:59 -08:00
Paul O’Shannessy
07ac1ea11f 0.9.0-rc1 2014-02-16 19:39:16 -08:00
Ben Alpert
f1d5e0421b Fix typo in latest round-up 2014-02-15 22:57:42 -08:00
Paul O’Shannessy
8ac8f35db4 Community Roundup 16 2014-02-15 15:59:02 -08:00
Paul O’Shannessy
2d42e44128 update css 2014-02-05 16:24:55 -08:00
Paul O’Shannessy
f414b96c03 Community roundup 15 2014-02-05 16:09:46 -08:00
Ben Alpert
5af1ac1836 Rebuild docs
Somehow ee5805d included an unintended update to JSXTransformer.js and react.min.js.
2014-02-04 00:37:11 -08:00
Vjeux
9afcad69d1 Pete Hunt petehunt Add link to meteor talk c06ca23
Pete Hunt	petehunt	Update videos.md	7467b1f
Pete Hunt	petehunt	Add a complementary tools page	3c19f62
Pete Hunt	petehunt	add example apps page	9209207
Pete Hunt	petehunt	Update example-apps.md	 7f22f43
2014-02-02 04:03:21 +01:00
Vjeux
ee5805da65 Christopher Chedeau vjeux Document isMounted … 30e16e4
Nick Thompson	nick-thompson	Clarify componentWillMount behavior	542f20b
Cheng Lou	chenglou	docs fix back link in Examples	6b15ad5
Cheng Lou	chenglou	docs add jsx->js tab to live editors	7ac5f3c
Paul O’Shannessy	zpao	Normalize line endings	6b1c6be
Ben Alpert	spicyj	Update homepage for new JSX/JS editor	761e1c8
Ben Alpert	spicyj	Properly clear live editor on JSX compile failure	d3fc5ad
Ben Alpert	spicyj	Simplify live editor execution logic	c7f0663
Cheng Lou	chenglou	[docs] Tweak frontpage first example and jsx-compiler example	8c8841c
Christoph Pojer	cpojer	Update propTypes documentation.	b66fbde
Jean Lauliac	jeanlauliac	Update broken link in 'why react' article	341d292
Jean Lauliac	jeanlauliac	Normalize internal links in 'why react' article	0681d13
aymanosman	aymanosman	Fix typo	09650e1
Bob Eagan	bobeagan	fix incorrect link	2edb76f
Bob Eagan	bobeagan	add hash link for lifecycle section of working with the browser page	3db3460
Pete Hunt	petehunt	remove references to react-page	3120192
Ben Alpert	spicyj	Fix docs typo	6e4ddfd
Paul O’Shannessy	zpao	Fix animation example code …	dd66223
Eric Schoffstall	Contra	fix grammar mistake	64ac427
Kunal Mehta	kmeht	Add documentation about React.renderComponent …	f970453
Christopher Chedeau	vjeux	s/Mock DOM/Virtual DOM/ …	22772c9
Ben Alpert	spicyj	Disable CodeMirror smart indentation …	571d173
Ben Alpert	spicyj	[docs] Fix comma splice	3810c83
2014-02-02 03:58:18 +01:00
Paul O’Shannessy
e82227b698 Updated to latest changes
7c4c0cd [docs] Remove commented out ghbtns
92102ac Add info about dev vs. prod builds
277cbf0 [docs] Add timezone to _config
b0b7717 Remove stray "117", combine lines in polyfill docs
8d63dad Rewrite Older Browsers polyfill section for clarity.
edd61ed Fix "Uncontrolled Components" documentation
d99cafa Fix typo in docs.
190f373 Update docs to mention that you need both es5-shim.js and
es5-sham.js to use React with IE8.
1873e1d Add dataType to all $.ajax calls for consistency
27ac8a3 Fix #845, Trivial year change
97f2441 Fix #874: Edit thinking-in-react
ce72e84 Document return value of unmountComponentAtNode
52ad24f Remove two more react.min.js references
7efdb43 Don't use the min build in getting started guide
51e7a6b Fix URL in displayName description
f44e8cc Add charCode/keyCode/which to key event docs
2014-01-15 11:42:32 -08:00
Christoph Pojer
bf82413930 Merge pull request #874 from chantastic/patch-1
Edit thinking-in-react, remove repeated word
2014-01-13 08:43:41 -08:00
Michael Chan
58deb56ca1 Edit thinking-in-react, remove repeated word
- removed repeated word 'building'
2014-01-13 08:27:42 -08:00
Christopher Chedeau
4b90c16c15 Merge pull request #845 from hariharan-uno/patch-1
Trivial year change
2014-01-08 10:07:53 -08:00
Hari haran
4bd2bfef69 Trivial year change 2014-01-08 23:31:55 +05:30
Vjeux
c4a2717796 fabiomcosta adding warning about the lack of support for onScroll on IE8 … 8615ade
philix	Add jsx-requirejs-plugin to the tooling-integration page	978a8f5
philix	Remove the require-jsx plugin from the tooling-integration page …	e23e627
spicyj	Mention react-art where we talk about SVG	13c211a
spicyj	Fix typo	3afe6de
passy	Add gulp-react to Helpful OSS Projects …	8ef2cec
xixixao	Document displayName	ee90857
Daniel15	Add link to HTML to JSX converter to “JSX In Depth” page	5cbc727
Daniel15	Change “not allowed” back to “discouraged” since you technically *can… …	ea41991
vjeux	Community Round-up #14	658aa45
2014-01-06 18:17:14 +01:00
Vjeux
ea32d3659c chenglou docs tips fix small typo and code 8dc36e3
chenglou	docs better error display for live editor and JSX compiler	8d37f7d
vjeux	React Chrome Developer Tools	dbae31d
2014-01-02 21:07:09 +01:00
Vjeux
d786436367 spicyj Upgrade codemirror and enable line wrapping … 32753c5
chenglou	docs remove link to wiki page …	 c5a2ca9
2013-12-31 06:02:08 +01:00
Vjeux
1b7b3bd006 Making 'native DOM' nodes more explicit in documentation 2013-12-31 01:39:46 +01:00
Vjeux
84a9d1821b IE8 style fixes 2013-12-31 01:27:34 +01:00
Vjeux
f8c5781102 chenglou docs tips small refactorings 1671efb 2013-12-31 00:14:10 +01:00
Vjeux
777f999db5 chenglou docs tips expose component function cdb328b
wincent	Fix a typo in the working-with-the-browser docs	0e95e8e
spicyj	Make React website work in IE8	30178d4baf
2013-12-30 23:50:58 +01:00
Vjeux
a276e32f51 jhiswin live_editor.js using deprecated function
petehunt Update parent/child communication tip
2013-12-30 19:58:39 +01:00
Vjeux
80dc66474d chenglou docs add warning to add jsx pragma c68b972
ivan	Use explicit $.ajax dataType and add error callback	0ae26fe
ivan	Add a warning about the @jsx declaration	838589c
ivan	console.log -> console.error	880951f
spicyj	Move initial $.ajax out of getInitialState …	12b94b0
vjeux	Community Round-up #13	3a370b8
2013-12-30 18:33:01 +01:00
Vjeux
0e32f3669e navigation wasn't properly pushed for videos 2013-12-24 17:50:36 +01:00
Vjeux
4cb8bc68ba Remove video from home 2013-12-24 07:50:46 +01:00
petehunt
65d56feeeb Add a talks section to the docs
91780d1c58 Browse code
vjeux authored 35 minutes ago
2013-12-24 01:33:59 -05:00
petehunt
a4a466dd26 trying it again 2013-12-24 01:07:14 -05:00
petehunt
3323ba8f0d Revert "language update as suggested by @petehunt"
This reverts commit fb3bd7f583.
2013-12-24 00:56:52 -05:00
petehunt
fb3bd7f583 language update as suggested by @petehunt
c211767d47 Browse code
fabiomcosta authored 5 hours ago

updating text as suggested by @petehunt
34660eccf9 Browse code
fabiomcosta authored 5 hours ago

Adding note about onScroll on IE8
874122bad4 Browse code
fabiomcosta authored 6 hours ago

Note about react's version on the talk, since somethings have already… …
d22874d039 Browse code
fabiomcosta authored 6 hours ago
2013-12-24 00:51:02 -05:00
Vjeux
1235527398 typo 2013-12-23 18:56:06 +01:00
Vjeux
15e8c64633 html-jsx compiler with the fix 2013-12-23 18:34:41 +01:00
Vjeux
b4d07a679a vjeux Community Round-up #12 d1e955c 2013-12-23 18:06:13 +01:00
Vjeux
72296a4385 revert html-jsx 2013-12-23 07:03:04 +01:00
Vjeux
8c153e6427 fix up javascript for jsx-compiler 2013-12-23 06:43:38 +01:00
Vjeux
97ec6b66d0 chenglou docs section for non-dom attributes … 94c100c
vjeux	Document the Diff algorithm …	8f24fca

vjeux	Add video at the bottom of the front page	0993b61

bricooke	Update highlighted lines in tutorial …	38d68fd

jaredly	rename this tip to be less confusing …	9686487

jaredly	fixing capitalization	1a9b213

nicholasbs	Fix typo (ot -> to)	18410bf

jaredly	adding note about initializing state w/ props	4f71ddf

jaredly	changes as requested	cb0cbcc

jaredly	one liner	cd2fd80

squidsoup	Tutorial template markup needs a reference to jquery for the ajax calls …	37e544d

chenglou	docs add input attrs for Dom Differences	7eae8d3

chenglou	docs make all link start with /react/docs	dbc8563

Daniel15	Simple HTML to JSX converter, built during Hackathon 40 at Facebook. …	 2308f95
2013-12-23 06:37:00 +01:00
Paul O’Shannessy
ef762b50a7 v0.8.0 2013-12-19 10:44:05 -08:00
Paul O’Shannessy
4b46fb97a8 Add 0.4.2 starter kit 2013-12-19 10:30:52 -08:00
Paul O’Shannessy
e7c875bda8 Reformat post 2013-12-18 16:03:50 -08:00
Paul O’Shannessy
b0305f8b7e Blog post for 0.5.2, 0.4.2 2013-12-18 15:42:48 -08:00
Paul O’Shannessy
404810aba8 v0.5.2 2013-12-18 12:04:10 -08:00
Paul O’Shannessy
fd93cfb229 Merge in latest docs changes 2013-12-02 15:51:23 -08:00
Vjeux
6d37c780ed merging a lot of stuff
- splitting addons into 3 pages
- add docs for classSet
- classSet semicolon missing
- className htmlFor
- anchors for links
2013-11-19 23:30:01 +01:00
Vjeux
3ce19cdfb3 Community Round-up #11 2013-11-19 23:10:49 +01:00
Paul O’Shannessy
c4ed771b1f Tips! See #362 for details 2013-11-14 15:19:53 -08:00
Paul O’Shannessy
7ec2988c71 Latest docs changes
* fb1a072 - fix doc & example transition opacity from .99 to 1
* c1c7a60 - Added clearfix to blog content holder
* adad0d7 - Fixes the name of the component on documentation
* e7f48a6 - Prevents header anchors from interfering with clickable content.
2013-11-13 17:56:22 -08:00
Paul O’Shannessy
499a3324b1 move docs tooling, immutable state
* d47d509637
* d3cee1ee2e
2013-11-08 13:32:38 -08:00
Paul O’Shannessy
cf1a728e21 Community Roundup #10 and ridealongs 2013-11-06 12:45:43 -08:00
Paul O’Shannessy
a07e3ad0b5 Fix blog post formatting 2013-11-05 16:17:16 -08:00
Paul O’Shannessy
faada22274 fix header link styling (1553bad) 2013-11-05 15:07:24 -08:00
Paul O’Shannessy
4c00e8f69a Thinking in React blog post, jQuery cleanup in tutorial 2013-11-05 14:43:49 -08:00
Paul O’Shannessy
0ac7832631 Updated with latest changes, mostly to fix tutorial 2013-11-04 17:23:48 -08:00
Paul O’Shannessy
7a8977d175 0.5.1 blog post 2013-10-29 12:52:15 -07:00
Paul O’Shannessy
7dd0009c60 v0.5.1 2013-10-29 11:51:20 -07:00
Paul O’Shannessy
c7b896be20 Updated API docs 2013-10-26 17:49:23 -07:00
Paul O’Shannessy
97654abcaa Latest changes
* 2c35ed8068
* c994cc24c3
2013-10-25 18:27:03 -07:00
Paul O’Shannessy
7e99f8eec3 remove OUTLINE, make header links clickable 2013-10-21 15:22:09 -07:00
Paul O’Shannessy
7938338441 Update live editor 2013-10-16 18:12:14 -07:00
Paul O’Shannessy
fdb12c2ea3 v0.5.0 2013-10-16 11:53:27 -07:00
Paul O’Shannessy
4686b1361a Update polyfill phrasing 2013-10-08 16:34:26 -07:00
Paul O’Shannessy
d424c06a99 Remove 0.5-alpha download - shouldn't have been added 2013-10-08 11:14:12 -07:00
Paul O’Shannessy
079a983672 fixed broken link on Community Round-up #9 blog post 2013-10-08 11:13:31 -07:00
Paul O’Shannessy
ffa4af3be0 use fb app id for comments, community roundup #9 2013-10-03 15:22:29 -07:00
Paul O’Shannessy
caf773d5a6 NEW API DOCS! 2013-09-24 16:07:14 -07:00
Paul O’Shannessy
b80668577d Updates (header ids, blog post, typos) 2013-09-24 14:34:40 -07:00
Paul O’Shannessy
0495462ad5 Update wording 2013-09-14 13:53:33 +02:00
Paul O’Shannessy
30d40aa15f Various updates, primarily pagination on the blog 2013-09-04 15:35:39 -07:00
Paul O’Shannessy
bacf855ed8 Community Roundup 7, Tooling Integration fixes 2013-08-26 14:58:42 -07:00
Paul O’Shannessy
33669c1390 Fix 404s, link to CDNJS 2013-08-22 11:15:42 -07:00
Paul O’Shannessy
3a3aa47d32 Typo fix and PyReact blog post 2013-08-19 14:56:01 -07:00
Paul O’Shannessy
b6526e70d6 Community Roundup #6 2013-08-05 16:59:01 -07:00
Paul O’Shannessy
8af4fbb0f0 Updated 0.4.1 zip
* README changes (point to 0.4.1)
* Python server corrected
* links to github repo corrected
2013-08-05 09:44:33 -07:00
Paul O’Shannessy
84d945f7da Fix typo in get started page 2013-08-05 09:38:58 -07:00
Paul O’Shannessy
171d3e64a0 some docs updates, react-rails blog post 2013-07-30 15:27:56 -07:00
Paul O’Shannessy
e1d7e0bece Blog post for v0.4.1 2013-07-26 15:53:45 -07:00
Paul O’Shannessy
59ce7e4a8f v0.4.1 2013-07-26 15:32:59 -07:00
Paul O’Shannessy
9f6e8e466a Pick up all of recent docs fixes, latest blog post 2013-07-23 09:31:02 -07:00
Paul O’Shannessy
9bc285b67e Fix errors and example code for the homepage, small blog typo 2013-07-17 13:36:13 -07:00
Paul O’Shannessy
6ec7c79cf7 Small update to v0.4 blog post 2013-07-17 11:55:12 -07:00
Paul O’Shannessy
3dd6235041 v0.4.0 2013-07-17 11:35:48 -07:00
Paul O’Shannessy
3ce6c88952 A couple docs updates, new blog post 2013-07-11 15:59:51 -07:00
Paul O’Shannessy
688c56d79c Community Roundup #4 2013-07-03 18:41:25 -07:00
Paul O’Shannessy
aa7ea0637e New blog post 2013-07-02 13:08:24 -07:00
Paul O’Shannessy
b3aa6ba924 Sync to latest 2013-06-28 09:50:26 -07:00
Paul O’Shannessy
be61bebd92 Community Roundup 3 2013-06-27 13:49:58 -07:00
Paul O’Shannessy
6c74abe0ed Blogpost & changelog for v0.3.3 2013-06-21 11:02:33 -07:00
Paul O’Shannessy
83fe3ddaee v0.3.3 2013-06-20 15:12:41 -07:00
Paul O’Shannessy
a7b717162f New blog post, fix bug in JSX docs 2013-06-19 12:37:34 -07:00
Paul O’Shannessy
7332a0fe8a Use absolute URLs for FB comments box 2013-06-18 10:22:22 -07:00
Paul O’Shannessy
4f23af6a15 Update site to latest 2013-06-18 09:23:45 -07:00
Paul O’Shannessy
30e65b2ba7 Update to latest, including communnity roundup blog post 2013-06-12 14:12:30 -07:00
Paul O’Shannessy
edaa7881bd Updated Todo example on the home page 2013-06-07 15:54:21 -07:00
Paul O’Shannessy
ff542ff7d7 Fix a typo 2013-06-05 11:53:14 -07:00
Paul O’Shannessy
7203dcb145 Fix broken link in blog post 2013-06-05 10:02:52 -07:00
Paul O’Shannessy
4346b10363 Update to latest master, including blog posts 2013-06-05 09:08:04 -07:00
Paul O’Shannessy
d06a7ef606 v0.3.2 2013-05-31 17:02:37 -07:00
Paul O’Shannessy
8571e6814b Updated tutorial 2013-05-31 16:25:53 -07:00
Paul O’Shannessy
1d628ef207 v0.3.1 2013-05-30 15:02:20 -07:00
Paul O’Shannessy
cff20b7a4c Roll up latest changes to master 2013-05-30 11:49:38 -07:00
Paul O’Shannessy
7a92c4bf95 Update docs to latest master 2013-05-29 18:43:04 -07:00
Paul O’Shannessy
8e76af2192 Cleanup pages branch. 2013-05-29 15:18:56 -07:00
Paul O’Shannessy
ddb56ac56a Analytics 2013-05-29 14:10:20 -07:00
Paul O’Shannessy
6c61658bba Updated to latest master build 2013-05-29 17:07:32 -04:00
Paul O’Shannessy
757022d229 Updated to lastest master build 2013-05-29 17:07:32 -04:00
Paul O’Shannessy
b0e208a155 v0.3.0 2013-05-29 17:07:32 -04:00
Paul O’Shannessy
6de0ab3293 v0.3.0 2013-05-29 17:07:32 -04:00
2050 changed files with 1 additions and 548625 deletions

View File

@@ -1,579 +0,0 @@
version: 2.1
aliases:
- &docker
- image: circleci/openjdk:8-jdk-node-browsers
- &environment
TZ: /usr/share/zoneinfo/America/Los_Angeles
- &restore_yarn_cache
restore_cache:
name: Restore yarn cache
key: v2-node-{{ arch }}-{{ checksum "yarn.lock" }}-yarn
- &restore_node_modules
restore_cache:
name: Restore node_modules cache
keys:
- v2-node-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ checksum "workspace_info.txt" }}-node-modules
- &TEST_PARALLELISM 20
- &attach_workspace
at: build
# The CircleCI API doesn't yet support triggering a specific workflow, but it
# does support triggering a pipeline. So as a workaround you can triggger the
# entire pipeline and use parameters to disable everything except the workflow
# you want. CircleCI recommends this workaround here:
# https://support.circleci.com/hc/en-us/articles/360050351292-How-to-trigger-a-workflow-via-CircleCI-API-v2-
parameters:
# This is only set when triggering the CI pipeline via an API request.
prerelease_commit_sha:
type: string
default: ''
jobs:
setup:
docker: *docker
environment: *environment
steps:
- checkout
- run:
name: Nodejs Version
command: node --version
- *restore_yarn_cache
- run:
name: Install Packages
command: yarn --frozen-lockfile --cache-folder ~/.cache/yarn
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- save_cache:
# Store the yarn cache globally for all lock files with this same
# checksum. This will speed up the setup job for all PRs where the
# lockfile is the same.
name: Save yarn cache for future installs
key: v2-node-{{ arch }}-{{ checksum "yarn.lock" }}-yarn
paths:
- ~/.cache/yarn
- save_cache:
# Store node_modules for all jobs in this workflow so that they don't
# need to each run a yarn install for each job. This will speed up
# all jobs run on this branch with the same lockfile.
name: Save node_modules cache
# This cache key is per branch, a yarn install in setup is required.
key: v2-node-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ checksum "workspace_info.txt" }}-node-modules
paths:
- node_modules
yarn_lint:
docker: *docker
environment: *environment
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: node ./scripts/prettier/index
- run: node ./scripts/tasks/eslint
- run: ./scripts/circleci/check_license.sh
- run: ./scripts/circleci/check_modules.sh
- run: ./scripts/circleci/test_print_warnings.sh
yarn_flow:
docker: *docker
environment: *environment
parallelism: 5
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: node ./scripts/tasks/flow-ci
RELEASE_CHANNEL_stable_yarn_build:
docker: *docker
environment: *environment
parallelism: *TEST_PARALLELISM
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
environment:
RELEASE_CHANNEL: stable
command: |
./scripts/circleci/add_build_info_json.sh
./scripts/circleci/update_package_versions.sh
yarn build
- run: echo "stable" >> build/RELEASE_CHANNEL
- persist_to_workspace:
root: build
paths:
- RELEASE_CHANNEL
- facebook-www
- facebook-react-native
- facebook-relay
- node_modules
- react-native
- dist
- sizes/*.json
yarn_build:
docker: *docker
environment: *environment
parallelism: 20
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
environment:
RELEASE_CHANNEL: experimental
command: |
./scripts/circleci/add_build_info_json.sh
./scripts/circleci/update_package_versions.sh
yarn build
- run: echo "experimental" >> build/RELEASE_CHANNEL
- persist_to_workspace:
root: build
paths:
- RELEASE_CHANNEL
- facebook-www
- facebook-react-native
- facebook-relay
- node_modules
- react-native
- dist
- sizes/*.json
yarn_build_combined:
docker: *docker
environment: *environment
parallelism: 40
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: yarn build-combined
- persist_to_workspace:
root: .
paths:
- build2
get_base_build:
docker: *docker
environment: *environment
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
name: Download artifacts for base revision
command: |
git fetch origin main
cd ./scripts/release && yarn && cd ../../
scripts/release/download-experimental-build.js --commit=$(git merge-base HEAD origin/main)
mv ./build2 ./base-build
- persist_to_workspace:
root: .
paths:
- base-build
process_artifacts_combined:
docker: *docker
environment: *environment
steps:
- checkout
- attach_workspace:
at: .
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: echo "<< pipeline.git.revision >>" >> build2/COMMIT_SHA
# Compress build directory into a single tarball for easy download
- run: tar -zcvf ./build2.tgz ./build2
- store_artifacts:
path: ./build2.tgz
sizebot:
docker: *docker
environment: *environment
steps:
- checkout
- attach_workspace:
at: .
- run: echo "<< pipeline.git.revision >>" >> build2/COMMIT_SHA
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
command: node ./scripts/tasks/danger
build_devtools_and_process_artifacts:
docker: *docker
environment: *environment
steps:
- checkout
- attach_workspace: *attach_workspace
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_yarn_cache
- *restore_node_modules
- run:
name: Install Packages
command: yarn --frozen-lockfile --cache-folder ~/.cache/yarn
- run:
environment:
RELEASE_CHANNEL: experimental
command: ./scripts/circleci/pack_and_store_devtools_artifacts.sh
- store_artifacts:
path: ./build/devtools.tgz
build_devtools_scheduling_profiler:
docker: *docker
environment: *environment
steps:
- checkout
- attach_workspace: *attach_workspace
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_yarn_cache
- *restore_node_modules
- run:
name: Install Packages
command: yarn --frozen-lockfile --cache-folder ~/.cache/yarn
- run:
name: Build and archive
command: |
mkdir -p build/devtools
cd packages/react-devtools-scheduling-profiler
yarn build
cd dist
tar -zcvf ../../../build/devtools-scheduling-profiler.tgz .
- store_artifacts:
path: ./build/devtools-scheduling-profiler.tgz
- persist_to_workspace:
root: packages/react-devtools-scheduling-profiler
paths:
- dist
deploy_devtools_scheduling_profiler:
docker: *docker
environment: *environment
steps:
- checkout
- attach_workspace:
at: packages/react-devtools-scheduling-profiler
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
name: Deploy
command: |
cd packages/react-devtools-scheduling-profiler
yarn vercel deploy dist --prod --confirm --token $SCHEDULING_PROFILER_DEPLOY_VERCEL_TOKEN
yarn_lint_build:
docker: *docker
environment: *environment
steps:
- checkout
- attach_workspace: *attach_workspace
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: yarn lint-build
- run: scripts/circleci/check_minified_errors.sh
yarn_test:
docker: *docker
environment: *environment
parallelism: *TEST_PARALLELISM
parameters:
args:
type: string
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: yarn test <<parameters.args>> --ci
yarn_test_build:
docker: *docker
environment: *environment
parallelism: *TEST_PARALLELISM
parameters:
args:
type: string
steps:
- checkout
- attach_workspace:
at: .
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: yarn test --build <<parameters.args>> --ci
RELEASE_CHANNEL_stable_yarn_test_dom_fixtures:
docker: *docker
environment: *environment
steps:
- checkout
- attach_workspace: *attach_workspace
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
name: Run DOM fixture tests
environment:
RELEASE_CHANNEL: stable
command: |
cd fixtures/dom
yarn --frozen-lockfile
yarn prestart
yarn test --maxWorkers=2
test_fuzz:
docker: *docker
environment: *environment
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
name: Run fuzz tests
command: |
FUZZ_TEST_SEED=$RANDOM yarn test fuzz --ci
FUZZ_TEST_SEED=$RANDOM yarn test --prod fuzz --ci
publish_prerelease:
parameters:
commit_sha:
type: string
release_channel:
type: string
dist_tag:
type: string
docker: *docker
environment: *environment
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
name: Run publish script
command: |
git fetch origin main
cd ./scripts/release && yarn && cd ../../
scripts/release/prepare-release-from-ci.js --skipTests -r << parameters.release_channel >> --commit=<< parameters.commit_sha >>
cp ./scripts/release/ci-npmrc ~/.npmrc
scripts/release/publish.js --ci --tags << parameters.dist_tag >>
# We don't always keep the reconciler forks in sync (otherwise it we wouldn't
# have forked it) but during periods when they are meant to be in sync, we
# use this job to confirm there are no differences.
sync_reconciler_forks:
docker: *docker
environment: *environment
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run:
name: Confirm reconciler forks are the same
command: |
yarn replace-fork
git diff --quiet || (echo "Reconciler forks are not the same! Run yarn replace-fork. Or, if this was intentional, disable this CI check." && false)
workflows:
version: 2
stable:
unless: << pipeline.parameters.prerelease_commit_sha >>
jobs:
- setup
- yarn_lint:
requires:
- setup
- RELEASE_CHANNEL_stable_yarn_build:
requires:
- setup
- RELEASE_CHANNEL_stable_yarn_test_dom_fixtures:
requires:
- RELEASE_CHANNEL_stable_yarn_build
experimental:
unless: << pipeline.parameters.prerelease_commit_sha >>
jobs:
- setup
- yarn_build:
requires:
- setup
- build_devtools_and_process_artifacts:
requires:
- yarn_build
- build_devtools_scheduling_profiler:
requires:
- yarn_build
- deploy_devtools_scheduling_profiler:
requires:
- build_devtools_scheduling_profiler
filters:
branches:
only:
- main
# New workflow that will replace "stable" and "experimental"
build_and_test:
unless: << pipeline.parameters.prerelease_commit_sha >>
jobs:
- setup
- yarn_flow:
requires:
- setup
# NOTE: This job is only enabled when we want the forks to be in sync.
# When the forks intentionally diverge, comment out the job to disable it.
- sync_reconciler_forks:
requires:
- setup
- yarn_test:
requires:
- setup
matrix:
parameters:
args:
# Intentionally passing these as strings instead of creating a
# separate parameter per CLI argument, since it's easier to
# control/see which combinations we want to run.
- "-r=stable --env=development"
- "-r=stable --env=production"
- "-r=experimental --env=development"
- "-r=experimental --env=production"
- "-r=www-classic --env=development --variant=false"
- "-r=www-classic --env=production --variant=false"
- "-r=www-classic --env=development --variant=true"
- "-r=www-classic --env=production --variant=true"
- "-r=www-modern --env=development --variant=false"
- "-r=www-modern --env=production --variant=false"
- "-r=www-modern --env=development --variant=true"
- "-r=www-modern --env=production --variant=true"
# TODO: Test more persistent configurations?
- '-r=stable --env=development --persistent'
- yarn_build_combined:
requires:
- setup
- process_artifacts_combined:
requires:
- yarn_build_combined
- yarn_test_build:
requires:
- yarn_build_combined
matrix:
parameters:
args:
# Intentionally passing these as strings instead of creating a
# separate parameter per CLI argument, since it's easier to
# control/see which combinations we want to run.
- "-r=stable --env=development"
- "-r=stable --env=production"
- "-r=experimental --env=development"
- "-r=experimental --env=production"
# Dev Tools
- "--project=devtools -r=experimental"
# TODO: Update test config to support www build tests
# - "-r=www-classic --env=development --variant=false"
# - "-r=www-classic --env=production --variant=false"
# - "-r=www-classic --env=development --variant=true"
# - "-r=www-classic --env=production --variant=true"
# - "-r=www-modern --env=development --variant=false"
# - "-r=www-modern --env=production --variant=false"
# - "-r=www-modern --env=development --variant=true"
# - "-r=www-modern --env=production --variant=true"
# TODO: Test more persistent configurations?
- get_base_build:
filters:
branches:
ignore:
- main
requires:
- setup
- sizebot:
filters:
branches:
ignore:
- main
requires:
- get_base_build
- yarn_build_combined
- yarn_lint_build:
requires:
- yarn_build_combined
fuzz_tests:
unless: << pipeline.parameters.prerelease_commit_sha >>
triggers:
- schedule:
# Fuzz tests run hourly
cron: "0 * * * *"
filters:
branches:
only:
- main
jobs:
- setup
- test_fuzz:
requires:
- setup
# Used to publish a prerelease manually via the command line
publish_preleases:
when: << pipeline.parameters.prerelease_commit_sha >>
jobs:
- setup
- publish_prerelease:
name: Publish to Next channel
requires:
- setup
commit_sha: << pipeline.parameters.prerelease_commit_sha >>
release_channel: stable
dist_tag: "next,alpha"
- publish_prerelease:
name: Publish to Experimental channel
requires:
# NOTE: Intentionally running these jobs sequentially because npm
# will sometimes fail if you try to concurrently publish two
# different versions of the same package, even if they use different
# dist tags.
- Publish to Next channel
commit_sha: << pipeline.parameters.prerelease_commit_sha >>
release_channel: experimental
dist_tag: experimental
# Publishes on a cron schedule
publish_preleases_nightly:
unless: << pipeline.parameters.prerelease_commit_sha >>
triggers:
- schedule:
# At 10 minutes past 16:00 on Mon, Tue, Wed, Thu, and Fri
cron: "10 16 * * 1,2,3,4,5"
filters:
branches:
only:
- main
jobs:
- setup
- publish_prerelease:
name: Publish to Next channel
requires:
- setup
commit_sha: << pipeline.git.revision >>
release_channel: stable
dist_tag: "next,alpha"
- publish_prerelease:
name: Publish to Experimental channel
requires:
# NOTE: Intentionally running these jobs sequentially because npm
# will sometimes fail if you try to concurrently publish two
# different versions of the same package, even if they use different
# dist tags.
- Publish to Next channel
commit_sha: << pipeline.git.revision >>
release_channel: experimental
dist_tag: experimental

View File

@@ -1,12 +0,0 @@
{
"packages": ["packages/react", "packages/react-dom", "packages/scheduler"],
"buildCommand": "build --type=NODE react/index,react-dom/index,react-dom/server,react-dom/test-utils,scheduler/index,react/jsx-runtime,react/jsx-dev-runtime",
"node": "12",
"publishDirectory": {
"react": "build/node_modules/react",
"react-dom": "build/node_modules/react-dom",
"scheduler": "build/node_modules/scheduler"
},
"sandboxes": ["new"],
"silent": true
}

View File

@@ -1,18 +0,0 @@
# https://editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 80
trim_trailing_whitespace = true
[*.md]
max_line_length = 0
trim_trailing_whitespace = false
[COMMIT_EDITMSG]
max_line_length = 0

View File

@@ -1,23 +0,0 @@
# Third party
**/node_modules
# Not written by hand
packages/react-art/npm/lib
# Build products
build/
coverage/
fixtures/
scripts/bench/benchmarks/**/*.js
# React repository clone
scripts/bench/remote-repo/
packages/react-devtools-core/dist
packages/react-devtools-extensions/chrome/build
packages/react-devtools-extensions/firefox/build
packages/react-devtools-extensions/shared/build
packages/react-devtools-inline/dist
packages/react-devtools-shell/dist
packages/react-devtools-scheduling-profiler/dist
packages/react-devtools-scheduling-profiler/static

View File

@@ -1,222 +0,0 @@
'use strict';
const {
es5Paths,
esNextPaths,
} = require('./scripts/shared/pathsByLanguageVersion');
const restrictedGlobals = require('confusing-browser-globals');
const OFF = 0;
const ERROR = 2;
module.exports = {
extends: ['fbjs', 'prettier'],
// Stop ESLint from looking for a configuration file in parent folders
root: true,
plugins: [
'jest',
'no-for-of-loops',
'no-function-declare-after-return',
'react',
'react-internal',
],
parser: 'babel-eslint',
parserOptions: {
ecmaVersion: 8,
sourceType: 'script',
ecmaFeatures: {
experimentalObjectRestSpread: true,
},
},
// We're stricter than the default config, mostly. We'll override a few rules
// and then enable some React specific ones.
rules: {
'accessor-pairs': OFF,
'brace-style': [ERROR, '1tbs'],
'consistent-return': OFF,
'dot-location': [ERROR, 'property'],
// We use console['error']() as a signal to not transform it:
'dot-notation': [ERROR, {allowPattern: '^(error|warn)$'}],
'eol-last': ERROR,
eqeqeq: [ERROR, 'allow-null'],
indent: OFF,
'jsx-quotes': [ERROR, 'prefer-double'],
'keyword-spacing': [ERROR, {after: true, before: true}],
'no-bitwise': OFF,
'no-console': OFF,
'no-inner-declarations': [ERROR, 'functions'],
'no-multi-spaces': ERROR,
'no-restricted-globals': [ERROR].concat(restrictedGlobals),
'no-restricted-syntax': [ERROR, 'WithStatement'],
'no-shadow': ERROR,
'no-unused-expressions': ERROR,
'no-unused-vars': [ERROR, {args: 'none'}],
'no-use-before-define': OFF,
'no-useless-concat': OFF,
quotes: [ERROR, 'single', {avoidEscape: true, allowTemplateLiterals: true}],
'space-before-blocks': ERROR,
'space-before-function-paren': OFF,
'valid-typeof': [ERROR, {requireStringLiterals: true}],
// Flow fails with with non-string literal keys
'no-useless-computed-key': OFF,
// We apply these settings to files that should run on Node.
// They can't use JSX or ES6 modules, and must be in strict mode.
// They can, however, use other ES6 features.
// (Note these rules are overridden later for source files.)
'no-var': ERROR,
strict: ERROR,
// Enforced by Prettier
// TODO: Prettier doesn't handle long strings or long comments. Not a big
// deal. But I turned it off because loading the plugin causes some obscure
// syntax error and it didn't seem worth investigating.
'max-len': OFF,
// Prettier forces semicolons in a few places
'flowtype/object-type-delimiter': OFF,
// React & JSX
// Our transforms set this automatically
'react/jsx-boolean-value': [ERROR, 'always'],
'react/jsx-no-undef': ERROR,
// We don't care to do this
'react/jsx-sort-prop-types': OFF,
'react/jsx-space-before-closing': ERROR,
'react/jsx-uses-react': ERROR,
'react/no-is-mounted': OFF,
// This isn't useful in our test code
'react/react-in-jsx-scope': ERROR,
'react/self-closing-comp': ERROR,
// We don't care to do this
'react/jsx-wrap-multilines': [
ERROR,
{declaration: false, assignment: false},
],
// Prevent for...of loops because they require a Symbol polyfill.
// You can disable this rule for code that isn't shipped (e.g. build scripts and tests).
'no-for-of-loops/no-for-of-loops': ERROR,
// Prevent function declarations after return statements
'no-function-declare-after-return/no-function-declare-after-return': ERROR,
// CUSTOM RULES
// the second argument of warning/invariant should be a literal string
'react-internal/no-primitive-constructors': ERROR,
'react-internal/no-to-warn-dev-within-to-throw': ERROR,
'react-internal/invariant-args': ERROR,
'react-internal/warning-args': ERROR,
'react-internal/no-production-logging': ERROR,
'react-internal/no-cross-fork-imports': ERROR,
'react-internal/no-cross-fork-types': [
ERROR,
{
old: [],
new: [],
},
],
},
overrides: [
{
// We apply these settings to files that we ship through npm.
// They must be ES5.
files: es5Paths,
parser: 'espree',
parserOptions: {
ecmaVersion: 5,
sourceType: 'script',
},
rules: {
'no-var': OFF,
strict: ERROR,
},
},
{
// We apply these settings to the source files that get compiled.
// They can use all features including JSX (but shouldn't use `var`).
files: esNextPaths,
parser: 'babel-eslint',
parserOptions: {
ecmaVersion: 8,
sourceType: 'module',
},
rules: {
'no-var': ERROR,
'prefer-const': ERROR,
strict: OFF,
},
},
{
files: ['**/__tests__/*.js'],
rules: {
// https://github.com/jest-community/eslint-plugin-jest
'jest/no-focused-tests': ERROR,
'jest/valid-expect': ERROR,
'jest/valid-expect-in-promise': ERROR,
},
},
{
files: [
'**/__tests__/**/*.js',
'scripts/**/*.js',
'packages/*/npm/**/*.js',
'packages/dom-event-testing-library/**/*.js',
'packages/react-devtools*/**/*.js',
],
rules: {
'react-internal/no-production-logging': OFF,
'react-internal/warning-args': OFF,
// Disable accessibility checks
'jsx-a11y/aria-role': OFF,
'jsx-a11y/no-noninteractive-element-interactions': OFF,
'jsx-a11y/no-static-element-interactions': OFF,
'jsx-a11y/role-has-required-aria-props': OFF,
'jsx-a11y/no-noninteractive-tabindex': OFF,
'jsx-a11y/tabindex-no-positive': OFF,
},
},
{
files: [
'packages/react-native-renderer/**/*.js',
'packages/react-server-native-relay/**/*.js',
],
globals: {
nativeFabricUIManager: true,
},
},
{
files: ['packages/react-server-dom-webpack/**/*.js'],
globals: {
__webpack_chunk_load__: true,
__webpack_require__: true,
},
},
{
files: ['packages/scheduler/**/*.js'],
globals: {
TaskController: true,
},
},
],
globals: {
spyOnDev: true,
spyOnDevAndProd: true,
spyOnProd: true,
__EXPERIMENTAL__: true,
__EXTENSION__: true,
__PROFILE__: true,
__TEST__: true,
__UMD__: true,
__VARIANT__: true,
gate: true,
trustedTypes: true,
},
};

1
.gitattributes vendored
View File

@@ -1 +0,0 @@
* text=auto

View File

@@ -1,41 +0,0 @@
---
name: "🐛 Bug Report"
about: Report a reproducible bug or regression.
title: 'Bug: '
labels: 'Status: Unconfirmed'
---
<!--
Please provide a clear and concise description of what the bug is. Include
screenshots if needed. Please test using the latest version of the relevant
React packages to make sure your issue has not already been fixed.
-->
React version:
## Steps To Reproduce
1.
2.
<!--
Your bug will get fixed much faster if we can run your code and it doesn't
have dependencies other than React. Issues without reproduction steps or
code examples may be immediately closed as not actionable.
-->
Link to code example:
<!--
Please provide a CodeSandbox (https://codesandbox.io/s/new), a link to a
repository on GitHub, or provide a minimal code example that reproduces the
problem. You may provide a screenshot of the application if you think it is
relevant to your bug report. Here are some tips for providing a minimal
example: https://stackoverflow.com/help/mcve.
-->
## The current behavior
## The expected behavior

View File

@@ -1,7 +0,0 @@
contact_links:
- name: 📃 Documentation Issue
url: https://github.com/reactjs/reactjs.org/issues/new
about: This issue tracker is not for documentation issues. Please file documentation issues here.
- name: 🤔 Questions and Help
url: https://reactjs.org/community/support.html
about: This issue tracker is not for support questions. Please refer to the React community's help and discussion forums.

View File

@@ -1,81 +0,0 @@
name: "⚛️ 🛠 DevTools bug report"
description: "Report a problem with React DevTools. Please provide enough information that we can reproduce the problem."
title: "[DevTools Bug]: "
labels: ["Component: Developer Tools", "Type: Bug", "Status: Unconfirmed"]
body:
- type: input
attributes:
label: Website or app
description: |
Which website or app were you using when the bug happened?
This should be a public URL, GitHub repo, or Code Sandbox app so the React team can reproduce the error being reported. (Please no localhost URLs.)
placeholder: |
e.g. website URL, public GitHub repo, or Code Sandbox app
validations:
required: true
- type: textarea
attributes:
label: Repro steps
description: |
What were you doing on the website or app when the bug happened? Detailed information helps maintainers reproduce and fix bugs.
Issues filed without repro steps will be closed.
placeholder: |
Example bug report:
1. Log in with username/password
2. Click "Messages" on the left menu
3. Open any message in the list
validations:
required: true
- type: dropdown
attributes:
label: How often does this bug happen?
description: |
Following the repro steps above, how easily are you able to reproduce this bug?
options:
- Every time
- Often
- Sometimes
- Only once
validations:
required: true
- type: input
id: automated_package
attributes:
label: DevTools package (automated)
description: |
Please do not edit this field.
- type: input
id: automated_version
attributes:
label: DevTools version (automated)
description: |
Please do not edit this field.
- type: input
id: automated_error_message
attributes:
label: Error message (automated)
description: |
Please do not edit this field.
- type: textarea
id: automated_call_stack
attributes:
label: Error call stack (automated)
description: |
Please do not edit this field.
render: text
- type: textarea
id: automated_component_stack
attributes:
label: Error component stack (automated)
description: |
Please do not edit this field.
render: text
- type: textarea
id: automated_github_query_string
attributes:
label: GitHub query string (automated)
description: |
Please do not edit this field.
render: text

View File

@@ -1,11 +0,0 @@
---
name: "💬 React 18"
about: Bug reports, questions, and general feedback about React 18
title: 'React 18 '
labels: 'Type: Discussion, React 18'
---
<!--
Ask a question or share feedback about the React 18 release here.
-->

View File

@@ -1,27 +0,0 @@
<!--
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 three fields below are mandatory.
Before submitting a pull request, please make sure the following is done:
1. Fork [the repository](https://github.com/facebook/react) and create your branch from `master`.
2. Run `yarn` in the repository root.
3. If you've fixed a bug or added code that should be tested, add tests!
4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watch TestName` is helpful in development.
5. Run `yarn test --prod` to test in the production environment. It supports the same options as `yarn test`.
6. If you need a debugger, run `yarn debug-test --watch TestName`, open `chrome://inspect`, and press "Inspect".
7. Format your code with [prettier](https://github.com/prettier/prettier) (`yarn prettier`).
8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to only check changed files.
9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`).
10. If you haven't already, complete the CLA.
Learn more about contributing: https://reactjs.org/docs/how-to-contribute.html
-->
## 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. -->

34
.github/stale.yml vendored
View File

@@ -1,34 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 90
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "Partner"
- "React Core Team"
- "Resolution: Backlog"
- "Type: Bug"
- "Type: Discussion"
- "Type: Needs Investigation"
- "Type: Regression"
# Label to use when marking an issue as stale
staleLabel: "Resolution: Stale"
issues:
# Comment to post when marking an issue as stale.
markComment: >
This issue has been automatically marked as stale.
**If this issue is still affecting you, please leave any comment** (for example, "bump"), and we'll keep it open.
We are sorry that we haven't been able to prioritize it yet. If you have any new additional information, please include it with your comment!
# Comment to post when closing a stale issue.
closeComment: >
Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you!
pulls:
# Comment to post when marking a pull request as stale.
markComment: >
This pull request has been automatically marked as stale.
**If this pull request is still relevant, please leave any comment** (for example, "bump"), and we'll keep it open.
We are sorry that we haven't been able to prioritize reviewing it yet. Your contribution is very much appreciated.
# Comment to post when closing a stale pull request.
closeComment: >
Closing this pull request after a prolonged period of inactivity. If this issue is still present in the latest release, please ask for this pull request to be reopened. Thank you!

View File

@@ -1,205 +0,0 @@
name: DevTools Check for bug repro
on:
issues:
types: [opened, edited]
issue_comment:
types: [created, edited]
jobs:
check-repro:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const URL_REGEXP = /### Website or app[\r\n]+([^#]+)###/m;
const REPRO_STEPS_REGEXP = /### Repro steps[\r\n]+([^#]+)###/m;
const LABEL_NEEDS_MORE_INFORMATION = "Resolution: Needs More Information";
const LABEL_UNCONFIRMED = "Status: Unconfirmed";
function debug(...args) {
core.info(args.map(JSON.stringify).join(' '));
}
if (context.payload.comment) {
debug('Ignoring comment update.');
return;
}
const user = context.payload.sender.login;
const issue = context.payload.issue;
const body = issue.body;
const urlMatch = body.match(URL_REGEXP);
const reproStepsMatch = body.match(REPRO_STEPS_REGEXP);
const url = urlMatch !== null ? urlMatch[1].trim() : null;
const reproSteps = reproStepsMatch !== null ? reproStepsMatch[1].trim() : null;
if (!url || !reproSteps) {
debug('This issue is not a DevTools bug report.');
return;
}
debug(`found URL "${url}"`);
debug(`found repro steps "${reproSteps}"`);
async function createComment(comment) {
// Format
comment = comment
.split("\n")
.map((line) => line.trim())
.join("\n")
.trim();
await github.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment,
});
}
async function getGitHubActionComments() {
debug(`Loading existing comments...`);
const comments = await github.issues.listComments({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
});
return comments.data.filter(comment => {
debug(`comment by user: "${comment.user.login}"`);
return comment.user.login === 'github-actions[bot]';
});
}
async function getIssueLabels() {
const issues = await github.issues.listLabelsOnIssue({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
});
return issues.data;
}
async function updateIssue(state, assignees = []) {
await github.issues.update({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
state,
assignees,
});
}
async function closeWithComment(comment) {
if (issue.state !== 'open') {
debug(`Issue is not open`);
return;
}
const labels = await getIssueLabels();
const label = labels.find(label => label.name === LABEL_UNCONFIRMED);
if (!label) {
debug(`Issue was not opened via DevTools bug report template`);
return;
}
const comments = await getGitHubActionComments();
if (comments.length > 0) {
debug(`Already commented on issue; won't comment again`);
return;
}
debug(`Missing required information`);
await github.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: [LABEL_NEEDS_MORE_INFORMATION],
});
await createComment(comment);
await updateIssue('closed', [user]);
}
async function openWithComment(comment) {
if (issue.state !== 'closed') {
debug(`Issue is already open`);
return;
}
const labels = await getIssueLabels();
const label = labels.find(label => label.name === LABEL_NEEDS_MORE_INFORMATION);
if (!label) {
debug(`Issue was not tagged as needs information`);
return;
}
const comments = await getGitHubActionComments();
if (comments.length === 0) {
debug(`Issue was closed by someone else; won't reopen`);
return;
}
debug(`Re-opening closed issue`);
await github.issues.removeLabel({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
name: LABEL_NEEDS_MORE_INFORMATION,
});
await createComment(comment);
await updateIssue('open');
}
const PROBABLY_NOT_A_URL_REGEX = /(^Chrome$|^Firefox$| Website)/i;
const COMMENT_HEADER = `
@${user}: We're sorry you've seen this error. ❤️
`.trim();
const COMMENT_FOOTER = `
Please help us by providing a link to a CodeSandbox (https://codesandbox.io/s/new), a repository on GitHub, or a minimal code example that reproduces the problem. (Screenshots or videos can also be helpful if they help provide context on how to repro the bug.)
Here are some tips for providing a minimal example: https://stackoverflow.com/help/mcve
Issues without repros are automatically closed but we will re-open if you update with repro info.
`.trim();
if (url.includes("localhost")) {
closeWithComment(`
${COMMENT_HEADER}
Unfortunately the URL you provided ("localhost") is not publicly accessible. (This means that we will not be able to reproduce the problem you're reporting.)
${COMMENT_FOOTER}
`);
} else if (url.length < 10 || url.match(PROBABLY_NOT_A_URL_REGEX)) {
closeWithComment(`
${COMMENT_HEADER}
It looks like you forgot to specify a valid URL. (This means that we will not be able to reproduce the problem you're reporting.)
${COMMENT_FOOTER}
`);
} else if (reproSteps.length < 25) {
closeWithComment(`
${COMMENT_HEADER}
Unfortunately, it doesn't look like this issue has enough info for one of us to reproduce and fix it though.
${COMMENT_FOOTER}
`);
} else {
openWithComment(`
Thank you for providing repro steps! Re-opening issue now for triage.
`);
}

39
.gitignore vendored
View File

@@ -1,39 +0,0 @@
.DS_STORE
node_modules
scripts/flow/*/.flowconfig
.flowconfig
*~
*.pyc
.grunt
_SpecRunner.html
__benchmarks__
build/
build2/
remote-repo/
coverage/
.module-cache
fixtures/dom/public/react-dom.js
fixtures/dom/public/react.js
test/the-files-to-test.generated.js
*.log*
chrome-user-data
*.sublime-project
*.sublime-workspace
.idea
*.iml
.vscode
*.swp
*.swo
packages/react-devtools-core/dist
packages/react-devtools-extensions/chrome/build
packages/react-devtools-extensions/chrome/*.crx
packages/react-devtools-extensions/chrome/*.pem
packages/react-devtools-extensions/firefox/build
packages/react-devtools-extensions/firefox/*.xpi
packages/react-devtools-extensions/firefox/*.pem
packages/react-devtools-extensions/shared/build
packages/react-devtools-extensions/.tempUserDataDir
packages/react-devtools-inline/dist
packages/react-devtools-shell/dist
packages/react-devtools-scheduling-profiler/dist

168
.mailmap
View File

@@ -1,168 +0,0 @@
Adam Timberlake <adam.timberlake@gmail.com>
Alex Mykyta <dancingwithcows@gmail.com>
Alex Pien <alexpien@gmail.com>
Alex Pien <alexpien@gmail.com> <pien@pien-mbp.dhcp.thefacebook.com>
Alex Pien <alexpien@gmail.com> <pien@pien-mbp.local>
Andreas Savvides <asavvides@twitter.com> <AnSavvides@users.noreply.github.com>
Andreas Savvides <asavvides@twitter.com> <andreas@nibbli.com>
Andreas Svensson <andreas@syranide.com>
Andres Suarez <zertosh@gmail.com>
Andrew Kulakov <avk@8xx8.ru>
Andrew Sokolov <asokolov@atlassian.com>
Anto Aravinth <anto.aravinth.cse@gmail.com>
Baraa Hamodi <bhamodi@uwaterloo.ca> <baraa@optimizely.com>
Ben Halpern <bendhalpern@gmail.com>
Ben Newman <bn@cs.stanford.edu> <benjamn@fb.com>
Benjamin Woodruff <github@benjam.info> <bgw@fb.com>
Bill Fisher <fisherwebdev@gmail.com>
Blaine Kasten <blainekasten@gmail.com>
Brandon Tilley <brandon@brandontilley.com>
Changsoon Bok <winmain@gmail.com>
Cheng Lou <chenglou92@gmail.com> <chenglou@fb.com>
Christian Oliff <christianoliff@yahoo.com>
Christoph Pojer <christoph.pojer@gmail.com>
Christoph Pojer <christoph.pojer@gmail.com> <cpojer@fb.com>
Connor McSheffrey <c@conr.me> <connor.mcsheffrey@gmail.com>
Conor Hastings <hastings.conorm@gmail.com> <conor@socialtables.com>
Dan Schafer <dschafer@fb.com>
Daniel Gasienica <daniel@gasienica.ch> <daniel@fiftythree.com>
Daniel Gasienica <daniel@gasienica.ch> <dgasienica@zynga.com>
Daniel Hejl <daniel.hejl@hotmail.com>
Daniel Lo Nigro <daniel@dan.cx> <danlo@fb.com>
Dave Galbraith <dave@jut.io>
Dennis Johnson <songawee@gmail.com>
Dmitry Blues <dmitri.blyus@gmail.com>
Dongsheng Liu <bellanchor@gmail.com>
Erik Harper <eharper@mixpo.com>
Evan Coonrod <evan@paloalto.com>
Fabio M. Costa <fabiomcosta@gmail.com> <fabs@fb.com>
Felix Kling <felix.kling@gmx.net> <fkling@fb.com>
François-Xavier Bois <fxbois@gmail.com>
Fyodor Ivanishchev <cbrwizard@gmail.com>
Gabe Levi <gabelevi@gmail.com> <glevi@fb.com>
Geert Pasteels <geert.pasteels@gmail.com>
George A Sisco III <george.sisco@gmail.com>
Georgii Dolzhykov <thorn.mailbox@gmail.com>
Harry Hull <harry.hull1@gmail.com>
Hendrik Swanepoel <hendrik.swanepoel@gmail.com>
Hyeock Kwon <doublus@gmail.com>
Ian Obermiller <ian@obermillers.com> <iano@fb.com>
Ilia Pavlenkov <dortonway@gmail.com>
Ilyá Belsky <gelias.gbelsky@gmail.com>
Ingvar Stepanyan <me@rreverser.com> <rreverser@ubuntu.rreverser.a4.internal.cloudapp.net>
Irae Carvalho <irae@irae.pro.br>
Ivan Vergiliev <ivan.vergiliev@gmail.com>
JJ Weber <jj.weber@gmail.com>
Jae Hun Ro <jhr24@duke.edu>
Jaime Mingo <j.mingov@3boll.com>
James Brantly <james@jbrantly.com>
Jan Hancic <jan.hancic@gmail.com> <jan.hancic@caplin.com>
Jan Kassens <jan@kassens.net> <jkassens@fb.com>
Jason Bonta <jbonta@gmail.com> <jasonbonta@fb.com>
Jason Quense <monastic.panic@gmail.com>
Jason Trill <jason@jasontrill.com>
Jeff Chan <jefftchan@gmail.com> <jeff@quizlet.com>
Jeff Morrison <jeff@anafx.com> <Jeff@anafx.com>
Jeff Morrison <jeff@anafx.com> <jeffmo@fb.com>
Jeff Morrison <jeff@anafx.com> <lbljeffmo@gmail.com>
Jeffrey Lin <lin.jeffrey@gmail.com> <jeffreylin@fb.com>
Jim Sproch <jsproch@fb.com>
Jim Sproch <jsproch@fb.com> <jsfb@github>
Jim Sproch <jsproch@fb.com> <none@no-reply.com>
Jinwoo Oh <arkist@gmail.com>
Jinxiu Lee <lee.jinxiu@gmail.com>
Jiyeon Seo <zzzeons@gmail.com>
Jon Chester <jonchester@fb.com>
Jon Madison <jon@tfftech.com>
Jonathan Hsu <jhiswin@gmail.com>
Jonathan Persson <persson.jonathan@gmail.com> <jonathan.persson@creuna.se>
Jordan Walke <jordojw@gmail.com>
Jordan Walke <jordojw@gmail.com> <jordanjcw@fb.com>
Joseph Savona <joesavona@fb.com> <josephsavona@users.noreply.github.com>
Josh Duck <josh@fb.com> <github@joshduck.com>
Juan Serrano <germ13@users.noreply.github.com>
Jun Wu <quark@lihdd.net>
Justin Robison <jrobison151@gmail.com>
Keito Uchiyama <projects@keito.me> <keito@fb.com>
Kevin Coughlin <kevintcoughlin@gmail.com> <kevincoughlin@tumblr.com>
Krystian Karczewski <karcz.k@gmail.com>
Kunal Mehta <k.mehta@berkeley.edu> <kunalm@fb.com>
Laurence Rowe <l@lrowe.co.uk> <laurence@lrowe.co.uk>
Lea Rosema <terabaud@gmail.com>
Marcin K. <katzoo@github.mail>
Mark Anderson <undernewmanagement@users.noreply.github.com>
Mark Funk <mfunk86@gmail.com> <mark@boomtownroi.com>
Martin Andert <mandert@gmail.com>
Mathieu M-Gosselin <mathieumg@gmail.com> <mathieumg@atx33.com>
Matsunoki <himkt@klis.tsukuba.ac.jp>
Matt Brookes <matt@brookes.net>
Matt Dunn-Rankin <mdunnrankin@gmail.com> <matchu1993@gmail.com>
Matt Zabriskie <mzabriskie@gmail.com>
Matthew Johnston <matthewjohnston4@outlook.com> <matthewjohnston4@users.noreply.github.com>
Matthew Looi <looi.matthew@gmail.com>
Mattijs Kneppers <mattijs@arttech.nl>
Max Heiber <max.heiber@gmail.com>
Max Stoiber <contact@mstoiber.com>
Michal Srb <xixixao@seznam.cz> xixixao <xixixao@seznam.cz>
Michelle Todd <himichelletodd@gmail.com> <michelle@khanacademy.org>
Mihai Parparita <mihai.parparita@gmail.com> <mihai@persistent.info>
Minwe LUO <minwe@yunshipei.com>
Murray M. Moss <murray@mmoss.name> <MMoss@cainc.com>
Murray M. Moss <murray@mmoss.name> <mmoss@users.noreply.github.com>
Neri Marschik <marschik_neri@cyberagent.co.jp>
Nick Gavalas <njg57@cornell.edu>
Nick Thompson <ncthom91@gmail.com> <nickt@instagram.com>
Patrick Stapleton <github@gdi2290.com>
Paul OShannessy <paul@oshannessy.com> <poshannessy@fb.com>
Paul Shen <paul@mnml0.com> <paulshen@fb.com>
Pete Hunt <floydophone@gmail.com>
Pete Hunt <floydophone@gmail.com> <pete.hunt@fb.com>
Pete Hunt <floydophone@gmail.com> <pete@instagram.com>
Pete Hunt <floydophone@gmail.com> <phunt@instagram.com>
Petri Lievonen <plievone@cc.hut.fi>
Petri Lievonen <plievone@cc.hut.fi> <petri.lievonen@tkk.fi>
Pieter Vanderwerff <me@pieter.io> <pieter@heyday.co.nz>
Pouja Nikray <poujanik@gmail.com>
Rainer Oviir <roviir@gmail.com> <raineroviir@rainers-MacBook-Pro.local>
Ray <ray@tomo.im>
Richard Feldman <richard.t.feldman@gmail.com> <richard@noredink.com>
Richard Livesey <Livesey7@hotmail.co.uk>
Rick Hanlon <rickhanlonii@gmail.com>
Rick Hanlon <rickhanlonii@gmail.com> <rickhanlonii@fb.com>
Rob Arnold <robarnold@cs.cmu.edu>
Robert Binna <rbinna@gmail.com> <speedskater@users.noreply.github.com>
Robin Frischmann <robin@rofrischmann.de>
Sander Spies <sandermail@gmail.com>
Scott Feeney <scott@oceanbase.org> <smf@fb.com>
Sebastian Markbåge <sebastian@calyptus.eu> <sema@fb.com>
Sergey Rubanov <chi187@gmail.com>
Shogun Sea <shogunsea08@gmail.com> <xxin@groupon.com>
Soichiro Kawamura <mail@w-st.com>
Sophie Alpert <git@sophiebits.com> <balpert@fb.com>
Sophie Alpert <git@sophiebits.com> <ben@benalpert.com>
Sophie Alpert <git@sophiebits.com> <sophiebits@fb.com>
Sophie Alpert <git@sophiebits.com> <spicyjalapeno@gmail.com>
Sota Ohara <ohrst.18@gmail.com>
Steven Luscher <react@steveluscher.com> <github@steveluscher.com>
Steven Luscher <react@steveluscher.com> <steveluscher@fb.com>
Steven Luscher <react@steveluscher.com> <steveluscher@instagram.com>
Steven Luscher <react@steveluscher.com> <steveluscher@users.noreply.github.com>
Seth Webster <sethwebster@gmail.com> <sethwebster@fb.com>
Stoyan Stefanov <ssttoo@ymail.com>
Tengfei Guo <terryr3rd@yeah.net> <tfguo369@gmail.com>
Thomas Aylott <oblivious@subtlegradient.com> <aylott@fb.com>
Timothy Yung <yungsters@gmail.com> <yungsters@fb.com>
Tomoya Suzuki <tmysz.dev@gmail.com>
Vasiliy Loginevskiy <Yeti.or@gmail.com>
Vasiliy Loginevskiy <Yeti.or@gmail.com> <yeti-or@yandex-team.ru>
Vjeux <vjeuxx@gmail.com>
Vjeux <vjeuxx@gmail.com> <vjeux@fb.com>
Volkan Unsal <spocksplanet@gmail.com>
Wander Wang <wander.wang@ismole.com>
Xavier Morel <xmo-odoo@users.noreply.github.com>
YouBao Nong <noyobo@gmail.com> <nongyoubao@alibaba-inc.com>
Yutaka Nakajima <nakazye@gmail.com>
Zach Bruggeman <mail@bruggie.com> <zbruggeman@me.com>
iawia002 <z2d@jifangcheng.com> <850127508@qq.com>
元彦 <yuanyan@users.noreply.github.com>
张敏 <cookfront@gmail.com>

1
.nvmrc
View File

@@ -1 +0,0 @@
v12.17.0

View File

@@ -1,8 +0,0 @@
packages/react-devtools-core/dist
packages/react-devtools-extensions/chrome/build
packages/react-devtools-extensions/firefox/build
packages/react-devtools-extensions/shared/build
packages/react-devtools-inline/dist
packages/react-devtools-shell/dist
packages/react-devtools-scheduling-profiler/dist
packages/react-devtools-scheduling-profiler/static

View File

@@ -1,21 +0,0 @@
'use strict';
const {esNextPaths} = require('./scripts/shared/pathsByLanguageVersion');
module.exports = {
bracketSpacing: false,
singleQuote: true,
jsxBracketSameLine: true,
trailingComma: 'es5',
printWidth: 80,
parser: 'babel',
overrides: [
{
files: esNextPaths,
options: {
trailingComma: 'all',
},
},
],
};

View File

@@ -1 +0,0 @@
{}

1130
AUTHORS

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1
CNAME Normal file
View File

@@ -0,0 +1 @@
legacy.reactjs.org

View File

@@ -1,80 +0,0 @@
# Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies within all project spaces, and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project e-mail address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.
This Code of Conduct also applies outside the project spaces when there is a
reasonable belief that an individual's behavior may have a negative impact on
the project or its community.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at <opensource-conduct@fb.com>. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

View File

@@ -1,5 +0,0 @@
# Contributing to React
Want to contribute to React? There are a few things you need to know.
We wrote a **[contribution guide](https://reactjs.org/contributing/how-to-contribute.html)** to help you get started.

21
LICENSE
View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) Facebook, Inc. and its affiliates.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,75 +0,0 @@
# [React](https://reactjs.org/) &middot; [![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.
* **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/).
[Learn how to use React in your own project](https://reactjs.org/docs/getting-started.html).
## Installation
React has been designed for gradual adoption from the start, and **you can use as little or as much React as you need**:
* 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/package/react).
## 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:
```jsx
function HelloMessage({ name }) {
return <div>Hello {name}</div>;
}
ReactDOM.render(
<HelloMessage name="Taylor" />,
document.getElementById('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 evolving 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.
### [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.
### License
React is [MIT licensed](./LICENSE).

View File

@@ -1,57 +0,0 @@
'use strict';
// This module is the single source of truth for versioning packages that we
// publish to npm.
//
// Packages will not be published unless they are added here.
//
// The @latest channel uses the version as-is, e.g.:
//
// 18.0.0
//
// The @next channel appends additional information, with the scheme
// <version>-<label>-<commit_sha>, e.g.:
//
// 18.0.0-alpha-a1c2d3e4
//
// The @experimental channel doesn't include a version, only a date and a sha, e.g.:
//
// 0.0.0-experimental-241c4467e-20200129
const ReactVersion = '18.0.0';
// The label used by the @next channel. Represents the upcoming release's
// stability. Could be "alpha", "beta", "rc", etc.
const nextChannelLabel = 'alpha';
const stablePackages = {
'create-subscription': ReactVersion,
'eslint-plugin-react-hooks': '4.2.1',
'jest-react': '0.12.1',
react: ReactVersion,
'react-art': ReactVersion,
'react-dom': ReactVersion,
'react-is': ReactVersion,
'react-reconciler': '0.27.0',
'react-refresh': '0.11.0',
'react-test-renderer': ReactVersion,
'use-subscription': '1.6.0',
scheduler: '0.21.0',
};
// These packages do not exist in the @next or @latest channel, only
// @experimental. We don't use semver, just the commit sha, so this is just a
// list of package names instead of a map.
const experimentalPackages = [
'react-fetch',
'react-fs',
'react-pg',
'react-server-dom-webpack',
];
module.exports = {
ReactVersion,
nextChannelLabel,
stablePackages,
experimentalPackages,
};

View File

@@ -1,7 +0,0 @@
# Reporting Security Issues
If you believe you have found a security vulnerability in React, we encourage you to let us know right away. We will investigate all legitimate reports and do our best to quickly fix the problem.
Please refer to the following page for our responsible disclosure policy, reward guidelines, and those things that should not be reported:
https://www.facebook.com/whitehat

View File

@@ -1,41 +0,0 @@
image: Visual Studio 2017
# Fix line endings in Windows. (runs before repo cloning)
init:
- git config --global core.autocrlf input
environment:
JAVA_HOME: C:\Program Files\Java\jdk1.8.0
matrix:
- nodejs_version: 10
# Finish on first failed build
matrix:
fast_finish: true
platform:
- x64
branches:
only:
- master
# Disable Visual Studio build and deploy
build: off
deploy: off
install:
- ps: Install-Product node $env:nodejs_version $env:platform
- yarn install --frozen-lockfile
test_script:
- node --version
- yarn lint
# - yarn flow-ci
- yarn build
- yarn test
- yarn prettier
cache:
- node_modules
- "%LOCALAPPDATA%/Yarn"

View File

@@ -1,27 +0,0 @@
'use strict';
module.exports = {
plugins: [
'@babel/plugin-syntax-jsx',
'@babel/plugin-transform-react-jsx',
'@babel/plugin-transform-flow-strip-types',
['@babel/plugin-proposal-class-properties', {loose: true}],
'syntax-trailing-function-commas',
[
'@babel/plugin-proposal-object-rest-spread',
{loose: true, useBuiltIns: true},
],
['@babel/plugin-transform-template-literals', {loose: true}],
'@babel/plugin-transform-literals',
'@babel/plugin-transform-arrow-functions',
'@babel/plugin-transform-block-scoped-functions',
'@babel/plugin-transform-object-super',
'@babel/plugin-transform-shorthand-properties',
'@babel/plugin-transform-computed-properties',
'@babel/plugin-transform-for-of',
['@babel/plugin-transform-spread', {loose: true, useBuiltIns: true}],
'@babel/plugin-transform-parameters',
['@babel/plugin-transform-destructuring', {loose: true, useBuiltIns: true}],
['@babel/plugin-transform-block-scoping', {throwIfClosureRequired: true}],
],
};

View File

@@ -1,247 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
/* eslint-disable no-for-of-loops/no-for-of-loops */
// Hi, if this is your first time editing/reading a Dangerfile, here's a summary:
// It's a JS runtime which helps you provide continuous feedback inside GitHub.
//
// You can see the docs here: http://danger.systems/js/
//
// If you want to test changes Danger, I'd recommend checking out an existing PR
// and then running the `danger pr` command.
//
// You'll need a GitHub token, you can re-use this one:
//
// 0a7d5c3cad9a6dbec2d9 9a5222cf49062a4c1ef7
//
// (Just remove the space)
//
// So, for example:
//
// `DANGER_GITHUB_API_TOKEN=[ENV_ABOVE] yarn danger pr https://github.com/facebook/react/pull/11865
const {markdown, danger, warn} = require('danger');
const {promisify} = require('util');
const glob = promisify(require('glob'));
const gzipSize = require('gzip-size');
const {readFileSync, statSync} = require('fs');
const BASE_DIR = 'base-build';
const HEAD_DIR = 'build2';
const CRITICAL_THRESHOLD = 0.02;
const SIGNIFICANCE_THRESHOLD = 0.002;
const CRITICAL_ARTIFACT_PATHS = new Set([
// We always report changes to these bundles, even if the change is
// insiginificant or non-existent.
'oss-stable/react-dom/cjs/react-dom.production.min.js',
'oss-experimental/react-dom/cjs/react-dom.production.min.js',
'facebook-www/ReactDOM-prod.classic.js',
'facebook-www/ReactDOM-prod.modern.js',
'facebook-www/ReactDOMForked-prod.classic.js',
]);
const kilobyteFormatter = new Intl.NumberFormat('en', {
style: 'unit',
unit: 'kilobyte',
minimumFractionDigits: 2,
maximumFractionDigits: 2,
});
function kbs(bytes) {
return kilobyteFormatter.format(bytes / 1000);
}
const percentFormatter = new Intl.NumberFormat('en', {
style: 'percent',
signDisplay: 'exceptZero',
minimumFractionDigits: 2,
maximumFractionDigits: 2,
});
function change(decimal) {
if (Number === Infinity) {
return 'New file';
}
if (decimal === -1) {
return 'Deleted';
}
if (decimal < 0.0001) {
return '=';
}
return percentFormatter.format(decimal);
}
const header = `
| Name | +/- | Base | Current | +/- gzip | Base gzip | Current gzip |
| ---- | --- | ---- | ------- | -------- | --------- | ------------ |`;
function row(result) {
// prettier-ignore
return `| ${result.path} | **${change(result.change)}** | ${kbs(result.baseSize)} | ${kbs(result.headSize)} | ${change(result.changeGzip)} | ${kbs(result.baseSizeGzip)} | ${kbs(result.headSizeGzip)}`;
}
(async function() {
// Use git locally to grab the commit which represents the place
// where the branches differ
const upstreamRepo = danger.github.pr.base.repo.full_name;
if (upstreamRepo !== 'facebook/react') {
// Exit unless we're running in the main repo
return;
}
let headSha;
let baseSha;
try {
headSha = (readFileSync(HEAD_DIR + '/COMMIT_SHA') + '').trim();
baseSha = (readFileSync(BASE_DIR + '/COMMIT_SHA') + '').trim();
} catch {
warn(
"Failed to read build artifacts. It's possible a build configuration " +
'has changed upstream. Try pulling the latest changes from the ' +
'main branch.'
);
return;
}
const resultsMap = new Map();
// Find all the head (current) artifacts paths.
const headArtifactPaths = await glob('**/*.js', {cwd: 'build2'});
for (const artifactPath of headArtifactPaths) {
try {
// This will throw if there's no matching base artifact
const baseSize = statSync(BASE_DIR + '/' + artifactPath).size;
const baseSizeGzip = gzipSize.fileSync(BASE_DIR + '/' + artifactPath);
const headSize = statSync(HEAD_DIR + '/' + artifactPath).size;
const headSizeGzip = gzipSize.fileSync(HEAD_DIR + '/' + artifactPath);
resultsMap.set(artifactPath, {
path: artifactPath,
headSize,
headSizeGzip,
baseSize,
baseSizeGzip,
change: (headSize - baseSize) / baseSize,
changeGzip: (headSizeGzip - baseSizeGzip) / baseSizeGzip,
});
} catch {
// There's no matching base artifact. This is a new file.
const baseSize = 0;
const baseSizeGzip = 0;
const headSize = statSync(HEAD_DIR + '/' + artifactPath).size;
const headSizeGzip = gzipSize.fileSync(HEAD_DIR + '/' + artifactPath);
resultsMap.set(artifactPath, {
path: artifactPath,
headSize,
headSizeGzip,
baseSize,
baseSizeGzip,
change: Infinity,
changeGzip: Infinity,
});
}
}
// Check for base artifacts that were deleted in the head.
const baseArtifactPaths = await glob('**/*.js', {cwd: 'base-build'});
for (const artifactPath of baseArtifactPaths) {
if (!resultsMap.has(artifactPath)) {
const baseSize = statSync(BASE_DIR + '/' + artifactPath).size;
const baseSizeGzip = gzipSize.fileSync(BASE_DIR + '/' + artifactPath);
const headSize = 0;
const headSizeGzip = 0;
resultsMap.set(artifactPath, {
path: artifactPath,
headSize,
headSizeGzip,
baseSize,
baseSizeGzip,
change: -1,
changeGzip: -1,
});
}
}
const results = Array.from(resultsMap.values());
results.sort((a, b) => b.change - a.change);
let criticalResults = [];
for (const artifactPath of CRITICAL_ARTIFACT_PATHS) {
const result = resultsMap.get(artifactPath);
if (result === undefined) {
throw new Error(
'Missing expected bundle. If this was an intentional change to the ' +
'build configuration, update Dangerfile.js accordingly: ' +
artifactPath
);
}
criticalResults.push(row(result));
}
let significantResults = [];
for (const result of results) {
// If result exceeds critical threshold, add to top section.
if (
(result.change > CRITICAL_THRESHOLD ||
0 - result.change > CRITICAL_THRESHOLD ||
// New file
result.change === Infinity ||
// Deleted file
result.change === -1) &&
// Skip critical artifacts. We added those earlier, in a fixed order.
!CRITICAL_ARTIFACT_PATHS.has(result.path)
) {
criticalResults.push(row(result));
}
// Do the same for results that exceed the significant threshold. These
// will go into the bottom, collapsed section. Intentionally including
// critical artifacts in this section, too.
if (
result.change > SIGNIFICANCE_THRESHOLD ||
0 - result.change > SIGNIFICANCE_THRESHOLD ||
result.change === Infinity ||
result.change === -1
) {
significantResults.push(row(result));
}
}
markdown(`
Comparing: ${baseSha}...${headSha}
## Critical size changes
Includes critical production bundles, as well as any change greater than ${CRITICAL_THRESHOLD *
100}%:
${header}
${criticalResults.join('\n')}
## Significant size changes
Includes any change greater than ${SIGNIFICANCE_THRESHOLD * 100}%:
${
significantResults.length > 0
? `
<details>
<summary>Expand to show</summary>
${header}
${significantResults.join('\n')}
</details>
`
: '(No significant changes)'
}
`);
})();

View File

@@ -1 +0,0 @@
bundle.js

View File

@@ -1,10 +0,0 @@
# VectorWidget example
To try this example, run:
```
yarn
yarn build
```
in this directory, then open index.html in your browser.

View File

@@ -1,148 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
var Circle = require('react-art/Circle');
var React = require('react');
var ReactART = require('react-art');
var Group = ReactART.Group;
var Shape = ReactART.Shape;
var Surface = ReactART.Surface;
var Transform = ReactART.Transform;
var MOUSE_UP_DRAG = 0.978;
var MOUSE_DOWN_DRAG = 0.9;
var MAX_VEL = 11;
var CLICK_ACCEL = 3;
var BASE_VEL = 0.15;
/**
* An animated SVG component.
*/
class VectorWidget extends React.Component {
/**
* Initialize state members.
*/
state = {degrees: 0, velocity: 0, drag: MOUSE_UP_DRAG};
/**
* When the component is mounted into the document - this is similar to a
* constructor, but invoked when the instance is actually mounted into the
* document. Here, we'll just set up an animation loop that invokes our
* method. Binding of `this.onTick` is not needed because all React methods
* are automatically bound before being mounted.
*/
componentDidMount() {
this._interval = window.setInterval(this.onTick, 20);
}
componentWillUnmount() {
window.clearInterval(this._interval);
}
onTick = () => {
var nextDegrees = this.state.degrees + BASE_VEL + this.state.velocity;
var nextVelocity = this.state.velocity * this.state.drag;
this.setState({degrees: nextDegrees, velocity: nextVelocity});
};
/**
* When mousing down, we increase the friction down the velocity.
*/
handleMouseDown = () => {
this.setState({drag: MOUSE_DOWN_DRAG});
};
/**
* Cause the rotation to "spring".
*/
handleMouseUp = () => {
var nextVelocity = Math.min(this.state.velocity + CLICK_ACCEL, MAX_VEL);
this.setState({velocity: nextVelocity, drag: MOUSE_UP_DRAG});
};
/**
* This is the "main" method for any component. The React API allows you to
* describe the structure of your UI component at *any* point in time.
*/
render() {
return (
<Surface width={700} height={700} style={{cursor: 'pointer'}}>
{this.renderGraphic(this.state.degrees)}
</Surface>
);
}
/**
* Better SVG support for React coming soon.
*/
renderGraphic = rotation => {
return (
<Group onMouseDown={this.handleMouseDown} onMouseUp={this.handleMouseUp}>
<Group x={210} y={135}>
<Shape fill="rgba(0,0,0,0.1)" d={BORDER_PATH} />
<Shape fill="#7BC7BA" d={BG_PATH} />
<Shape fill="#DCDCDC" d={BAR_PATH} />
<Shape fill="#D97B76" d={RED_DOT_PATH} />
<Shape fill="#DBBB79" d={YELLOW_DOT_PATH} />
<Shape fill="#A6BD8A" d={GREEN_DOT_PATH} />
<Group x={55} y={29}>
<Group rotation={rotation} originX={84} originY={89}>
<Group x={84} y={89}>
<Circle fill="#FFFFFF" radius={16} />
</Group>
<Group>
<Shape d={RING_ONE_PATH} stroke="#FFFFFF" strokeWidth={8} />
<Shape
d={RING_TWO_PATH}
transform={RING_TWO_ROTATE}
stroke="#FFFFFF"
strokeWidth={8}
/>
<Shape
d={RING_THREE_PATH}
transform={RING_THREE_ROTATE}
stroke="#FFFFFF"
strokeWidth={8}
/>
</Group>
</Group>
</Group>
</Group>
</Group>
);
};
}
var BORDER_PATH =
'M3.00191459,4 C1.34400294,4 0,5.34785514 0,7.00550479 L0,220.994495 C0,222.65439 1.34239483,224 3.00191459,224 L276.998085,224 C278.655997,224 280,222.652145 280,220.994495 L280,7.00550479 C280,5.34561033 278.657605,4 276.998085,4 L3.00191459,4 Z M3.00191459,4';
var BG_PATH =
'M3.00191459,1 C1.34400294,1 0,2.34785514 0,4.00550479 L0,217.994495 C0,219.65439 1.34239483,221 3.00191459,221 L276.998085,221 C278.655997,221 280,219.652145 280,217.994495 L280,4.00550479 C280,2.34561033 278.657605,1 276.998085,1 L3.00191459,1 Z M3.00191459,1';
var BAR_PATH =
'M3.00191459,0 C1.34400294,0 0,1.34559019 0,3.00878799 L0,21 C0,21 0,21 0,21 L280,21 C280,21 280,21 280,21 L280,3.00878799 C280,1.34708027 278.657605,0 276.998085,0 L3.00191459,0 Z M3.00191459,0';
var RED_DOT_PATH =
'M12.5,17 C16.0898511,17 19,14.0898511 19,10.5 C19,6.91014895 16.0898511,4 12.5,4 C8.91014895,4 6,6.91014895 6,10.5 C6,14.0898511 8.91014895,17 12.5,17 Z M12.5,17';
var YELLOW_DOT_PATH =
'M31.5,17 C35.0898511,17 38,14.0898511 38,10.5 C38,6.91014895 35.0898511,4 31.5,4 C27.9101489,4 25,6.91014895 25,10.5 C25,14.0898511 27.9101489,17 31.5,17 Z M31.5,17';
var GREEN_DOT_PATH =
'M50.5,17 C54.0898511,17 57,14.0898511 57,10.5 C57,6.91014895 54.0898511,4 50.5,4 C46.9101489,4 44,6.91014895 44,10.5 C44,14.0898511 46.9101489,17 50.5,17 Z M50.5,17';
var RING_ONE_PATH =
'M84,121 C130.391921,121 168,106.673113 168,89 C168,71.3268871 130.391921,57 84,57 C37.6080787,57 0,71.3268871 0,89 C0,106.673113 37.6080787,121 84,121 Z M84,121';
var RING_TWO_PATH =
'M84,121 C130.391921,121 168,106.673113 168,89 C168,71.3268871 130.391921,57 84,57 C37.6080787,57 0,71.3268871 0,89 C0,106.673113 37.6080787,121 84,121 Z M84,121';
var RING_THREE_PATH =
'M84,121 C130.391921,121 168,106.673113 168,89 C168,71.3268871 130.391921,57 84,57 C37.6080787,57 0,71.3268871 0,89 C0,106.673113 37.6080787,121 84,121 Z M84,121';
var RING_TWO_ROTATE = new Transform()
.translate(84.0, 89.0)
.rotate(-240.0)
.translate(-84.0, -89.0);
var RING_THREE_ROTATE = new Transform()
.translate(84.0, 89.0)
.rotate(-300.0)
.translate(-84.0, -89.0);
module.exports = VectorWidget;

View File

@@ -1,7 +0,0 @@
'use strict';
var React = require('react');
var ReactDOM = require('react-dom');
var VectorWidget = require('./VectorWidget');
ReactDOM.render(<VectorWidget />, document.getElementById('container'));

View File

@@ -1,22 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>VectorWidget</title>
</head>
<body>
<div id="container">
<p>If you're seeing this message, it means you haven't generated the bundle file for this example. Try running:</p>
<pre><code>
npm install
npm run build
</code></pre>
<p>then reload the page.</p>
</div>
<script src="bundle.js"></script>
</body>
</html>

View File

@@ -1,16 +0,0 @@
{
"devDependencies": {
"@babel/core": "^7.10.5",
"@babel/plugin-proposal-class-properties": "^7.10.4",
"@babel/preset-env": "^7.10.4",
"@babel/preset-react": "^7.10.4",
"babel-loader": "^8.1.0",
"react": "link:../../build/node_modules/react",
"react-art": "link:../../build/node_modules/react-art/",
"react-dom": "link:../../build/node_modules/react-dom",
"webpack": "^1.14.0"
},
"scripts": {
"build": "webpack app.js bundle.js"
}
}

View File

@@ -1,34 +0,0 @@
var webpack = require('webpack');
module.exports = {
context: __dirname,
entry: './app.js',
module: {
loaders: [
{
loader: require.resolve('babel-loader'),
test: /\.js$/,
exclude: /node_modules/,
query: {
presets: [
require.resolve('@babel/preset-env'),
require.resolve('@babel/preset-react'),
],
plugins: [require.resolve('@babel/plugin-proposal-class-properties')],
},
},
],
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('development'),
},
}),
],
resolve: {
alias: {
react: require.resolve('react'),
},
},
};

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +0,0 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
# testing
/coverage
# production
/build
/public/react.development.js
/public/react-dom.development.js
/public/react-dom-server.browser.development.js
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

File diff suppressed because it is too large Load Diff

View File

@@ -1,31 +0,0 @@
# Attribute Behavior Fixture
**WIP:** This is an MVP, still needs polish.
### Known Issues
- There are currently two errors thrown when the page loads;
`SyntaxError: missing ; before statement`
## Instructions
`cd fixtures/attribute-behavior && yarn install && yarn start`
## Interpretation
Each row is an attribute which could be set on some DOM component. Some of
them are invalid or mis-capitalized or mixed up versions of real ones.
Each column is a value which can be passed to that attribute.
Every cell has a box on the left and a box on the right.
The left box shows the property (or attribute) assigned by React 15.\*, and the
right box shows the property (or attribute) assigned by the latest version of
React 16.
Right now, we use a purple outline to call out cases where the assigned property
(or attribute) has changed between React 15 and 16.
---
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
You can find the guide for how to do things in a CRA [here](https://github.com/facebook/create-react-app/blob/master/packages/cra-template/template/README.md).

View File

@@ -1,21 +0,0 @@
{
"name": "attribute-behavior",
"version": "0.1.0",
"private": true,
"dependencies": {
"file-saver": "^1.3.3",
"glamor": "^2.20.40",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-scripts": "1.0.11",
"react-virtualized": "^9.9.0"
},
"scripts": {
"prestart":
"cp ../../build/node_modules/react/umd/react.development.js public/ && cp ../../build/node_modules/react-dom/umd/react-dom.development.js public/ && cp ../../build/node_modules/react-dom/umd/react-dom-server.browser.development.js public/",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,40 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<!--
manifest.json provides metadata used when your web app is added to the
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
</head>
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

View File

@@ -1,15 +0,0 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "192x192",
"type": "image/png"
}
],
"start_url": "./index.html",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +0,0 @@
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<App />, div);
});

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +0,0 @@
* {
box-sizing: border-box;
}
body {
font-family: monospace;
font-size: 12px;
}

View File

@@ -1,6 +0,0 @@
import './index.css';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
SKIP_PREFLIGHT_CHECK=true

View File

@@ -1,77 +0,0 @@
{
"posts": [
{
"id": 1,
"userId": 2,
"title": "Welcome",
"body": "Hello, world!"
},
{
"id": 2,
"userId": 3,
"title": "A Guide to useEffect",
"body": "Let me tell you everything about useEffect"
},
{
"id": 3,
"userId": 1,
"title": "Here and There",
"body": "Browsers are smart"
}
],
"comments": [
{
"id": 1,
"body": "Hey there",
"postId": 1,
"userId": 1
},
{
"id": 2,
"body": "Welcome to the chat",
"postId": 1,
"userId": 2
},
{
"id": 3,
"body": "What editor/font are you using?",
"postId": 2,
"userId": 2
},
{
"id": 4,
"body": "It's always been hard",
"postId": 3,
"userId": 1
},
{
"id": 5,
"body": "It's still easy",
"postId": 3,
"userId": 2
}
],
"users": [{
"id": 1,
"name": "Sebastian",
"bioId": 10
}, {
"id": 2,
"name": "Sophie",
"bioId": 20
}, {
"id": 3,
"name": "Dan",
"bioId": 30
}],
"bios": [{
"id": 10,
"text": "I like European movies"
}, {
"id": 20,
"text": "I like math puzzles"
}, {
"id": 30,
"text": "I like reading twitter"
}]
}

View File

@@ -1,14 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
module.exports = (req, res, next) => {
if (req.query.delay) {
setTimeout(next, Number(req.query.delay));
} else {
next();
}
};

View File

@@ -1,37 +0,0 @@
{
"name": "blocks",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:3001/",
"dependencies": {
"concurrently": "^5.2.0",
"json-server": "^0.16.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-scripts": "3.4.1"
},
"scripts": {
"prestart": "cp -r ../../build/node_modules/* ./node_modules/",
"prebuild": "cp -r ../../build/node_modules/* ./node_modules/",
"start": "concurrently \"npm run start:client\" \"npm run start:api\"",
"start:api": "json-server --watch db.json --port 3001 --delay 1000 --middlewares delay.js",
"start:client": "react-scripts start",
"build": "react-scripts build",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

View File

@@ -1,12 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Blocks Fixture</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>

View File

@@ -1,105 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import React, {
useReducer,
useEffect,
unstable_useTransition as useTransition,
useCallback,
useMemo,
Suspense,
} from 'react';
import {createCache, CacheProvider} from 'react/unstable-cache';
import {RouterProvider} from './client/RouterContext';
// TODO: can't really import a server component on the client.
import App from './server/App';
const initialUrl = window.location.pathname;
const initialState = {
// TODO: use this for invalidation.
cache: createCache(),
url: initialUrl,
pendingUrl: initialUrl,
root: <App route={initialUrl} />,
};
function reducer(state, action) {
switch (action.type) {
case 'startNavigation':
return {
...state,
pendingUrl: action.url,
};
case 'completeNavigation':
// TODO: cancel previous fetch?
return {
...state,
url: action.url,
pendingUrl: action.url,
root: action.root,
};
default:
throw new Error();
}
}
function Router() {
const [state, dispatch] = useReducer(reducer, initialState);
const [startTransition, isPending] = useTransition({
timeoutMs: 1500,
});
useEffect(() => {
document.body.style.cursor = isPending ? 'wait' : '';
}, [isPending]);
const navigate = useCallback(
url => {
startTransition(() => {
// TODO: Here, There, and Everywhere.
// TODO: Instant Transitions, somehow.
dispatch({
type: 'completeNavigation',
root: <App route={url} />,
url,
});
});
dispatch({
type: 'startNavigation',
url,
});
},
[startTransition]
);
useEffect(() => {
const listener = () => {
navigate(window.location.pathname);
};
window.addEventListener('popstate', listener);
return () => window.removeEventListener('popstate', listener);
}, [navigate]);
const routeContext = useMemo(
() => ({
pendingUrl: state.pendingUrl,
url: state.url,
navigate,
}),
[state.url, state.pendingUrl, navigate]
);
return (
<Suspense fallback={<h2>Loading...</h2>}>
<CacheProvider value={state.cache}>
<RouterProvider value={routeContext}>{state.root}</RouterProvider>
</CacheProvider>
</Suspense>
);
}
export default Router;

View File

@@ -1,25 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import {useRouter} from './RouterContext';
export default function Link({to, children, ...rest}) {
const {navigate} = useRouter();
return (
<a
href={to}
onClick={e => {
e.preventDefault();
window.history.pushState(null, null, to);
navigate(to);
}}
{...rest}>
{children}
</a>
);
}

View File

@@ -1,21 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {TabBar, TabLink} from '../client/TabNav';
export default function ProfileNav({userId}) {
// TODO: Don't hardcode ID.
return (
<TabBar>
<TabLink to={`/profile/${userId}`}>Timeline</TabLink>
<TabLink to={`/profile/${userId}/bio`}>Bio</TabLink>
</TabBar>
);
}

View File

@@ -1,9 +0,0 @@
import {createContext, useContext} from 'react';
const RouterContext = createContext(null);
export const RouterProvider = RouterContext.Provider;
export function useRouter() {
return useContext(RouterContext);
}

View File

@@ -1,31 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import {TabBar, TabLink} from './TabNav';
// TODO: Error Boundaries.
function MainTabNav() {
return (
<TabBar>
<TabLink to="/">Home</TabLink>
<TabLink to="/profile/3" partial={true}>
Profile
</TabLink>
</TabBar>
);
}
export default function Shell({children}) {
return (
<>
<MainTabNav />
{children}
</>
);
}

View File

@@ -1,50 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import Link from './Link';
import {useRouter} from './RouterContext';
export function TabBar({children}) {
return (
<div
style={{
border: '1px solid #aaa',
padding: 20,
marginBottom: 20,
width: 500,
}}>
{children}
</div>
);
}
export function TabLink({to, partial, children}) {
const {pendingUrl: activeUrl} = useRouter();
const active = partial ? activeUrl.startsWith(to) : activeUrl === to;
if (active) {
return (
<b
style={{
display: 'inline-block',
marginRight: 20,
}}>
{children}
</b>
);
}
return (
<Link
style={{
display: 'inline-block',
marginRight: 20,
}}
to={to}>
{children}
</Link>
);
}

View File

@@ -1,8 +0,0 @@
body {
font-family: Helvetica;
padding-left: 10px;
}
* {
box-sizing: border-box;
}

View File

@@ -1,13 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import React from 'react';
import {createRoot} from 'react-dom';
import './index.css';
import Router from './Router';
createRoot(document.getElementById('root')).render(<Router />);

View File

@@ -1,28 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {matchRoute} from './ServerRouter';
import FeedPage from './FeedPage';
import ProfilePage from './ProfilePage';
// TODO: Replace with asset reference.
import Shell from '../client/Shell';
// TODO: Router component?
const AppRoutes = {
'/': props => <FeedPage {...props} key="home" />,
'/profile/:userId/*': props => (
<ProfilePage {...props} key={`profile-${props.userId}`} />
),
};
export default function App(props) {
const match = matchRoute(props, AppRoutes);
return <Shell>{match}</Shell>;
}

View File

@@ -1,31 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {fetch} from 'react-fetch';
// TODO: Replace with asset reference.
import Link from '../client/Link';
export default function Comments({postId}) {
const comments = fetch(`/comments?postId=${postId}&_expand=user`).json();
return (
<>
<h5>Comments</h5>
<ul>
{comments.slice(0, 5).map(comment => (
<li key={comment.id}>
{comment.body}
{' • '}
<Link to={`/profile/${comment.user.id}`}>{comment.user.name}</Link>
</li>
))}
</ul>
</>
);
}

View File

@@ -1,21 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {fetch} from 'react-fetch';
import PostList from './PostList';
export default function Feed() {
const posts = fetch('/posts?_expand=user').json();
return (
<>
<h2>Feed</h2>
<PostList posts={posts} />
</>
);
}

View File

@@ -1,20 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {Suspense} from 'react';
import PostGlimmer from './PostGlimmer';
import Feed from './Feed';
export default function FeedPage() {
return (
<Suspense fallback={<PostGlimmer />}>
<Feed />
</Suspense>
);
}

View File

@@ -1,39 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {Suspense} from 'react';
import Comments from './Comments';
// TODO: Replace with asset reference.
import Link from '../client/Link';
export default function Post({post}) {
return (
<div
style={{
border: '1px solid #aaa',
borderRadius: 10,
marginBottom: 20,
padding: 20,
maxWidth: 500,
}}>
<h4 style={{marginTop: 0}}>
{post.title}
{' by '}
<Link to={`/profile/${post.user.id}`}>{post.user.name}</Link>
</h4>
<p>{post.body}</p>
<Suspense
fallback={<h5>Loading comments...</h5>}
unstable_avoidThisFallback={true}>
<Comments postId={post.id} />
</Suspense>
</div>
);
}

View File

@@ -1,56 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
export default function PostGlimmer() {
return (
<div
style={{
border: '1px solid #aaa',
borderRadius: 10,
marginBottom: 20,
padding: 20,
maxWidth: 500,
height: 180,
}}>
<div
style={{
marginBottom: 20,
width: '50%',
height: 20,
background: '#ddd',
}}
/>
<div
style={{
marginBottom: 20,
width: '60%',
height: 20,
background: '#eee',
}}
/>
<div
style={{
marginBottom: 20,
width: '50%',
height: 20,
background: '#eee',
}}
/>
<div
style={{
marginBottom: 20,
width: '60%',
height: 20,
background: '#eee',
}}
/>
</div>
);
}

View File

@@ -1,28 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {Suspense, unstable_SuspenseList as SuspenseList} from 'react';
import {preload} from 'react-fetch';
import PostGlimmer from './PostGlimmer';
import Post from './Post';
export default function PostList({posts}) {
return (
<SuspenseList revealOrder="forwards" tail="collapsed">
{posts.map(post => {
preload(`/comments?postId=${post.id}&_expand=user`);
return (
<Suspense key={post.id} fallback={<PostGlimmer />}>
<Post post={post} />
</Suspense>
);
})}
</SuspenseList>
);
}

View File

@@ -1,21 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {fetch} from 'react-fetch';
export default function ProfileBio({userId}) {
const user = fetch(`/users/${userId}`).json();
const bio = fetch(`/bios/${user.bioId}`).json().text;
return (
<>
<h3>{user.name}'s Bio</h3>
<p>{bio}</p>
</>
);
}

View File

@@ -1,34 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import {Suspense} from 'react';
import {fetch} from 'react-fetch';
import {matchRoute} from './ServerRouter';
import ProfileTimeline from './ProfileTimeline';
import ProfileBio from './ProfileBio';
// TODO: Replace with asset reference.
import ProfileNav from '../client/ProfileNav';
// TODO: Router component?
const ProfileRoutes = {
'/': props => <ProfileTimeline {...props} key="timeline" />,
'/bio': props => <ProfileBio {...props} key="bio" />,
};
export default function ProfilePage(props) {
const user = fetch(`/users/${props.userId}`).json();
const match = matchRoute(props, ProfileRoutes);
return (
<>
<h2>{user.name}</h2>
<ProfileNav userId={user.id} />
<Suspense fallback={<h3>Loading...</h3>}>{match}</Suspense>
</>
);
}

View File

@@ -1,16 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
import * as React from 'react';
import {fetch} from 'react-fetch';
import PostList from './PostList';
export default function ProfileTimeline({userId}) {
const posts = fetch(`/posts?userId=${userId}&_expand=user`).json();
return <PostList posts={posts} />;
}

View File

@@ -1,54 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/* eslint-disable import/first */
function tryMatch(props, def) {
const defSegments = def.split('/').filter(Boolean);
const routeSegments = props.route.split('/').filter(Boolean);
let innerProps = {...props};
while (routeSegments.length > 0) {
if (defSegments.length === 0) {
return null;
}
const urlSegment = routeSegments.shift();
const defSegment = defSegments.shift();
if (urlSegment === defSegment) {
continue;
}
if (defSegment[0] === ':') {
innerProps[defSegment.slice(1)] = urlSegment;
continue;
}
if (defSegment === '*') {
innerProps.route = '/' + urlSegment + routeSegments.join('/');
return innerProps;
}
return null;
}
if (defSegments.length === 0) {
return innerProps;
}
if (defSegments.length === 1 && defSegments[0] === '*') {
innerProps.route = '/';
return innerProps;
}
return null;
}
export function matchRoute(props, defs) {
for (let def in defs) {
if (!defs.hasOwnProperty(def)) {
continue;
}
const innerProps = tryMatch(props, def);
if (innerProps) {
const match = defs[def](innerProps);
return match;
}
}
throw Error('Not found.');
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,21 +0,0 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@@ -1,44 +0,0 @@
# CPU async rendering demo
## What is this fixture?
This is a demo application based on [Dan Abramov's](https://github.com/gaearon) recent [JSConf Iceland talk](https://reactjs.org/blog/2018/03/01/sneak-peek-beyond-react-16.html) about React.
It depends on a local build of React and enables us to easily test async "time slicing" APIs in a more "real world app" like context.
## Can I use this code in production?
No. The APIs being tested here are unstable and some of them have still not been released to NPM. For now, this fixture is only a test harness.
There are also known bugs and inefficiencies in master so **don't use this fixture for demonstration purposes either yet**. Until they are fixed, this fixture is **not** indicative of React async rendering performance.
## How do I run this fixture?
### From npm version
```
# 1: Install fixture dependencies
cd fixtures/unstable-async/time-slicing/
yarn
# 2: Run the app
yarn start
```
### From React source code
```shell
# 1: Build react from source
cd /path/to/react
yarn
yarn build react-dom/index,react/index,react-cache,scheduler --type=NODE
# 2: Install fixture dependencies
cd fixtures/unstable-async/time-slicing/
yarn
# 3: Copy React source code over
yarn copy-source
# 3: Run the app
yarn start
```

View File

@@ -1,20 +0,0 @@
{
"name": "cpu-demo",
"version": "0.1.0",
"private": true,
"dependencies": {
"glamor": "^2.20.40",
"react": "0.0.0-experimental-269dd6ec5",
"react-dom": "0.0.0-experimental-269dd6ec5",
"react-markdown": "^3.2.0",
"react-scripts": "^1.1.4",
"victory": "^0.25.6"
},
"scripts": {
"copy-source": "cp -r ../../../build/node_modules/* ./node_modules/",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1,40 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<!--
manifest.json provides metadata used when your web app is added to the
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
</head>
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

View File

@@ -1,15 +0,0 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
}
],
"start_url": "./index.html",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

View File

@@ -1,126 +0,0 @@
import React, {PureComponent} from 'react';
import {
VictoryArea,
VictoryAxis,
VictoryChart,
VictoryBar,
VictoryTheme,
VictoryScatter,
VictoryStack,
} from 'victory';
const colors = ['#fff489', '#fa57c1', '#b166cc', '#7572ff', '#69a6f9'];
export default class Charts extends PureComponent {
render() {
const streamData = this.props.data;
return (
<div>
<div style={{display: 'flex'}}>
<VictoryChart
theme={VictoryTheme.material}
width={400}
height={400}
style={{
parent: {
backgroundColor: '#222',
},
}}>
<VictoryAxis
style={{
axis: {stroke: 'white'},
tickLabels: {fill: 'white'},
}}
/>
<VictoryAxis
style={{
axis: {stroke: 'white'},
tickLabels: {fill: 'white'},
}}
dependentAxis
/>
<VictoryScatter
data={streamData[0]}
size={6}
style={{
data: {
fill: d => colors[d.x % 5],
},
}}
/>
</VictoryChart>
<VictoryChart
theme={VictoryTheme.material}
width={400}
height={400}
style={{
parent: {
backgroundColor: '#222',
},
}}
domainPadding={[20, 20]}>
<VictoryAxis
style={{
axis: {stroke: 'white'},
tickLabels: {fill: 'white'},
}}
/>
<VictoryAxis
style={{
axis: {stroke: 'white'},
tickLabels: {fill: 'white'},
}}
dependentAxis
/>
<VictoryBar
data={streamData[0]}
style={{
data: {
fill: d => colors[d.x % 5],
stroke: 'none',
padding: 5,
},
}}
/>
</VictoryChart>
</div>
<div
style={{
display: 'flex',
position: 'relative',
top: '-50px',
}}>
<VictoryChart
theme={VictoryTheme.material}
width={800}
height={350}
style={{
parent: {
backgroundColor: '#222',
},
}}>
<VictoryAxis
style={{
axis: {stroke: 'white'},
tickLabels: {fill: 'white'},
}}
/>
<VictoryAxis
style={{
axis: {stroke: 'white'},
tickLabels: {fill: 'white'},
}}
dependentAxis
/>
<VictoryStack>
{streamData.map((data, i) => (
<VictoryArea key={i} data={data} colorScale={colors} />
))}
</VictoryStack>
</VictoryChart>
</div>
</div>
);
}
}

View File

@@ -1,105 +0,0 @@
import React, {createRef, PureComponent} from 'react';
const SPEED = 0.003 / Math.PI;
const FRAMES = 10;
export default class Clock extends PureComponent {
faceRef = createRef();
arcGroupRef = createRef();
clockHandRef = createRef();
frame = null;
hitCounter = 0;
rotation = 0;
t0 = Date.now();
arcs = [];
animate = () => {
const now = Date.now();
const td = now - this.t0;
this.rotation = (this.rotation + SPEED * td) % (2 * Math.PI);
this.t0 = now;
this.arcs.push({rotation: this.rotation, td});
let lx, ly, tx, ty;
if (this.arcs.length > FRAMES) {
this.arcs.forEach(({rotation, td}, i) => {
lx = tx;
ly = ty;
const r = 145;
tx = 155 + r * Math.cos(rotation);
ty = 155 + r * Math.sin(rotation);
const bigArc = SPEED * td < Math.PI ? '0' : '1';
const path = `M${tx} ${ty}A${r} ${r} 0 ${bigArc} 0 ${lx} ${ly}L155 155`;
const hue = 120 - Math.min(120, td / 4);
const colour = `hsl(${hue}, 100%, ${60 - i * (30 / FRAMES)}%)`;
if (i !== 0) {
const arcEl = this.arcGroupRef.current.children[i - 1];
arcEl.setAttribute('d', path);
arcEl.setAttribute('fill', colour);
}
});
this.clockHandRef.current.setAttribute('d', `M155 155L${tx} ${ty}`);
this.arcs.shift();
}
if (this.hitCounter > 0) {
this.faceRef.current.setAttribute(
'fill',
`hsla(0, 0%, ${this.hitCounter}%, 0.95)`
);
this.hitCounter -= 1;
} else {
this.hitCounter = 0;
this.faceRef.current.setAttribute('fill', 'hsla(0, 0%, 5%, 0.95)');
}
this.frame = requestAnimationFrame(this.animate);
};
componentDidMount() {
this.frame = requestAnimationFrame(this.animate);
if (this.faceRef.current) {
this.faceRef.current.addEventListener('click', this.handleClick);
}
}
componentDidUpdate() {
console.log('componentDidUpdate()', this.faceRef.current);
}
componentWillUnmount() {
this.faceRef.current.removeEventListener('click', this.handleClick);
if (this.frame) {
cancelAnimationFrame(this.frame);
}
}
handleClick = e => {
e.stopPropagation();
this.hitCounter = 50;
};
render() {
const paths = new Array(FRAMES);
for (let i = 0; i < FRAMES; i++) {
paths.push(<path className="arcHand" key={i} />);
}
return (
<div className="stutterer">
<svg height="310" width="310">
<circle
className="clockFace"
onClick={this.handleClick}
cx={155}
cy={155}
r={150}
ref={this.faceRef}
/>
<g ref={this.arcGroupRef}>{paths}</g>
<path className="clockHand" ref={this.clockHandRef} />
</svg>
</div>
);
}
}

View File

@@ -1,149 +0,0 @@
html,
body {
padding: 0px;
margin: 0px;
user-select: none;
font-family: Karla, Helvetica Neue, Helvetica, sans-serif;
background: rgb(34, 34, 34);
color: white;
overflow: hidden;
}
.VictoryContainer {
opacity: 0.8;
}
* {
box-sizing: border-box;
}
#root {
height: 100vh;
}
.container {
width: 100%;
max-width: 960px;
margin: auto;
padding: 10px;
}
.rendering {
margin-top: 20px;
margin-bottom: 20px;
zoom: 1.8;
text-align: center;
display: flex;
justify-content: space-between;
}
label {
zoom: 1;
font-size: 30px;
}
label.selected {
font-weight: bold;
}
label:nth-child(1).selected {
color: rgb(253, 25, 153);
}
label:nth-child(2).selected {
color: rgb(255, 240, 1);
}
label:nth-child(3).selected {
color: #61dafb;
}
input[type="radio" i]:nth-child(1) {
margin-left: 0;
}
.chart {
width: 100%;
height: 100%;
}
.input {
padding: 16px;
font-size: 30px;
width: 100%;
display: block;
}
.input.sync {
outline-color: rgba(253, 25, 153, 0.1);
}
.input.debounced {
outline-color: rgba(255, 240, 1, 0.1);
}
.input.async {
outline-color: rgba(97, 218, 251, 0.1);
}
label {
font-size: 20px;
}
label label {
display: 'inline-block';
margin-left: 20px;
}
.row {
flex: 1;
display: flex;
margin-top: 20px;
min-height: 100%;
}
.column {
flex: 1;
}
.demo {
position: relative;
min-height: 100vh;
}
.stutterer {
transform: scale(1.5);
height: 310px;
width: 310px;
position: absolute;
left: 0;
right: 0;
top: -256px;
bottom: 0;
margin: auto;
box-shadow: 0 0 10px 10px rgba(0, 0, 0, 0.2);
border-radius: 200px;
}
.clockHand {
stroke: white;
stroke-width: 10px;
stroke-linecap: round;
}
.clockFace {
stroke: white;
stroke-width: 10px;
}
.arcHand {
}
.innerLine {
border-radius: 6px;
position: absolute;
height: 149px;
left: 47.5%;
top: 0%;
width: 5%;
background-color: red;
transform-origin: bottom center;
}

View File

@@ -1,146 +0,0 @@
import React, {PureComponent, unstable_startTransition} from 'react';
import {createRoot} from 'react-dom';
import _ from 'lodash';
import Charts from './Charts';
import Clock from './Clock';
import './index.css';
let cachedData = new Map();
class App extends PureComponent {
state = {
value: '',
strategy: 'sync',
showDemo: true,
showClock: false,
};
// Random data for the chart
getStreamData(input) {
if (cachedData.has(input)) {
return cachedData.get(input);
}
const multiplier = input.length !== 0 ? input.length : 1;
const complexity =
(parseInt(window.location.search.substring(1), 10) / 100) * 25 || 25;
const data = _.range(5).map(t =>
_.range(complexity * multiplier).map((j, i) => {
return {
x: j,
y: (t + 1) * _.random(0, 255),
};
})
);
cachedData.set(input, data);
return data;
}
componentDidMount() {
window.addEventListener('keydown', e => {
if (e.key.toLowerCase() === '?') {
e.preventDefault();
this.setState(state => ({
showClock: !state.showClock,
}));
}
});
}
handleChartClick = e => {
if (this.state.showDemo) {
if (e.shiftKey) {
this.setState({showDemo: false});
}
return;
}
if (this.state.strategy !== 'async') {
this.setState(state => ({
showDemo: !state.showDemo,
}));
return;
}
if (this._ignoreClick) {
return;
}
this._ignoreClick = true;
unstable_startTransition(() => {
this.setState({showDemo: true}, () => {
this._ignoreClick = false;
});
});
};
debouncedHandleChange = _.debounce(value => {
if (this.state.strategy === 'debounced') {
this.setState({value: value});
}
}, 1000);
renderOption(strategy, label) {
const {strategy: currentStrategy} = this.state;
return (
<label className={strategy === currentStrategy ? 'selected' : null}>
<input
type="radio"
checked={strategy === currentStrategy}
onChange={() => this.setState({strategy})}
/>
{label}
</label>
);
}
handleChange = e => {
const value = e.target.value;
const {strategy} = this.state;
switch (strategy) {
case 'sync':
this.setState({value});
break;
case 'debounced':
this.debouncedHandleChange(value);
break;
case 'async':
// TODO: useTransition hook instead.
unstable_startTransition(() => {
this.setState({value});
});
break;
default:
break;
}
};
render() {
const {showClock} = this.state;
const data = this.getStreamData(this.state.value);
return (
<div className="container">
<div className="rendering">
{this.renderOption('sync', 'Synchronous')}
{this.renderOption('debounced', 'Debounced')}
{this.renderOption('async', 'Concurrent')}
</div>
<input
className={'input ' + this.state.strategy}
placeholder="longer input → more components and DOM nodes"
defaultValue={this.state.input}
onChange={this.handleChange}
/>
<div className="demo" onClick={this.handleChartClick}>
{this.state.showDemo && (
<Charts data={data} onClick={this.handleChartClick} />
)}
<div style={{display: showClock ? 'block' : 'none'}}>
<Clock />
</div>
</div>
</div>
);
}
}
const container = document.getElementById('root');
const root = createRoot(container);
root.render(<App />);

File diff suppressed because it is too large Load Diff

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 14.9</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@0.14.9/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@0.14.9/dist/react-dom.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/14.9.html">http://localhost:3000/14.9.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 15.0</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@15.0/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15.0/dist/react-dom.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/15.0.html">http://localhost:3000/15.0.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 15.1</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@15.1/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15.1/dist/react-dom.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/15.1.html">http://localhost:3000/15.1.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 15.2</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@15.2/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15.2/dist/react-dom.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/15.2.html">http://localhost:3000/15.2.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 15.3</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@15.3/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15.3/dist/react-dom.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/15.3.html">http://localhost:3000/15.3.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 15.4</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@15.4/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15.4/dist/react-dom.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/15.4.html">http://localhost:3000/15.4.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 15.5</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@15.5/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15.5/dist/react-dom.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/15.5.html">http://localhost:3000/15.5.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 15.6</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@15.6/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15.6/dist/react-dom.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/15.6.html">http://localhost:3000/15.6.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 16.0</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@16.0/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16.0/umd/react-dom.development.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/16.0.html">http://localhost:3000/16.0.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 16.1</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@16.1/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16.1/umd/react-dom.development.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/16.1.html">http://localhost:3000/16.1.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 16.2</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@16.2/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16.2/umd/react-dom.development.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/16.2.html">http://localhost:3000/16.2.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 16.3</title>
<link rel="stylesheet" href="styles.css" />
<script type="text/javascript">
// Enable DevTools to inspect React inside of an <iframe>
// This must run before React is loaded
__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
</script>
<script src="https://unpkg.com/react@16.3/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16.3/umd/react-dom.development.js"></script>
<!-- Don't use this in production: -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">
If you are seeing this message, you are likely viewing this file using the <code>file</code> protocol which does not support cross origin requests.
<br/><br/>
Use the <code>server</code> script instead:
<br/><br/>
<code>node ./fixtures/devtools/regression/server.js</code><br/>
<code>open <a href="http://localhost:3000/16.3.html">http://localhost:3000/16.3.html</a></code>
</div>
<script src="shared.js" type="text/babel"></script>
<!--
This is a great way to try React but it's not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Learn more at https://reactjs.org/docs/getting-started.html
-->
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More