@@ -17,6 +17,7 @@ import {
1717 fetchDatasetVersions ,
1818 resetDataset ,
1919 resetDatasetVersions ,
20+ setTabIndex ,
2021} from '../../store/actionCreators'
2122import { useNavigate } from 'react-router-dom'
2223import CloseIcon from '@mui/icons-material/Close'
@@ -29,14 +30,16 @@ import MqStatus from '../core/status/MqStatus'
2930import MqText from '../core/text/MqText'
3031
3132import { useTheme } from '@emotion/react'
32- import React , { ChangeEvent , FunctionComponent , SetStateAction , useEffect } from 'react'
33+ import Io from '../io/Io'
34+ import React , { ChangeEvent , FunctionComponent , useEffect } from 'react'
3335
3436interface StateProps {
3537 lineageDataset : LineageDataset
3638 versions : DatasetVersion [ ]
3739 versionsLoading : boolean
3840 datasets : IState [ 'datasets' ]
3941 display : IState [ 'display' ]
42+ tabIndex : IState [ 'lineage' ] [ 'tabIndex' ]
4043}
4144
4245interface DispatchProps {
@@ -45,6 +48,7 @@ interface DispatchProps {
4548 resetDataset : typeof resetDataset
4649 deleteDataset : typeof deleteDataset
4750 dialogToggle : typeof dialogToggle
51+ setTabIndex : typeof setTabIndex
4852}
4953
5054type IProps = StateProps & DispatchProps
@@ -68,6 +72,8 @@ const DatasetDetailPage: FunctionComponent<IProps> = (props) => {
6872 versions,
6973 versionsLoading,
7074 lineageDataset,
75+ tabIndex,
76+ setTabIndex,
7177 } = props
7278 const navigate = useNavigate ( )
7379 const i18next = require ( 'i18next' )
@@ -92,9 +98,8 @@ const DatasetDetailPage: FunctionComponent<IProps> = (props) => {
9298 [ ]
9399 )
94100
95- const [ tab , setTab ] = React . useState ( 0 )
96- const handleChange = ( event : ChangeEvent , newValue : SetStateAction < number > ) => {
97- setTab ( newValue )
101+ const handleChange = ( _ : ChangeEvent , newValue : number ) => {
102+ setTabIndex ( newValue )
98103 }
99104
100105 if ( versionsLoading ) {
@@ -149,20 +154,26 @@ const DatasetDetailPage: FunctionComponent<IProps> = (props) => {
149154 ) }
150155 < Box display = { 'flex' } justifyContent = { 'space-between' } mb = { 2 } >
151156 < Box sx = { { borderBottom : 1 , borderColor : 'divider' } } >
152- < Tabs value = { tab } onChange = { handleChange } textColor = 'primary' indicatorColor = 'primary' >
157+ < Tabs
158+ value = { tabIndex }
159+ onChange = { handleChange }
160+ textColor = 'primary'
161+ indicatorColor = 'primary'
162+ >
153163 < Tab
154164 label = { i18next . t ( 'datasets.latest_tab' ) }
155165 { ...a11yProps ( 0 ) }
156166 disableRipple = { true }
157167 />
168+ < Tab label = { 'I/O' } { ...a11yProps ( 1 ) } disableRipple = { true } />
158169 < Tab
159170 label = { i18next . t ( 'datasets.history_tab' ) }
160- { ...a11yProps ( 1 ) }
171+ { ...a11yProps ( 2 ) }
161172 disableRipple = { true }
162173 />
163174 < Tab
164175 label = { i18next . t ( 'datasets.column_lineage_tab' ) }
165- { ...a11yProps ( 1 ) }
176+ { ...a11yProps ( 3 ) }
166177 disableRipple = { true }
167178 />
168179 </ Tabs >
@@ -214,15 +225,16 @@ const DatasetDetailPage: FunctionComponent<IProps> = (props) => {
214225 < MqText subdued > { description } </ MqText >
215226 </ Box >
216227 </ Box >
217- { tab === 0 && (
228+ { tabIndex === 0 && (
218229 < DatasetInfo
219230 datasetFields = { firstVersion . fields }
220231 facets = { firstVersion . facets }
221232 run = { firstVersion . createdByRun }
222233 />
223234 ) }
224- { tab === 1 && < DatasetVersions versions = { props . versions } /> }
225- { tab === 2 && < DatasetColumnLineage lineageDataset = { props . lineageDataset } /> }
235+ { tabIndex === 1 && < Io /> }
236+ { tabIndex === 2 && < DatasetVersions versions = { props . versions } /> }
237+ { tabIndex === 3 && < DatasetColumnLineage lineageDataset = { props . lineageDataset } /> }
226238 </ Box >
227239 )
228240}
@@ -232,6 +244,7 @@ const mapStateToProps = (state: IState) => ({
232244 display : state . display ,
233245 versions : state . datasetVersions . result . versions ,
234246 versionsLoading : state . datasetVersions . isLoading ,
247+ tabIndex : state . lineage . tabIndex ,
235248} )
236249
237250const mapDispatchToProps = ( dispatch : Redux . Dispatch ) =>
@@ -242,6 +255,7 @@ const mapDispatchToProps = (dispatch: Redux.Dispatch) =>
242255 resetDataset : resetDataset ,
243256 deleteDataset : deleteDataset ,
244257 dialogToggle : dialogToggle ,
258+ setTabIndex : setTabIndex ,
245259 } ,
246260 dispatch
247261 )
0 commit comments