-
Notifications
You must be signed in to change notification settings - Fork 0
feat: implement state action items in timeline #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
joshuayoes
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking pretty good! I tested this using the example reactotron app and I'm seeing the actions coming through, but I'm not seeing the type property show up. Not a huge deal but I think we may want to figure that out.
Manual Test Steps
reactotron-macos setup
gh pr checkout 49npm installnpm run podnpm run startnpm run macosnode -e "require('./standalone-server').startReactotronServer({ port: 9292 })"
reactotron example app setup
yarn install
Add Reactotron standalone server port to example app configuration
diff --git a/apps/example-app/app/devtools/ReactotronConfig.ts b/apps/example-app/app/devtools/ReactotronConfig.ts
index a5c7d5b6..9b9c1dad 100644
--- a/apps/example-app/app/devtools/ReactotronConfig.ts
+++ b/apps/example-app/app/devtools/ReactotronConfig.ts
@@ -18,6 +18,7 @@ import { Reactotron } from "./ReactotronClient"
const reactotron = Reactotron.configure({
name: require("../../package.json").name,
+ port: 9292,
onConnect: () => {
/** since this file gets hot reloaded, let's clear the past logs every time we connect */
Reactotron.clear()
yarn workspace example-app start- Start on a different port to avoid conflicting with reactotron-macos
- Press
ito launch in iOS simulator - Consider
Cmd + Shift + Rto reload reactotron-macos to get connection - Tap "State Management: MST" in iOS Simulator
- Click "Reactotron" in iOS Simulator
- See "ACTION" timeline log in reactotron-macos
app/components/DetailPanel.tsx
Outdated
| return ( | ||
| <View style={$detailContent()}> | ||
| <DetailSection title="Type"> | ||
| <Text>{action.type}</Text> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
request: in my testing using the reactotron example app, I'm not seeing the type string come through 🤔
Screen.Recording.2025-10-06.at.12.29.49.PM.mov
joshuayoes
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Overview
This PR implements support for displaying Redux state action items in the Reactotron timeline, providing developers with better visibility into state management actions.
Changes Made
New Components
Updated Components
Type System Updates
TimelineItemStateActionCompletetype definitionTimelineItemunion type to include state action itemsStateActionCompletePayloadfrom reactotron-core-contractFeatures
✅ Timeline Integration: State action items now appear in the timeline alongside logs, network requests, and display items
✅ Detail Panel Support: Clicking on a state action item shows detailed information including:
✅ Filtering: State action items are included in the logs filter and appear in the all items view
✅ Consistent UI: State action items follow the same visual pattern as other timeline items with:
Technical Details
CommandType.StateActionCompletefrom reactotron-core-contractStateActionCompletePayloadfor type safetyTesting
Screenshots
State action items will appear in the timeline with "ACTION" title and the action name as preview text. The detail panel will show the action type and payload in a structured tree view.
Breaking Changes
None - this is purely additive functionality.
Related Issues
Implements support for Redux state action tracking in Reactotron timeline.