Replies: 8 comments 6 replies
|
We could take this proposal a step further (and address some concerns @markerikson has also raised e.g. the single event handler limitation of I'd need to do some research before coming up with a strict proposal, but I imagine this could provide additional benefits:
|
|
I really like this idea, and I'm happy to help however I can! |
|
PRs #6992 and #7026 are an initial exploration of what this new architecture might look like if we ran with some of the ideas mentioned in this thread. That PR is primarily focused on what the React integration should feel like (how would we write new components? how would we write tests?) and doesn't go too far in exploring the "protocol interface" but I think it's a good start. There are a few open questions or things to follow up on in the PR. I'll list them here too for visibility.
|
|
Pasting in a brief list of some of the things that have concerned me about the codebase as of late:
|
|
Tossed out a request for suggestions on tools/techniques to use for a caching layer on Twitter: |
|
This comment is an example of where our state seems to currently be structured particularly badly (lots of confusing redundancy): https://github.com/replayio/devtools/issues/7108#issuecomment-1151313917 |
|
I've put together another POC prototype. This one shows use of RTK Query to manage data fetching status (via wrapping our low-level protocol SDK), and some very basic use of plain JS data for displaying stack frames for a given I'd like to expand on this to try doing a few more things related to our current |
|
PR #7235 explores what a new Object Inspector (built with Suspense) could look like. |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
The frontend's "state" is currently split between several places:
Drawbacks
There are a couple of challenges with our current architecture:
ThreadFrontinstance, which fetches the initial set of messages for a recording, andProposal
This proposal does not aim to address all of the draw backs above, but I think we could simplify things a lot by revisiting the way we manage state.
First, I suggest we re-structure our state as shown in this Figma into three main categories:
useMemo)Here is a visual outline of what might go where:
I'm still exploring this idea but here are a few constraints I think we should aim for:
applyFocusRegion(focusRegion: FocusRegion | null): void) and typed event handler API for backend events (e.g. "console-messages" change event when console messages are updated).client,thread, orsocketpackages.useMemo) to compute derived values.All reactions