Skip to content

Commit 8681666

Browse files
committed
types for State (#156 in progress)
1 parent 72f1d36 commit 8681666

19 files changed

+187
-97
lines changed

saas/app/components/common/Confirmer.tsx

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,24 @@ import React from 'react';
88

99
export let openConfirmDialogExternal;
1010

11-
class Confirmer extends React.Component {
12-
public state = {
13-
open: false,
14-
title: 'Are you sure?',
15-
message: '',
16-
onAnswer: null,
17-
};
11+
type State = {
12+
open: boolean;
13+
title: string;
14+
message: string;
15+
onAnswer: (answer) => void;
16+
};
1817

18+
class Confirmer extends React.Component<any, State> {
1919
constructor(props) {
2020
super(props);
21+
22+
this.state = {
23+
open: false,
24+
title: 'Are you sure?',
25+
message: '',
26+
onAnswer: null,
27+
};
28+
2129
openConfirmDialogExternal = this.openConfirmDialog;
2230
}
2331

@@ -34,10 +42,10 @@ class Confirmer extends React.Component {
3442
<DialogContentText id="alert-dialog-description">{this.state.message}</DialogContentText>
3543
</DialogContent>
3644
<DialogActions style={{ padding: '10px' }}>
37-
<Button onClick={this.handleClose} variant="outlined" color="primary" autoFocus>
45+
<Button onClick={this.handleClose} variant="contained" color="primary" autoFocus>
3846
Cancel
3947
</Button>
40-
<Button onClick={this.handleYes} variant="contained" color="primary">
48+
<Button onClick={this.handleYes} variant="contained" color="secondary">
4149
OK
4250
</Button>
4351
</DialogActions>

saas/app/components/common/LoginButton.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ type Props = { invitationToken?: string };
1212
type State = { email: string };
1313

1414
class LoginButton extends React.PureComponent<Props, State> {
15-
public state = { email: '' };
15+
constructor(props) {
16+
super(props);
17+
18+
this.state = { email: '' };
19+
}
1620

1721
public render() {
1822
const { invitationToken } = this.props;

saas/app/components/common/MemberChooser.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ type Props = {
1313
helperText?: string;
1414
};
1515

16-
class MemberChooser extends React.Component<Props> {
17-
public state = {
18-
selectedItems: [],
19-
};
16+
type State = {
17+
selectedItems: { label: string; id: string }[];
18+
};
2019

20+
class MemberChooser extends React.Component<Props, State> {
2121
constructor(props) {
2222
super(props);
2323

saas/app/components/common/MenuWithLinks.tsx

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,23 @@ import Link from 'next/link';
44
import { NextRouter, withRouter } from 'next/router';
55
import React from 'react';
66

7-
class MenuWithLinks extends React.PureComponent<{
7+
type Props = {
88
options: any[];
99
router: NextRouter;
10-
}> {
11-
public state = {
12-
anchorEl: null,
13-
};
10+
};
11+
12+
type State = {
13+
anchorEl: Element | ((element: Element) => Element);
14+
};
15+
16+
class MenuWithLinks extends React.PureComponent<Props, State> {
17+
constructor(props) {
18+
super(props);
19+
20+
this.state = {
21+
anchorEl: null,
22+
};
23+
}
1424

1525
public render() {
1626
const { options, children, router } = this.props;

saas/app/components/common/MenuWithMenuItems.tsx

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,32 @@ import MoreVertIcon from '@material-ui/icons/MoreVert';
33
import MenuItem from '@material-ui/core/MenuItem';
44
import React from 'react';
55

6-
class MenuWithMenuItems extends React.PureComponent<{
6+
type Props = {
77
menuOptions: any;
88
itemOptions: any[];
9-
}> {
10-
public state = {
11-
menuElm: null,
12-
};
9+
};
10+
11+
type State = {
12+
menuElem: Element | ((element: Element) => Element);
13+
};
14+
15+
class MenuWithMenuItems extends React.PureComponent<Props, State> {
16+
constructor(props) {
17+
super(props);
18+
19+
this.state = {
20+
menuElem: null,
21+
};
22+
}
1323

1424
public render() {
1525
const { menuOptions, itemOptions } = this.props;
16-
const { menuElm } = this.state;
26+
const { menuElem } = this.state;
1727

1828
return (
1929
<div style={{ verticalAlign: 'middle' }}>
2030
<MoreVertIcon
21-
aria-controls={menuElm ? menuOptions.id : null}
31+
aria-controls={menuElem ? menuOptions.id : null}
2232
data-id={menuOptions.dataId}
2333
aria-haspopup="true"
2434
style={{ fontSize: '14px', opacity: 0.7, cursor: 'pointer' }}
@@ -27,8 +37,8 @@ class MenuWithMenuItems extends React.PureComponent<{
2737

2838
<Menu
2939
id={menuOptions.id}
30-
anchorEl={menuElm}
31-
open={Boolean(menuElm)}
40+
anchorEl={menuElem}
41+
open={Boolean(menuElem)}
3242
onClose={this.handleClose}
3343
>
3444
{itemOptions.map((option, i) => (
@@ -37,7 +47,7 @@ class MenuWithMenuItems extends React.PureComponent<{
3747
data-id={option.dataId}
3848
data-more-id={option.dataMoreId}
3949
onClick={(e) => {
40-
this.setState({ menuElm: null });
50+
this.setState({ menuElem: null });
4151
option.onClick(e);
4252
}}
4353
>
@@ -51,11 +61,11 @@ class MenuWithMenuItems extends React.PureComponent<{
5161

5262
public handleClick = (event) => {
5363
event.preventDefault();
54-
this.setState({ menuElm: event.currentTarget });
64+
this.setState({ menuElem: event.currentTarget });
5565
};
5666

5767
public handleClose = () => {
58-
this.setState({ menuElm: null });
68+
this.setState({ menuElem: null });
5969
};
6070
}
6171

saas/app/components/common/Notifier.tsx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,20 @@ import React from 'react';
33

44
export let openSnackbarExternal;
55

6-
class Notifier extends React.PureComponent {
7-
public state = {
8-
open: false,
9-
message: '',
10-
};
6+
type State = {
7+
open: boolean;
8+
message: string;
9+
};
1110

11+
class Notifier extends React.PureComponent<any, State> {
1212
constructor(props) {
1313
super(props);
1414
openSnackbarExternal = this.openSnackbar;
15+
16+
this.state = {
17+
open: false,
18+
message: '',
19+
};
1520
}
1621

1722
public render() {

saas/app/components/discussions/CreateDiscussionForm.tsx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,17 @@ type State = {
3535
};
3636

3737
class CreateDiscussionForm extends React.Component<Props, State> {
38-
public state = {
39-
name: '',
40-
memberIds: [],
41-
disabled: false,
42-
content: '',
43-
notificationType: 'default',
44-
};
38+
constructor(props) {
39+
super(props);
40+
41+
this.state = {
42+
name: '',
43+
memberIds: [],
44+
disabled: false,
45+
content: '',
46+
notificationType: 'default',
47+
};
48+
}
4549

4650
public render() {
4751
const { open, isMobile, store } = this.props;
@@ -121,7 +125,7 @@ class CreateDiscussionForm extends React.Component<Props, State> {
121125
</Button>
122126
{isMobile ? <p /> : null}
123127
<Button
124-
variant="outlined"
128+
variant="contained"
125129
onClick={this.handleClose}
126130
disabled={this.state.disabled}
127131
style={{ marginLeft: isMobile ? '0px' : '20px' }}
@@ -148,7 +152,7 @@ class CreateDiscussionForm extends React.Component<Props, State> {
148152
</Button>
149153
{isMobile ? <p /> : null}
150154
<Button
151-
variant="outlined"
155+
variant="contained"
152156
onClick={this.handleClose}
153157
disabled={this.state.disabled}
154158
style={{ marginLeft: isMobile ? '0px' : '20px' }}

saas/app/components/discussions/DiscussionActionMenu.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,14 @@ type State = {
5555
};
5656

5757
class DiscussionActionMenu extends React.Component<Props, State> {
58-
public state = {
59-
discussionFormOpen: false,
60-
selectedDiscussion: null,
61-
};
58+
constructor(props) {
59+
super(props);
60+
61+
this.state = {
62+
discussionFormOpen: false,
63+
selectedDiscussion: null,
64+
};
65+
}
6266

6367
public render() {
6468
const { discussion, store } = this.props;

saas/app/components/discussions/DiscussionList.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,16 @@ import notify from '../../lib/notify';
1313

1414
type Props = { store: Store; team: Team; isMobile: boolean };
1515

16-
class DiscussionList extends React.Component<Props> {
17-
public state = {
18-
discussionFormOpen: false,
19-
};
16+
type State = { discussionFormOpen: boolean };
17+
18+
class DiscussionList extends React.Component<Props, State> {
19+
constructor(props) {
20+
super(props);
21+
22+
this.state = {
23+
discussionFormOpen: false,
24+
};
25+
}
2026

2127
public componentDidMount() {
2228
this.props.team.loadDiscussions().catch((err) => notify(err));

saas/app/components/discussions/EditDiscussionForm.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,17 @@ type State = {
3636
};
3737

3838
class EditDiscussionForm extends React.Component<Props, State> {
39-
public state = {
40-
name: '',
41-
memberIds: [],
42-
disabled: false,
43-
discussionId: '',
44-
notificationType: 'default',
45-
};
39+
constructor(props) {
40+
super(props);
41+
42+
this.state = {
43+
name: '',
44+
memberIds: [],
45+
disabled: false,
46+
discussionId: '',
47+
notificationType: 'default',
48+
};
49+
}
4650

4751
public static getDerivedStateFromProps(props: Props, state: State) {
4852
const { discussion } = props;
@@ -117,7 +121,7 @@ class EditDiscussionForm extends React.Component<Props, State> {
117121
<DialogActions>
118122
<Button
119123
color="primary"
120-
variant="outlined"
124+
variant="contained"
121125
onClick={this.handleClose}
122126
disabled={this.state.disabled}
123127
>

0 commit comments

Comments
 (0)