@@ -11,10 +11,15 @@ import {
1111import React , {
1212 ComponentType ,
1313 CSSProperties ,
14+ FormEvent ,
15+ FormEventHandler ,
1416 PureComponent ,
17+ ReactEventHandler ,
18+ ReactNode ,
1519 StatelessComponent ,
1620} from 'react' ;
1721import Inspector , {
22+ NodeRendererProps ,
1823 ObjectLabel ,
1924 ObjectName ,
2025 ObjectRootLabel ,
@@ -51,7 +56,7 @@ const message$ = store.hal$.body$.map(({ payload, metadata, ...body }) => ({
5156 payload : tryParseJson ( payload ) ,
5257} ) ) ;
5358
54- interface StreamMessageState {
59+ interface StreamMessageState extends HalResource {
5560 message : {
5661 messageId : string ;
5762 createdUtc : string ;
@@ -67,6 +72,8 @@ interface StreamMessageState {
6772const state$ = createState < StreamMessageState > (
6873 message$ . map ( message => [ 'message' , ( ) => message ] ) ,
6974 obs . of < StreamMessageState > ( {
75+ _embedded : { } ,
76+ _links : { } ,
7077 message : {
7178 createdUtc : '' ,
7279 messageId : '' ,
@@ -127,10 +134,10 @@ const StreamMessageDetails: StatelessComponent<
127134 </ TableRow >
128135) ;
129136
130- const isPotentialStreamId = data =>
137+ const isPotentialStreamId = ( data : any ) =>
131138 typeof data === 'number' || typeof data === 'string' ;
132139
133- const getStreamLinks = ( { _embedded } ) : HalResource [ ] =>
140+ const getStreamLinks = ( { _embedded } : HalResource ) : HalResource [ ] =>
134141 _embedded [ rels . feed ] || [ ] ;
135142
136143interface StreamMessageJsonState {
@@ -167,10 +174,10 @@ const StreamMessageJson = withStyles(style)(class extends PureComponent<
167174 streams : [ ] ,
168175 } ;
169176
170- _handlePotentialStreamIdClick = async (
171- { currentTarget : anchorElement } ,
172- pattern ,
173- ) => {
177+ _handlePotentialStreamIdClick : (
178+ e : FormEvent ,
179+ pattern : string ,
180+ ) => Promise < void > = async ( { currentTarget : anchorElement } , pattern ) => {
174181 const { authorization, _links } = this . props ;
175182
176183 this . setState ( {
@@ -212,7 +219,13 @@ const StreamMessageJson = withStyles(style)(class extends PureComponent<
212219 open : false ,
213220 } ) ;
214221
215- _renderNode = ( { depth, name, data, path, isNonenumerable, ...props } ) =>
222+ _renderNode = ( {
223+ depth,
224+ name,
225+ data,
226+ isNonenumerable,
227+ ...props
228+ } : NodeRendererProps & { children ?: ReactNode } ) =>
216229 depth === 0 ? (
217230 < ObjectRootLabel name = { name } data = { { } } { ...props } />
218231 ) : isPotentialStreamId ( data ) ? (
@@ -282,7 +295,8 @@ class StreamMessageTabs extends PureComponent<
282295 value : 0 ,
283296 } ;
284297
285- _handleChange = ( e , value ) => this . setState ( { value } ) ;
298+ _handleChange : ( e : FormEvent , value : number ) => void = ( e , value ) =>
299+ this . setState ( { value } ) ;
286300
287301 render ( ) {
288302 const {
@@ -315,7 +329,7 @@ class StreamMessageTabs extends PureComponent<
315329 }
316330}
317331
318- const StreamMessage : StatelessComponent < StreamMessageState & HalResource > = ( {
332+ const StreamMessage : ComponentType < StreamMessageState & HalViewerProps > = ( {
319333 message,
320334 ...props
321335} ) => (
@@ -332,4 +346,6 @@ const StreamMessage: StatelessComponent<StreamMessageState & HalResource> = ({
332346 </ section >
333347) ;
334348
335- export default connect ( state$ ) ( StreamMessage ) as ComponentType < HalViewerProps > ;
349+ export default connect < HalViewerProps , StreamMessageState > ( state$ ) (
350+ StreamMessage ,
351+ ) ;
0 commit comments