import { EventClient } from '@tanstack/devtools-event-client' import { useState, useEffect } from 'react' import { store, fullName } from './demo-store' type EventMap = { 'store-devtools:state': { firstName: string lastName: string fullName: string } } class StoreDevtoolsEventClient extends EventClient { constructor() { super({ pluginId: 'store-devtools', }) } } const sdec = new StoreDevtoolsEventClient() store.subscribe(() => { sdec.emit('state', { firstName: store.state.firstName, lastName: store.state.lastName, fullName: fullName.state, }) }) function DevtoolPanel() { const [state, setState] = useState(() => ({ firstName: store.state.firstName, lastName: store.state.lastName, fullName: fullName.state, })) useEffect(() => { return sdec.on('state', (e) => setState(e.payload)) }, []) return (
First Name
{state?.firstName}
Last Name
{state?.lastName}
Full Name
{state?.fullName}
) } export default { name: 'TanStack Store', render: , }