Skip to content

Commit 6bf4b71

Browse files
authored
Merge pull request #309 from oslabs-beta/main
Merging Main from v18 into Master of OSLabs branch
2 parents 9f391b8 + f0ee619 commit 6bf4b71

10 files changed

+90
-68
lines changed

CONTRIBUTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ To get an overview of the project, read the [README](README.md). Here are some r
1616

1717
## Getting started
1818

19-
To navigate our codebase with confidence, see the Developer READMEs [Developer Installation](/DeveloperREADME.md) and [Developer Guidelines](/src/README.md) :confetti_ball:.
19+
To navigate our codebase with confidence, see the [Developer Guidelines](/src/README.md) :confetti_ball:.
2020

2121
### Issues
2222

DeveloperREADME.md

-46
This file was deleted.

README.fr.md

+6
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545

4646
Actuellement, Reactime est compatible avec les applications React qui utilisent des composants à état (stateful) et Hooks, avec un support en version bêta de Recoil et de pour le Context API.
4747

48+
<b>Reactime 18.0</b> introduit une gamme de fonctionnalités nouvelles et améliorées visant à optimiser les performances et à améliorer la compatibilité. Avec le support de Next.js et de Remix, une couverture de test accrue (93% backend, le frontend a encore besoin de plus de tests), ainsi que des améliorations structurelles de la base de code. De plus, nous sommes fiers d'annoncer le lancement de notre site web récemment redessiné, qui sert de centre pour les dernières mises à jour et informations sur Reactime. Pour aider à la débogage, nous avons inclus des applications de démonstration pour Next.js et Remix, permettant aux futurs itérateurs de tester et dépanner avec plus de facilité et d'efficacité.
49+
4850
<b>Reactime version 7.0</b> beta peut vous aider à éviter les ré-rendus inutiles. Identifier les rendus inutiles dans vos applications React est le point de départ idéal pour identifier la plupart des problèmes de performances.
4951
La version beta 7.0 de Reactime corrige les bugs des anciennes versions et intègre des visualisations améliorées pour les relations entre les composants.
5052
Reactime 7.0 inclut également une documentation [typedoc](https://typedoc.org/api/) plus approfondie pour les développeurs souhaitant contribuer au code source.
@@ -196,6 +198,10 @@ Après avoir cloné ce référentiel, les développeurs peuvent simplement exéc
196198
- **Kristina Wallen** - [@kristinawallen](https://github.com./kristinawallen)
197199
- **Quan Le** - [@blachfog](https://github.com./Blachfog)
198200
- **Robert Maeda** - [@robmaeda](https://github.com./robmaeda)
201+
- **Lance Ziegler** - [@lanceziegler](https://github.com./lanceziegler)
202+
- **Ngoc Zwolinski** - [@ngoczwolinski](https://github.com./ngoczwolinski)
203+
- **Peter Lam** - [@dev-plam](https://github.com./dev-plam)
204+
- **Zachary Freeman** - [@zacharydfreeman](https://github.com./zacharydfreeman/)
199205

200206
## <b>License </b>
201207

README.md

+22-13
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
<h5 align="center">
3232
<br>
33-
<a href="./README.rus.md">🇷🇺 &nbsp; РУССКАЯ ВЕРСИЯ</a> &nbsp;&nbsp; <a href="./README.fr.md">🇫🇷 &nbsp; VERSION FRANÇAISE</a> &nbsp;&nbsp; <a href='/DeveloperREADME.md'>DEVELOPER INSTALL</a> &nbsp;&nbsp; <a href='./src/README.md'>DEVELOPER README</a>
33+
<a href="./README.rus.md">🇷🇺 &nbsp; РУССКАЯ ВЕРСИЯ</a> &nbsp;&nbsp; <a href="./README.fr.md">🇫🇷 &nbsp; VERSION FRANÇAISE</a> &nbsp;&nbsp; <a href='./src/README.md'>DEVELOPER README</a>
3434
<br>
3535
</h5>
3636
<br>
@@ -40,9 +40,15 @@
4040
</p>
4141

4242
<p align="center">
43-
<a href="#how-to-use">How To Use</a> • <a href="#features">Features</a> • <a href="https://reactime.dev">Website</a> • <a href="#read-more">Read More</a>
43+
<a href="#how-to-use">How To Use</a> • <a href="#features">Features</a> • <a href="https://www.reacti.me/">Website</a> • <a href="#read-more">Read More</a>
4444
</p>
4545

46+
<b>Reactime 18.0</b> introduces a range of new and improved features aimed at optimizing performance and enhancing compatibility.
47+
With support for Next.js and Remix, increased testing coverage(93% backend, frontend needs more), and structural improvements to the codebase.
48+
Additionally, we are proud to announce the launch of our newly redesigned website, which serves as a hub for the latest updates and information about Reactime.
49+
To aid with debugging, we have included demo applications for Next.js and Remix, enabling future iterators to test and troubleshoot with greater ease and efficiency.
50+
51+
4652
<b>Reactime 17.0</b>
4753
We are pleased to announce the release of Reactime 17.0,
4854
which includes several new and improved features. Context API support has now been added.
@@ -128,10 +134,8 @@ locally.
128134
### Looking to contribute to Reactime?
129135

130136
<i>Please refer to Developer Install for a detailed guide:</i>
131-
<a href='/DeveloperREADME.md'>Developer Install</a>
132137

133-
After you finish the Develpoer Install, checkout
134-
[the developer README](src/README.md) for more info on the project, and
138+
Refer [DEVELOPER README](src/README.md) for more info on the project, and
135139
instructions on building from source.
136140

137141
## <b>How to Use</b>
@@ -156,7 +160,7 @@ clicking the right mouse button “Reload frame”.
156160
### ❓ <b>I found a bug in Reactime</b>
157161

158162
Reactime is an open source project, and we’d really appreciate your help with
159-
improving user experience. Please read [the developer README](src/README.md),
163+
improving user experience. Please read [DEVELOPER README](src/README.md),
160164
and create a pull request (or issue) to propose and collaborate on changes to a
161165
repository.
162166

@@ -247,6 +251,12 @@ Reactime offers debugging and performance tools for Next.js apps: time-traveling
247251
debugging, preventing unnecessary components re-renders and making your
248252
application faster.
249253

254+
### 🔹 Remix
255+
256+
Reactime offers debugging and performance tools for Remix apps (in beta). Support still
257+
needs to be added for multi-route time traveling. Every other feature works.
258+
259+
250260
### 🔹 TypeScript Support
251261

252262
Reactime offers support for TypeScript applications using stateful class
@@ -278,24 +288,19 @@ of the structure and interfaces of the codebase.
278288
- Declarative titles in the actions sidebar
279289
- Interative Tutorial Walkthrough
280290
- Toggle feature allowing temporary pause of state monitoring
281-
- Updated frontend diagram:
282291

283-
<p align="center">
284-
<img src="./assets/frontend-diagram.png" />
285292

286293
### <b>Bug Fixes</b>
287-
288294
- Search bar now searches for specific nodes successfully
289295
- Tab titles of chrome browser tabs not running an application in development
290296
mode are no longer affected by Reactime
291-
- Multiple black screens fixed
297+
- Overhauled Asynchronous calls to eliminate memory leaks due to unused async activities in the background.
292298
- Improved UI and performance
293-
- No longer inject scripts to non-target applications
294299

295300
## <b>Read More</b>
301+
- [Reactime 18.0. Better than ever](https://medium.com/@zdf2424/reactime-18-0-better-than-ever-148b81606257)
296302
- [Reactime v17.0.0: Now with support for the Context API, and a modern UI](https://medium.com/@reactime/reactime-v17-0-0-now-with-support-for-the-context-api-and-a-modern-ui-f0edf9e54dae)
297303
- [Reactime XVI: Clean-up Time](https://medium.com/@emintahirov1996/reactime-xvi-cleanup-time-a14ba3dcc8a6)
298-
- [Reactime XVI: Clean-up Time](https://medium.com/@emintahirov1996/reactime-xvi-cleanup-time-a14ba3dcc8a6)
299304
- [Inter-Route Time Travel with Reactime](https://medium.com/@robbytiptontol/inter-route-time-travel-with-reactime-d84cd55ec73b)
300305
- [Time-Travel State with Reactime](https://medium.com/better-programming/time-traveling-state-with-reactime-6-0-53fdc3ae2a20)
301306
- [React Fiber and Reactime](https://medium.com/@aquinojardim/react-fiber-reactime-4-0-f200f02e7fa8)
@@ -381,6 +386,10 @@ of the structure and interfaces of the codebase.
381386
- **Kristina Wallen** - [@kristinawallen](https://github.com./kristinawallen)
382387
- **Quan Le** - [@blachfog](https://github.com./Blachfog)
383388
- **Robert Maeda** - [@robmaeda](https://github.com./robmaeda)
389+
- **Lance Ziegler** - [@lanceziegler](https://github.com./lanceziegler)
390+
- **Ngoc Zwolinski** - [@ngoczwolinski](https://github.com./ngoczwolinski)
391+
- **Peter Lam** - [@dev-plam](https://github.com./dev-plam)
392+
- **Zachary Freeman** - [@zacharydfreeman](https://github.com./zacharydfreeman/)
384393

385394
## <b>License </b>
386395

README.rus.md

+9
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@
2222
<img src="./assets/new-reactime.gif" />
2323
</p>
2424

25+
<b>Reactime 18.0</b> вводит ряд новых и улучшенных функций, направленных на оптимизацию производительности и улучшение совместимости.
26+
С поддержкой Next.js и Remix, увеличенной покрытия тестов (93% на бэкенде, необходимо больше на фронтенде) и структурных улучшений в кодовой базе.
27+
Кроме того, мы гордимся анонсом запуска нашего вновь переработанного веб-сайта, который служит центром для последних обновлений и информации о Reactime.
28+
Для помощи в отладке мы включили демонстрационные приложения для Next.js и Remix, что позволяет будущим итераторам тестировать и устранять ошибки с большей легкостью и эффективностью.
29+
2530
<b>Reactime</b> - расширение для дебаггинга/отладки React приложений. Оно создает снэпшоты при каждом изменении состояния (state) и позволяет пользованию прыгать на любое предыдущее состояние (state). 
2631
В настоящее время Reactime поддерживает React приложения с классовыми, функциональными компонентами, хуками и Context API.
2732

@@ -171,6 +176,10 @@ Reactime beta поддерживает приложения, написанны
171176
- **Kristina Wallen** - [@kristinawallen](https://github.com./kristinawallen)
172177
- **Quan Le** - [@blachfog](https://github.com./Blachfog)
173178
- **Robert Maeda** - [@robmaeda](https://github.com./robmaeda)
179+
- **Lance Ziegler** - [@lanceziegler](https://github.com./lanceziegler)
180+
- **Ngoc Zwolinski** - [@ngoczwolinski](https://github.com./ngoczwolinski)
181+
- **Peter Lam** - [@dev-plam](https://github.com./dev-plam)
182+
- **Zachary Freeman** - [@zacharydfreeman](https://github.com./zacharydfreeman/)
174183

175184
## <b>License </b>
176185

assets/backend-recordSnapshot.png

367 KB
Loading

assets/backend-timeTravel.png

394 KB
Loading
File renamed without changes.

demo-app/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "",
55
"main": "index.js",
66
"scripts": {
7-
"start": "webpack-dev-server",
7+
"dev": "webpack-dev-server",
88
"test": "echo \"Error: no test specified\" && exit 1"
99
},
1010
"devDependencies": {

src/README.md

+51-7
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,48 @@ Our mission at Reactime is to maintain and iterate constantly, but never at the
66

77
## Building from source
88

9-
1. If you have already installed Reactime from the Chrome Web Store, disable or uninstall it.
10-
2. Run `yarn` to install all dependencies.
11-
3. Run `yarn dev`. This will start a `webpack` process which watches for file changes and whenever it sees some, automatically rebuilds the webpack bundles used by the extension.
9+
1. [Download]("https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en") React Dev Tools from the Chrome Webstore Here
10+
11+
2. Clone down the Reactime repo onto your machine.
12+
13+
```
14+
git clone https://github.com./open-source-labs/reactime.git
15+
```
16+
17+
3. Install dependencies and build.
18+
19+
```
20+
cd reactime
21+
npm install --force
22+
npm run dev
23+
```
24+
With release of Node v18.12.1 (LTS) on 11/4/22, the script has been updated to 'npm run dev' || 'npm run build' for backwards compatibility.<br/>
25+
For version Node v16.16.0, please use script 'npm run devlegacy' || 'npm run buildlegacy'
26+
27+
4. Spin up the demo application.
28+
29+
```
30+
cd demo-app
31+
npm install
32+
npm run dev
33+
```
34+
Similar approach for Next.js and Remix demo apps
35+
36+
5. Add Reactime to your Chrome extensions.
37+
38+
- Navigate to chrome://extensions
39+
- Select “Load Unpacked”
40+
- Choose reactime > src > extension > build
41+
- Navigate to http://localhost:8080/ to inspect the demo application using Reactime!
42+
<br>
43+
44+
<p align="center">
45+
<img src="./assets/reactime-dev-setup.gif" />
46+
</p>
47+
48+
<h2>Documentation for Consideration</h2>
49+
<h4>Can Reactime be integrated with Redux compatibility so applications using Redux can track state in Reactime?</h4>
50+
Yes, but it would be very time-consuming and not the most feasible option while Redux devtools exists already. With how Redux devtools is currently set up, a developer is unable to use Redux devtools as a third-party user and integrate its functionality into their own application, as Redux devtools is meant to be used directly on an application using Redux for state-tracking purposes. Since the devtools do not appear to have a public API for integrated use in an application or it simply does not exist, Redux devtools would need to be rebuilt from the ground up and then integrated into Reactime, or built into Reactime directly still from scratch.
1251
4. Go to `chrome://extensions`
1352
5. Ensure Developer mode is enabled
1453
6. Click `Load unpacked`
@@ -48,15 +87,15 @@ src/
4887
│   ├── createComponentActionsRecord.ts # Update the componentActionsRecord with new bound state-update methods
4988
│   ├── createTree.ts # Construct a tree snapshot from the FiberRoot tree given by ReactFiber.
5089
│   ├── statePropExtractor.ts # Helper functions to extract & format prop, state, and context data
51-
│   ├── throttle.ts #
90+
│   ├── throttle.ts #
5291
│   ├── timeJump.ts # Rerenders DOM based on snapshot from background script
5392
│   ├── models/
5493
│   ├── filterConditions.ts #
5594
│   ├── masterState.ts # Component action record interface
5695
│   ├── routes.ts # Interfaces with the browser history stack
5796
│   ├── tree.ts # Custom structure to send to background
5897
│   ├── routers/
59-
│   ├── linkFiber.ts # Check for all requirement to start Reactime and
98+
│   ├── linkFiber.ts # Check for all requirement to start Reactime and
6099
│   ├── snapShot.ts #
61100
│   ├── types/ # Typescript interfaces
62101
│   ├── index.ts # Starting point for backend functionality
@@ -80,15 +119,17 @@ src/
80119
2. The _backend_ folder contains the set of all scripts that we inject into our "target" application via `background.js`
81120
- In Reactime, its main role is to generate data and handle time-jump requests from the background script in our _extension_ folder.
82121

83-
![BACKEND DATA FLOW](../assets/backend.png)
122+
![BACKEND RECORD SNAPSHOT DATA FLOW](../assets/backend-recordSnapshot.png)
123+
124+
![BACKEND TIME TRAVEL DATA FLOW](../assets/backend-timeTravel.png)
84125

85126
3. The _extension_ folder is where the `contentScript.js` and `background.js` are located.
86127
- Like regular web apps, Chrome Extensions are event-based. The background script is where one typically monitors for browser triggers (e.g. events like closing a tab, for example). The content script is what allows us to read or write to our target web application, usually as a result of [messages passed](https://developer.chrome.com/extensions/messaging) from the background script.
87128
- These two files help us handle requests both from the web browser and from the Reactime extension itself
88129

89130
## Diagramming
90131

91-
All the diagrams of data flows are avaliable on [MIRO](https://miro.com/app/board/o9J_lejUqLQ=/)
132+
All the diagrams of data flows are avaliable on [MIRO](https://miro.com/app/board/uXjVPictrsM=/)
92133

93134
## Data Flow Architecture
94135

@@ -103,6 +144,9 @@ The general flow of data is described in the following steps:
103144
3. Likewise, when Reactime emits an action due to user interaction -- a "jump" request for example -- a message will be passed from Reactime via the background script to the content script. Then, the content script will pass a message to the target application containing a payload that represents the state the user wants the DOM to reflect or "jump" to.
104145
- One important thing to note here is that this jump action must be dispatched in the target application (i.e. _backend_ land), because only there do we have direct access to the DOM.
105146

147+
## Reacti.me Website:
148+
See [Reacti.me README](https://github.com./reactimetravel/reactime-website/blob/main/README.md) for instruction of how to update the website
149+
106150
## Console.log
107151

108152
Navigation between different console.log panels can be confusing when running Reactime. We created a short instruction where you can find the results for your console.log

0 commit comments

Comments
 (0)