Skip to content

Commit dc938ce

Browse files
authored
Merge pull request #132 from FormidableLabs/fix/update-issues
Fix onChange related errors
2 parents 8439700 + 2bc2207 commit dc938ce

File tree

3 files changed

+42
-9
lines changed

3 files changed

+42
-9
lines changed

src/components/Editor/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class CodeEditor extends Component {
5555
);
5656

5757
render() {
58-
const { style, code: _, ...rest } = this.props;
58+
const { style, code: _code, onChange, language, ...rest } = this.props;
5959
const { code } = this.state;
6060

6161
return (

src/components/Live/LiveProvider.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,18 @@ export default class LiveProvider extends Component {
6464
this.transpile({ code, scope, transformCode, noInline });
6565
}
6666

67-
componentDidUpdate({ code, scope, noInline, transformCode }) {
67+
componentDidUpdate({
68+
code: prevCode,
69+
scope: prevScope,
70+
noInline: prevNoInline,
71+
transformCode: prevTransformCode
72+
}) {
73+
const { code, scope, noInline, transformCode } = this.props;
6874
if (
69-
code !== this.props.code ||
70-
scope !== this.props.scope ||
71-
noInline !== this.props.noInline ||
72-
transformCode !== this.props.transformCode
75+
code !== prevCode ||
76+
scope !== prevScope ||
77+
noInline !== prevNoInline ||
78+
transformCode !== prevTransformCode
7379
) {
7480
this.transpile({ code, scope, transformCode, noInline });
7581
}

stories/Live.js

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,46 @@ const StyledLivePreview = styled(LivePreview)`
7676
`;
7777

7878
const StyledEditor = styled(LiveEditor)`
79-
background: #222031;
79+
background: #322e3c;
80+
`;
81+
82+
const StyledTextarea = styled.textarea`
83+
height: 300px;
84+
width: 600px;
85+
font-family: monospace;
86+
font-size: 16px;
87+
white-space: pre;
88+
background: #322e3c;
89+
color: white;
8090
`;
8191

8292
const TestComponent = ({ live }) => {
8393
const Result = live.element;
8494
return (
85-
<div style={{ backgroundColor: 'darkslategray', color: 'white' }}>
95+
<div style={{ backgroundColor: '#322e3c', color: 'white' }}>
8696
<LiveEditor />
8797
<Result />
8898
<pre>{live.error}</pre>
8999
</div>
90100
);
91101
};
92102

103+
const CustomEditor = () => {
104+
const [code, updateCode] = React.useState(functionExample);
105+
106+
const handleChange = e => {
107+
updateCode(e.target.value);
108+
};
109+
110+
return (
111+
<LiveProvider code={code}>
112+
<StyledTextarea onChange={handleChange} value={code} />
113+
<LivePreview />
114+
<LiveError />
115+
</LiveProvider>
116+
);
117+
};
118+
93119
const LiveComponent = withLive(TestComponent);
94120

95121
storiesOf('Live', module)
@@ -143,4 +169,5 @@ storiesOf('Live', module)
143169
<LiveProvider code={hooksExample}>
144170
<LiveComponent />
145171
</LiveProvider>
146-
));
172+
))
173+
.add('with custom editor', () => <CustomEditor />);

0 commit comments

Comments
 (0)