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:
|
Beta Was this translation helpful? Give feedback.
-
I really like this idea, and I'm happy to help however I can! |
Beta Was this translation helpful? Give feedback.
-
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.
|
Beta Was this translation helpful? Give feedback.
-
Pasting in a brief list of some of the things that have concerned me about the codebase as of late:
|
Beta Was this translation helpful? Give feedback.
-
Tossed out a request for suggestions on tools/techniques to use for a caching layer on Twitter: |
Beta Was this translation helpful? Give feedback.
-
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 |
Beta Was this translation helpful? Give feedback.
-
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 |
Beta Was this translation helpful? Give feedback.
-
PR #7235 explores what a new Object Inspector (built with Suspense) could look like. |
Beta Was this translation helpful? Give feedback.
-
The frontend's "state" is currently split between several places:
Drawbacks
There are a couple of challenges with our current architecture:
ThreadFront
instance, 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
, orsocket
packages.useMemo
) to compute derived values.Beta Was this translation helpful? Give feedback.
All reactions