Skip to content

Commit 9886b64

Browse files
authored
fix: replace deprecated defaultProps
1 parent 5574044 commit 9886b64

File tree

11 files changed

+160
-211
lines changed

11 files changed

+160
-211
lines changed

package-lock.json

+144-96
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
"to-ast": "^1.0.0",
9191
"type-detect": "^4.0.8",
9292
"unist-util-visit": "^2.0.0",
93-
"webpack-dev-server": "^4.9.2",
93+
"webpack-dev-server": "^4.15.0",
9494
"webpack-merge": "^4.2.2"
9595
},
9696
"peerDependencies": {

src/client/rsg-components/Examples/Examples.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const Examples: React.FunctionComponent<ExamplesRenderer> = ({ examples, name, e
2626
key={`${codeRevision}/${index}`}
2727
name={name}
2828
index={index}
29-
settings={example.settings}
29+
settings={example.settings ?? {}}
3030
exampleMode={exampleMode}
3131
/>
3232
);

src/client/rsg-components/Markdown/List/ListRenderer.tsx

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React, { cloneElement, Children } from 'react';
2-
import PropTypes from 'prop-types';
32
import cx from 'clsx';
43
import Styled, { JssInjectedProps } from 'rsg-components/Styled';
54
import * as Rsg from '../../../../typings';
@@ -30,7 +29,7 @@ interface ListProps extends JssInjectedProps {
3029

3130
export const ListRenderer: React.FunctionComponent<ListProps> = ({
3231
classes,
33-
ordered,
32+
ordered = false,
3433
children,
3534
}) => {
3635
const Tag = ordered ? 'ol' : 'ul';
@@ -45,13 +44,5 @@ export const ListRenderer: React.FunctionComponent<ListProps> = ({
4544
</Tag>
4645
);
4746
};
48-
ListRenderer.propTypes = {
49-
classes: PropTypes.objectOf(PropTypes.string.isRequired).isRequired,
50-
ordered: PropTypes.bool,
51-
children: PropTypes.any.isRequired,
52-
};
53-
ListRenderer.defaultProps = {
54-
ordered: false,
55-
};
5647

5748
export default Styled<ListProps>(styles)(ListRenderer);

src/client/rsg-components/Markdown/Table/TableCellRenderer.tsx

+1-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from 'react';
2-
import PropTypes from 'prop-types';
32
import Styled, { JssInjectedProps } from 'rsg-components/Styled';
43
import * as Rsg from '../../../../typings';
54

@@ -24,23 +23,13 @@ interface TableCellProps extends JssInjectedProps {
2423

2524
export const TableCellRenderer: React.FunctionComponent<TableCellProps> = ({
2625
classes,
27-
header,
26+
header = false,
2827
children,
2928
}) => {
3029
if (header) {
3130
return <th className={classes.th}>{children}</th>;
3231
}
33-
3432
return <td className={classes.td}>{children}</td>;
3533
};
3634

37-
TableCellRenderer.propTypes = {
38-
classes: PropTypes.objectOf(PropTypes.string.isRequired).isRequired,
39-
header: PropTypes.bool,
40-
children: PropTypes.any.isRequired,
41-
};
42-
TableCellRenderer.defaultProps = {
43-
header: false,
44-
};
45-
4635
export default Styled<TableCellProps>(styles)(TableCellRenderer);

src/client/rsg-components/Playground/Playground.tsx

-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React, { Component } from 'react';
2-
import PropTypes from 'prop-types';
32
import debounce from 'lodash/debounce';
43
import Preview from 'rsg-components/Preview';
54
import Para from 'rsg-components/Para';
@@ -31,19 +30,6 @@ interface PlaygroundState {
3130
}
3231

3332
class Playground extends Component<PlaygroundProps, PlaygroundState> {
34-
public static propTypes = {
35-
code: PropTypes.string.isRequired,
36-
evalInContext: PropTypes.func.isRequired,
37-
index: PropTypes.number.isRequired,
38-
name: PropTypes.string.isRequired,
39-
exampleMode: PropTypes.string.isRequired,
40-
settings: PropTypes.object,
41-
};
42-
43-
public static defaultProps = {
44-
settings: {},
45-
};
46-
4733
public static contextType = Context;
4834

4935
private handleChange = debounce((code) => {

src/client/rsg-components/Ribbon/RibbonRenderer.tsx

+5-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from 'react';
2-
import PropTypes from 'prop-types';
32
import Styled, { JssInjectedProps } from 'rsg-components/Styled';
43
import * as Rsg from '../../../typings';
54

@@ -37,7 +36,11 @@ interface RibbonProps extends JssInjectedProps {
3736
text?: string;
3837
}
3938

40-
export const RibbonRenderer: React.FunctionComponent<RibbonProps> = ({ classes, url, text }) => {
39+
export const RibbonRenderer: React.FunctionComponent<RibbonProps> = ({
40+
classes,
41+
url,
42+
text = 'Fork me on GitHub',
43+
}) => {
4144
return (
4245
<footer className={classes.root}>
4346
<a href={url} className={classes.link}>
@@ -47,14 +50,4 @@ export const RibbonRenderer: React.FunctionComponent<RibbonProps> = ({ classes,
4750
);
4851
};
4952

50-
RibbonRenderer.defaultProps = {
51-
text: 'Fork me on GitHub',
52-
};
53-
54-
RibbonRenderer.propTypes = {
55-
classes: PropTypes.objectOf(PropTypes.string.isRequired).isRequired,
56-
url: PropTypes.string.isRequired,
57-
text: PropTypes.string,
58-
};
59-
6053
export default Styled<RibbonProps>(styles)(RibbonRenderer);

src/client/rsg-components/StyleGuide/StyleGuide.tsx

+1-18
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React, { Component } from 'react';
2-
import PropTypes from 'prop-types';
32
import TableOfContents from 'rsg-components/TableOfContents';
43
import StyleGuideRenderer from 'rsg-components/StyleGuide/StyleGuideRenderer';
54
import Sections from 'rsg-components/Sections';
@@ -50,22 +49,6 @@ interface StyleGuideState {
5049
}
5150

5251
export default class StyleGuide extends Component<StyleGuideProps, StyleGuideState> {
53-
public static propTypes = {
54-
codeRevision: PropTypes.number.isRequired,
55-
cssRevision: PropTypes.string.isRequired,
56-
config: PropTypes.object.isRequired,
57-
slots: PropTypes.object.isRequired,
58-
sections: PropTypes.array.isRequired,
59-
welcomeScreen: PropTypes.bool,
60-
patterns: PropTypes.array,
61-
displayMode: PropTypes.string,
62-
allSections: PropTypes.array.isRequired,
63-
pagePerSection: PropTypes.bool,
64-
};
65-
public static defaultProps = {
66-
displayMode: DisplayModes.all,
67-
};
68-
6952
public state = {
7053
error: false,
7154
info: null,
@@ -85,7 +68,7 @@ export default class StyleGuide extends Component<StyleGuideProps, StyleGuideSta
8568
sections,
8669
welcomeScreen,
8770
patterns,
88-
displayMode,
71+
displayMode = DisplayModes.all,
8972
allSections,
9073
pagePerSection,
9174
codeRevision,

src/client/rsg-components/TabButton/TabButtonRenderer.tsx

+1-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from 'react';
2-
import PropTypes from 'prop-types';
32
import Styled, { JssInjectedProps } from 'rsg-components/Styled';
43
import { Styles } from 'jss';
54
import cx from 'clsx';
@@ -55,7 +54,7 @@ export const TabButtonRenderer: React.FunctionComponent<TabButtonProps> = ({
5554
name,
5655
className,
5756
onClick,
58-
active,
57+
active = false,
5958
children,
6059
}) => {
6160
const classNames = cx(classes.button, className, {
@@ -75,16 +74,4 @@ export const TabButtonRenderer: React.FunctionComponent<TabButtonProps> = ({
7574
);
7675
};
7776

78-
TabButtonRenderer.propTypes = {
79-
classes: PropTypes.objectOf(PropTypes.string.isRequired).isRequired,
80-
name: PropTypes.string.isRequired,
81-
className: PropTypes.string,
82-
onClick: PropTypes.func.isRequired,
83-
active: PropTypes.bool,
84-
children: PropTypes.any.isRequired,
85-
};
86-
TabButtonRenderer.defaultProps = {
87-
active: false,
88-
};
89-
9077
export default Styled<TabButtonProps>(styles)(TabButtonRenderer);

src/client/rsg-components/TableOfContents/TableOfContents.tsx

+2-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React, { Component } from 'react';
2-
import PropTypes from 'prop-types';
32
import ComponentsList from 'rsg-components/ComponentsList';
43
import TableOfContentsRenderer from 'rsg-components/TableOfContents/TableOfContentsRenderer';
54
import filterSectionsByName from '../../utils/filterSectionsByName';
@@ -10,21 +9,10 @@ interface TableOfContentsProps {
109
sections: Rsg.Section[];
1110
useRouterLinks?: boolean;
1211
tocMode?: string;
13-
loc: { hash: string; pathname: string };
12+
loc?: { hash: string; pathname: string };
1413
}
1514

1615
export default class TableOfContents extends Component<TableOfContentsProps> {
17-
public static propTypes = {
18-
sections: PropTypes.array.isRequired,
19-
useRouterLinks: PropTypes.bool,
20-
tocMode: PropTypes.string,
21-
loc: PropTypes.object,
22-
};
23-
24-
public static defaultProps = {
25-
loc: window.location,
26-
};
27-
2816
public state = {
2917
searchTerm: '',
3018
};
@@ -36,7 +24,7 @@ export default class TableOfContents extends Component<TableOfContentsProps> {
3624
useHashId = false
3725
): { content: React.ReactElement; containsSelected: boolean } {
3826
// Match selected component in both basic routing and pagePerSection routing.
39-
const { hash, pathname } = this.props.loc;
27+
const { hash, pathname } = this.props.loc ?? window.location;
4028
const windowHash = pathname + (useRouterLinks ? hash : getHash(hash));
4129

4230
let childrenContainSelected = false;

src/client/rsg-components/Text/TextRenderer.tsx

+3-19
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from 'react';
2-
import PropTypes from 'prop-types';
32
import cx from 'clsx';
43
import Styled, { JssInjectedProps } from 'rsg-components/Styled';
54
import * as Rsg from '../../../typings';
@@ -49,9 +48,9 @@ export interface TextProps extends JssInjectedProps {
4948
export const TextRenderer: React.FunctionComponent<TextProps> = ({
5049
classes,
5150
semantic,
52-
size,
53-
color,
54-
underlined,
51+
size = 'inherit',
52+
color = 'base',
53+
underlined = false,
5554
children,
5655
...props
5756
}) => {
@@ -68,19 +67,4 @@ export const TextRenderer: React.FunctionComponent<TextProps> = ({
6867
);
6968
};
7069

71-
TextRenderer.propTypes = {
72-
classes: PropTypes.objectOf(PropTypes.string.isRequired).isRequired,
73-
semantic: PropTypes.oneOf(['em', 'strong']),
74-
size: PropTypes.oneOf(['inherit', 'small', 'base', 'text']),
75-
color: PropTypes.oneOf(['base', 'light']),
76-
underlined: PropTypes.bool,
77-
children: PropTypes.any.isRequired,
78-
};
79-
80-
TextRenderer.defaultProps = {
81-
size: 'inherit',
82-
color: 'base',
83-
underlined: false,
84-
};
85-
8670
export default Styled<TextProps>(styles)(TextRenderer);

0 commit comments

Comments
 (0)