UX-908: fix record expansion slowness on release-2.8#2265
UX-908: fix record expansion slowness on release-2.8#2265malinskibeniamin merged 4 commits intorelease-2.8from
Conversation
|
@claude review |
|
Claude finished @malinskibeniamin's task in 2m 41s —— View job Code Review
Overall this is a well-scoped performance fix. The approach is sound and the test coverage is good. A few items worth addressing:
|
|
Addressed the review follow-ups in 1dd9885: hoisted the read-only Monaco options, stabilized the mount callback, and expanded the regression coverage around relayouts and changed-message rerenders. |
| const onLoadLargeMessage = useCallback( | ||
| (targetTopicName: string, partitionID: number, offset: number) => | ||
| this.loadLargeMessage(targetTopicName, partitionID, offset), | ||
| [], | ||
| ); | ||
|
|
||
| const onSetDownloadMessages = useCallback((messages: TopicMessage[]) => { | ||
| this.downloadMessages = messages; | ||
| }, []); |
There was a problem hiding this comment.
nit: no need for useCallback if no dependencies?
|
@claude review all recent comments on this PR |
|
Claude finished @malinskibeniamin's task in 45s —— View job Review of recent comments
@eblairmckee's nit —
|
What
Optimize topic message expansion for object/protobuf payloads without replacing Monaco.
Why
On
release-2.8, expanding the 2nd+ protobuf/object message can become progressively slower because each expanded row mounts a full Monaco viewer and the table still does extra work on rerenders. We want the read-only message viewer path to stay on Monaco while removing avoidable layout and React overhead.How
KowlJsonView, but disableautomaticLayoutand other edit-only features for this read-only JSON viewerExpandedMessageand move row-specific callbacks inside it so stable parent props can skip rerenderskeyJson/valueJsonfor object previews instead of re-runningJSON.stringify(...)in renderAcceptance Criteria
Testing Steps
cd frontend && ./node_modules/.bin/vitest run src/components/misc/KowlJsonView.test.tsx src/components/pages/topics/Tab.Messages/index.test.tsxrelease-2.8