Skip to content
This repository was archived by the owner on Feb 6, 2023. It is now read-only.

Commit b5cc5f2

Browse files
authored
Merge pull request #340 from gky360/fix/ts-status-actions-reducers
Use typescript for status actions and statusReducer
2 parents 0c68748 + 582b408 commit b5cc5f2

File tree

11 files changed

+303
-206
lines changed

11 files changed

+303
-206
lines changed

frontend/src/actions/status.js

Lines changed: 0 additions & 29 deletions
This file was deleted.

frontend/src/actions/status.ts

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/* eslint-disable @typescript-eslint/explicit-function-return-type */
2+
3+
import { CHART_DOWNLOAD_STATUS } from '../constants';
4+
import { ProjectId, ResultId } from '../store/types';
5+
6+
export const RESULT_SELECT_UPDATE = 'RESULT_SELECT_UPDATE';
7+
export const updateResultSelect = (
8+
projectId: ProjectId,
9+
resultId: ResultId,
10+
selected: boolean
11+
) => ({
12+
type: RESULT_SELECT_UPDATE as typeof RESULT_SELECT_UPDATE,
13+
projectId,
14+
resultId,
15+
selected,
16+
});
17+
export type ResultSelectAction = ReturnType<typeof updateResultSelect>;
18+
19+
export const RESULT_CHECK_UPDATE = 'RESULT_CHECK_UPDATE';
20+
export const updateResultCheck = (projectId: ProjectId, resultId: ResultId, checked: boolean) => ({
21+
type: RESULT_CHECK_UPDATE as typeof RESULT_CHECK_UPDATE,
22+
projectId,
23+
resultId,
24+
checked,
25+
});
26+
export type ResultCheckAction = ReturnType<typeof updateResultCheck>;
27+
28+
export const RESULT_CHECK_BULK_UPDATE = 'RESULT_CHECK_BULK_UPDATE';
29+
export const updateResultCheckBulk = (
30+
projectId: ProjectId,
31+
results: { id: ResultId; checked: boolean }[]
32+
) => ({
33+
type: RESULT_CHECK_BULK_UPDATE as typeof RESULT_CHECK_BULK_UPDATE,
34+
projectId,
35+
results,
36+
});
37+
export type ResultCheckBulkAction = ReturnType<typeof updateResultCheckBulk>;
38+
39+
export type ResultStatusAction = ResultSelectAction | ResultCheckAction | ResultCheckBulkAction;
40+
41+
export const RESULT_FILTER_UPDATE = 'RESULT_FILTER_UPDATE';
42+
export const updateResultFilter = (
43+
projectId: ProjectId,
44+
filterKey: string,
45+
filterText: string
46+
) => ({
47+
type: RESULT_FILTER_UPDATE as typeof RESULT_FILTER_UPDATE,
48+
projectId,
49+
filterKey,
50+
filterText,
51+
});
52+
export type ResultFilterAction = ReturnType<typeof updateResultFilter>;
53+
54+
export const CHART_DOWNLOAD_STATUS_UPDATE = 'CHART_DOWNLOAD_STATUS_UPDATE';
55+
export const updateChartDownloadStatus = (
56+
projectId: ProjectId,
57+
chartDownloadStatus: CHART_DOWNLOAD_STATUS
58+
) => ({
59+
type: CHART_DOWNLOAD_STATUS_UPDATE as typeof CHART_DOWNLOAD_STATUS_UPDATE,
60+
projectId,
61+
chartDownloadStatus,
62+
});
63+
export type ChartDownloadStatusAction = ReturnType<typeof updateChartDownloadStatus>;

frontend/src/components/ExperimentsTable.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ const ExperimentsTable = (props) => {
3737
onCommandSubmit,
3838
onTableExpandedUpdate,
3939
onTableColumnsVisibilityUpdate,
40-
onCheckOfResultStatusListUpdate,
40+
onResultCheckBulkUpdate,
4141
} = props;
4242
const { argKeys, logKeys } = stats;
4343
const { resultsConfig, tableState } = projectConfig;
@@ -75,7 +75,7 @@ const ExperimentsTable = (props) => {
7575
project={project}
7676
targetResults={resultList}
7777
resultsStatus={resultsStatus}
78-
onChange={onCheckOfResultStatusListUpdate}
78+
onChange={onResultCheckBulkUpdate}
7979
/>
8080
),
8181
Cell: (p) => {
@@ -88,7 +88,7 @@ const ExperimentsTable = (props) => {
8888
project={project}
8989
targetResults={[original]}
9090
resultsStatus={resultsStatus}
91-
onChange={onCheckOfResultStatusListUpdate}
91+
onChange={onResultCheckBulkUpdate}
9292
/>
9393
);
9494
},
@@ -105,7 +105,7 @@ const ExperimentsTable = (props) => {
105105
project={project}
106106
targetResults={groupedResults}
107107
resultsStatus={resultsStatus}
108-
onChange={onCheckOfResultStatusListUpdate}
108+
onChange={onResultCheckBulkUpdate}
109109
/>
110110
);
111111
},
@@ -328,7 +328,7 @@ ExperimentsTable.propTypes = {
328328
onCommandSubmit: PropTypes.func.isRequired,
329329
onTableExpandedUpdate: PropTypes.func.isRequired,
330330
onTableColumnsVisibilityUpdate: PropTypes.func.isRequired,
331-
onCheckOfResultStatusListUpdate: PropTypes.func.isRequired,
331+
onResultCheckBulkUpdate: PropTypes.func.isRequired,
332332
};
333333

334334
ExperimentsTable.defaultProps = {

frontend/src/components/SelectedResultTools.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const SelectedResultTools = (props) => {
1111
resultsStatus,
1212
resultTypeId,
1313
onResultsPatch,
14-
onCheckOfResultStatusListUpdate,
14+
onResultCheckBulkUpdate,
1515
onTableExpandedUpdate,
1616
} = props;
1717

@@ -40,7 +40,7 @@ const SelectedResultTools = (props) => {
4040
const requestBody = targetResultKeys.map((id) => ({ id, isUnregistered }));
4141
onResultsPatch(project.id, requestBody);
4242
const resultStatusList = targetResultKeys.map((id) => ({ id, checked: false }));
43-
onCheckOfResultStatusListUpdate(project.id, resultStatusList);
43+
onResultCheckBulkUpdate(project.id, resultStatusList);
4444
};
4545

4646
return (
@@ -66,7 +66,7 @@ SelectedResultTools.propTypes = {
6666
resultsStatus: uiPropTypes.resultsStatus,
6767
resultTypeId: PropTypes.string.isRequired,
6868
onResultsPatch: PropTypes.func.isRequired,
69-
onCheckOfResultStatusListUpdate: PropTypes.func.isRequired,
69+
onResultCheckBulkUpdate: PropTypes.func.isRequired,
7070
onTableExpandedUpdate: PropTypes.func.isRequired,
7171
};
7272

frontend/src/constants/index.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,11 @@ export const defaultProjectConfig = {
119119
resultType: fetchResultTypes[0].id,
120120
};
121121

122-
export const CHART_DOWNLOAD_STATUS = {
123-
NONE: 'NONE',
124-
REQUESTED: 'REQUESTED',
125-
CONVERTING: 'CONVERTING',
126-
};
122+
export enum CHART_DOWNLOAD_STATUS {
123+
NONE = 'NONE',
124+
REQUESTED = 'REQUESTED',
125+
CONVERTING = 'CONVERTING',
126+
}
127127

128128
export const defaultProjectStatus = {
129129
chartDownloadStatus: CHART_DOWNLOAD_STATUS.NONE,

frontend/src/containers/PlotContainer.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import {
2727
updateTableColumnsVisibility,
2828
updateChartDownloadStatus,
2929
updateTargetResultType,
30-
updateCheckOfResultStatusList,
30+
updateResultCheckBulk,
3131
} from '../actions';
3232
import NavigationBar from './NavigationBar';
3333
import BreadcrumbLink from '../components/BreadcrumbLink';
@@ -157,7 +157,7 @@ class PlotContainer extends React.Component {
157157
resultsStatus={projectStatus.resultsStatus}
158158
onResultsPatch={this.props.patchResults}
159159
onTableExpandedUpdate={this.props.updateTableExpanded}
160-
onCheckOfResultStatusListUpdate={this.props.updateCheckOfResultStatusList}
160+
onResultCheckBulkUpdate={this.props.updateResultCheckBulk}
161161
/>
162162
<ResultTypeSelector
163163
projectId={projectId}
@@ -180,7 +180,7 @@ class PlotContainer extends React.Component {
180180
onCommandSubmit={this.props.createCommand}
181181
onTableExpandedUpdate={this.props.updateTableExpanded}
182182
onTableColumnsVisibilityUpdate={this.handleExperimentsTableColumnsVisibilityUpdate}
183-
onCheckOfResultStatusListUpdate={this.props.updateCheckOfResultStatusList}
183+
onResultCheckBulkUpdate={this.props.updateResultCheckBulk}
184184
/>
185185
<ExperimentsTableConfigurator
186186
project={project}
@@ -226,7 +226,7 @@ PlotContainer.propTypes = {
226226
updateTableColumnsVisibility: PropTypes.func.isRequired,
227227
updateChartDownloadStatus: PropTypes.func.isRequired,
228228
updateTargetResultType: PropTypes.func.isRequired,
229-
updateCheckOfResultStatusList: PropTypes.func.isRequired,
229+
updateResultCheckBulk: PropTypes.func.isRequired,
230230
};
231231

232232
const getTargetTextForFilter = (project, result, filterKey) => {
@@ -305,6 +305,6 @@ export default connect(
305305
updateTableColumnsVisibility,
306306
updateChartDownloadStatus,
307307
updateTargetResultType,
308-
updateCheckOfResultStatusList,
308+
updateResultCheckBulk,
309309
}
310310
)(PlotContainer);

frontend/src/reducers/statusReducer.js

Lines changed: 0 additions & 134 deletions
This file was deleted.

0 commit comments

Comments
 (0)