diff --git a/x-pack/plugins/code/public/components/admin_page/setup_guide.tsx b/x-pack/plugins/code/public/components/admin_page/setup_guide.tsx index 4b9fd2fc8580d..9e856503b6577 100644 --- a/x-pack/plugins/code/public/components/admin_page/setup_guide.tsx +++ b/x-pack/plugins/code/public/components/admin_page/setup_guide.tsx @@ -15,8 +15,10 @@ import { } from '@elastic/eui'; import theme from '@elastic/eui/dist/eui_theme_light.json'; import React from 'react'; +import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; import styled from 'styled-components'; +import { RootState } from '../../reducers'; const Root = styled.div` padding: ${theme.euiSizeXxl} 0; @@ -93,12 +95,12 @@ const steps = [ }, ]; -export const SetupGuide = (props: { setupFailed?: boolean }) => { +const SetupGuidePage = (props: { setupOk?: boolean }) => { let setup = null; - if (props.setupFailed !== undefined) { + if (props.setupOk !== undefined) { setup = ( - {props.setupFailed && ( + {props.setupOk === false && (

Please follow the guide below to configure your Kibana instance and then refresh this @@ -106,7 +108,7 @@ export const SetupGuide = (props: { setupFailed?: boolean }) => {

)} - {props.setupFailed === false && ( + {props.setupOk === true && ( Back To Project Dashboard @@ -124,3 +126,8 @@ export const SetupGuide = (props: { setupFailed?: boolean }) => { return {setup}; }; +const mapStateToProps = (state: RootState) => ({ + setupOk: state.setup.ok, +}); + +export const SetupGuide = connect(mapStateToProps)(SetupGuidePage); diff --git a/x-pack/plugins/code/public/components/app.tsx b/x-pack/plugins/code/public/components/app.tsx index e033123cb0d8a..a000442629ec5 100644 --- a/x-pack/plugins/code/public/components/app.tsx +++ b/x-pack/plugins/code/public/components/app.tsx @@ -20,7 +20,7 @@ import { Search } from './search_page/search'; const Empty = () => null; -const RooComponent = (props: { setupOk: boolean }) => { +const RooComponent = (props: { setupOk?: boolean }) => { if (props.setupOk) { return ; } @@ -44,7 +44,7 @@ export const App = () => { - } exact={true} /> + diff --git a/x-pack/plugins/code/public/components/routes.ts b/x-pack/plugins/code/public/components/routes.ts index 53dab535268c8..873e1b7f5e30a 100644 --- a/x-pack/plugins/code/public/components/routes.ts +++ b/x-pack/plugins/code/public/components/routes.ts @@ -7,6 +7,7 @@ import { PathTypes } from '../common/types'; export const ROOT = '/'; +export const SETUP = '/setup-guide'; const pathTypes = `:pathType(${PathTypes.blob}|${PathTypes.tree}|${PathTypes.blame}|${ PathTypes.commits })`; diff --git a/x-pack/plugins/code/public/reducers/setup.ts b/x-pack/plugins/code/public/reducers/setup.ts index 551ab09573b9c..7d4d3ca7d39af 100644 --- a/x-pack/plugins/code/public/reducers/setup.ts +++ b/x-pack/plugins/code/public/reducers/setup.ts @@ -10,12 +10,10 @@ import { handleActions } from 'redux-actions'; import { checkSetupFailed, checkSetupSuccess } from '../actions'; export interface SetupState { - ok: boolean; + ok?: boolean; } -const initialState: SetupState = { - ok: false, -}; +const initialState: SetupState = {}; export const setup = handleActions( { diff --git a/x-pack/plugins/code/public/sagas/patterns.ts b/x-pack/plugins/code/public/sagas/patterns.ts index e35faf78fc411..53a007491f5d1 100644 --- a/x-pack/plugins/code/public/sagas/patterns.ts +++ b/x-pack/plugins/code/public/sagas/patterns.ts @@ -11,6 +11,7 @@ import * as ROUTES from '../components/routes'; export const generatePattern = (path: string) => (action: Action) => action.type === String(routeChange) && action.payload!.path === path; export const rootRoutePattern = generatePattern(ROUTES.ROOT); +export const setupRoutePattern = generatePattern(ROUTES.SETUP); export const adminRoutePattern = generatePattern(ROUTES.ADMIN); export const repoRoutePattern = generatePattern(ROUTES.REPO); export const mainRoutePattern = (action: Action) => diff --git a/x-pack/plugins/code/public/sagas/setup.ts b/x-pack/plugins/code/public/sagas/setup.ts index ea521665b95c2..4fcd7e7c9b594 100644 --- a/x-pack/plugins/code/public/sagas/setup.ts +++ b/x-pack/plugins/code/public/sagas/setup.ts @@ -7,7 +7,7 @@ import { call, put, takeEvery } from 'redux-saga/effects'; import { kfetch } from 'ui/kfetch'; import { checkSetupFailed, checkSetupSuccess } from '../actions'; -import { rootRoutePattern } from './patterns'; +import { rootRoutePattern, setupRoutePattern } from './patterns'; function* handleRootRoute() { try { @@ -24,4 +24,5 @@ function requestSetup() { export function* watchRootRoute() { yield takeEvery(rootRoutePattern, handleRootRoute); + yield takeEvery(setupRoutePattern, handleRootRoute); }