TrialsDetail.tsx 4.22 KB
Newer Older
Lijiao's avatar
Lijiao committed
1
import * as React from 'react';
2
import { Stack, Pivot, PivotItem } from '@fluentui/react';
3
import { EXPERIMENT, TRIALS } from '../static/datamodel';
4
import { AppContext } from '../App';
5
import DefaultPoint from './trial-detail/DefaultMetricPoint';
Lijiao's avatar
Lijiao committed
6
7
import Duration from './trial-detail/Duration';
import Para from './trial-detail/Para';
8
import Intermediate from './trial-detail/Intermediate';
Lijiao's avatar
Lijiao committed
9
import TableList from './trial-detail/TableList';
10
import '../static/style/search.scss';
Lijiao's avatar
Lijiao committed
11
12

interface TrialDetailState {
13
    whichChart: string;
Lijiao's avatar
Lijiao committed
14
15
}

16
17
class TrialsDetail extends React.Component<{}, TrialDetailState> {
    static contextType = AppContext;
18
    context!: React.ContextType<typeof AppContext>;
Lijiao's avatar
Lijiao committed
19
    public interAccuracy = 0;
20
    public interAllTableList = 2;
21

22
23
    public tableList!: TableList | null;
    public searchInput!: HTMLInputElement | null;
24

25
    constructor(props) {
Lijiao's avatar
Lijiao committed
26
27
        super(props);
        this.state = {
28
            whichChart: 'Default metric'
Lijiao's avatar
Lijiao committed
29
30
31
        };
    }

32
    handleWhichTabs = (item: any): void => {
33
        this.setState({ whichChart: item.props.headerText });
34
    };
35

Lijiao's avatar
Lijiao committed
36
    render(): React.ReactNode {
37
38
39
        const { whichChart } = this.state;
        const source = TRIALS.toArray();
        const trialIds = TRIALS.toArray().map(trial => trial.id);
40

Lijiao's avatar
Lijiao committed
41
        return (
42
            <AppContext.Consumer>
43
                {(_value): React.ReactNode => (
44
                    <React.Fragment>
45
46
47
                        <div className='trial' id='tabsty'>
                            <Pivot
                                defaultSelectedKey={'0'}
a1trl9's avatar
a1trl9 committed
48
                                className='detail-title'
49
50
51
                                onLinkClick={this.handleWhichTabs}
                                selectedKey={whichChart}
                            >
52
                                {/* <PivotItem tab={this.titleOfacc} key="1"> doesn't work*/}
53
54
                                <PivotItem headerText='Default metric' itemIcon='HomeGroup' key='Default metric'>
                                    <Stack className='graph'>
55
56
57
58
59
60
                                        <DefaultPoint
                                            trialIds={trialIds}
                                            hasBestCurve={true}
                                            chartHeight={402}
                                            changeExpandRowIDs={_value.changeExpandRowIDs}
                                        />
61
62
63
                                    </Stack>
                                </PivotItem>
                                {/* <PivotItem tab={this.titleOfhyper} key="2"> */}
64
65
                                <PivotItem headerText='Hyper-parameter' itemIcon='Equalizer' key='Hyper-parameter'>
                                    <Stack className='graph'>
66
                                        <Para trials={source} searchSpace={EXPERIMENT.searchSpaceNew} />
67
68
69
                                    </Stack>
                                </PivotItem>
                                {/* <PivotItem tab={this.titleOfDuration} key="3"> */}
70
                                <PivotItem headerText='Duration' itemIcon='BarChartHorizontal' key='Duration'>
71
                                    <Duration source={source} />
72
73
                                </PivotItem>
                                {/* <PivotItem tab={this.titleOfIntermediate} key="4"> */}
74
75
76
77
78
                                <PivotItem
                                    headerText='Intermediate result'
                                    itemIcon='StackedLineChart'
                                    key='Intermediate result'
                                >
79
                                    {/* *why this graph has small footprint? */}
80
                                    <Intermediate source={source} />
81
82
83
84
                                </PivotItem>
                            </Pivot>
                        </div>
                        {/* trial table list */}
85
                        <div className='detailTable' style={{ marginTop: 10 }}>
86
                            <TableList tableSource={source} updateDetailPage={this.context.updateDetailPage} />
87
88
                        </div>
                    </React.Fragment>
89
                )}
90
            </AppContext.Consumer>
Lijiao's avatar
Lijiao committed
91
92
93
94
        );
    }
}

95
export default TrialsDetail;