11// Libraries
2- import React , { PureComponent } from 'react'
2+ import React , { FC , useContext } from 'react'
33import { connect , ConnectedProps } from 'react-redux'
4- import { get } from 'lodash'
54import { withRouter , RouteComponentProps } from 'react-router-dom'
65
76// Components
8- import { ErrorHandling } from 'src/shared/decorators/errors'
97import { Overlay } from '@influxdata/clockface'
108import TelegrafInstructions from 'src/dataLoaders/components/verifyStep/TelegrafInstructions'
119import GetResources from 'src/resources/components/GetResources'
@@ -17,64 +15,53 @@ import {Telegraf, AppState, ResourceType} from 'src/types'
1715import { getAll , getToken } from 'src/resources/selectors'
1816import { clearDataLoaders } from 'src/dataLoaders/actions/dataLoaders'
1917
18+ // Contexts
19+ import { OverlayContext } from 'src/overlays/components/OverlayController'
20+
21+ interface OwnProps {
22+ onClose : ( ) => void
23+ }
24+
2025type ReduxProps = ConnectedProps < typeof connector >
21- type Props = ReduxProps & RouteComponentProps < { orgID : string ; id : string } >
26+ type Props = OwnProps &
27+ ReduxProps &
28+ RouteComponentProps < { orgID : string ; id : string } >
2229
23- @ErrorHandling
24- export class TelegrafInstructionsOverlay extends PureComponent < Props > {
25- public render ( ) {
26- const { token} = this . props
27- return (
28- < Overlay visible = { true } >
29- < Overlay . Container maxWidth = { 700 } >
30- < Overlay . Header
31- title = "Telegraf Setup Instructions"
32- onDismiss = { this . handleDismiss }
33- />
34- < Overlay . Body >
35- < GetResources resources = { [ ResourceType . Authorizations ] } >
36- < TelegrafInstructions
37- token = { token }
38- configID = { get ( this . collector , 'id' , '' ) }
39- />
40- </ GetResources >
41- </ Overlay . Body >
42- </ Overlay . Container >
43- </ Overlay >
44- )
45- }
30+ const TelegrafInstructionsOverlay : FC < Props > = props => {
31+ const { token} = props
32+ const { params} = useContext ( OverlayContext )
4633
47- private get collector ( ) {
48- const {
49- match : {
50- params : { id} ,
51- } ,
52- collectors,
53- } = this . props
54- return collectors . find ( c => c . id === id )
34+ const collector = ( ) => {
35+ const { collectors} = props
36+ const collector = collectors . find ( c => c . id === params . collectorId )
37+ return collector . id || ''
5538 }
5639
57- private handleDismiss = ( ) : void => {
58- const {
59- history,
60- match : {
61- params : { orgID} ,
62- } ,
63- onClearDataLoaders,
64- } = this . props
65- this . setState ( {
66- collectorID : null ,
67- } )
40+ const handleDismiss = ( ) : void => {
41+ const { onClearDataLoaders, onClose} = props
6842 onClearDataLoaders ( )
69- history . push ( `/orgs/ ${ orgID } /load-data/telegrafs/` )
43+ onClose ( )
7044 }
45+
46+ return (
47+ < Overlay . Container maxWidth = { 700 } >
48+ < Overlay . Header
49+ title = "Telegraf Setup Instructions"
50+ onDismiss = { handleDismiss }
51+ />
52+ < Overlay . Body >
53+ < GetResources resources = { [ ResourceType . Authorizations ] } >
54+ < TelegrafInstructions token = { token } configID = { collector ( ) } />
55+ </ GetResources >
56+ </ Overlay . Body >
57+ </ Overlay . Container >
58+ )
7159}
7260
7361const mstp = ( state : AppState ) => {
7462 const {
7563 me : { name} ,
7664 } = state
77-
7865 const token = getToken ( state )
7966 const telegrafs = getAll < Telegraf > ( state , ResourceType . Telegrafs )
8067
0 commit comments