Skip to content

Instantly share code, notes, and snippets.

@trueadm
Last active October 1, 2018 22:47
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save trueadm/35f083d32e5af93dd8fd706dae378123 to your computer and use it in GitHub Desktop.
Save trueadm/35f083d32e5af93dd8fd706dae378123 to your computer and use it in GitHub Desktop.
const React = require("react");
const Lifecycles = React.createLifecycleEvents({
didMount({ setState }) {
setState({
disabled: false,
});
},
didUpdate({ inputRef }) {
if (document.activeElement !== inputRef.value) {
inputRef.value.focus();
}
}
});
// pass in initial state
const State = React.createState({
disabled: true,
text: "",
});
function TextboxView(props) {
const inputRef = React.createRef();
return (
<State>
{(state, setState) => (
<Lifecycles inputRef={inputRef} setState={setState}>
<input
{...props}
ref={inputRef}
disabled={state.disabled}
onChange={e => setState({text: e.target.value})}
value={state.text}
/>
</Lifecycles>
)}
</State>
);
}
const React = require("react");
const Lifecycles = React.createLifecycleEvents({
componentDidMount({ setState }) {
setState({
disabled: false,
});
},
componentDidUpdate({ inputRef }) {
if (document.activeElement !== inputRef.value) {
inputRef.value.focus();
}
}
});
const State = React.createState({
disabled: true,
text: "",
});
function ListView() {
const inputRef = React.createRef();
// "adopt" could be sugar syntax for React's callReturn functionality
const { state, setState } = adopt <State />;
return (
<Lifecycles inputRef={inputRef} setState={setState}>
<input
ref={inputRef}
disabled={state.disabled}
onChange={e => setState({text: e.target.value})}
value={state.text}
/>
</Lifecycles>
)
}
@OlegLustenko
Copy link

OlegLustenko commented Mar 5, 2018

Look like code similar to reason-react ideas

@drcmda
Copy link

drcmda commented Sep 9, 2018

I implemented a very basic POC for #2, using Reacts error bounds: https://codesandbox.io/embed/rr1838zvqm I'm guessing this will also more or less be the way in which suspense can read out fetchers (?), like Dan showed us in his talk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment