Skip to content

Instantly share code, notes, and snippets.

@mvasin
Created March 13, 2019 22:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mvasin/f08a8d8a5d2c9e92564a487ae81b50a9 to your computer and use it in GitHub Desktop.
Save mvasin/f08a8d8a5d2c9e92564a487ae81b50a9 to your computer and use it in GitHub Desktop.
// Not ready yet, don't try this at home
import React, { useState } from 'react';
type Model = number;
interface AgGridMethods {
getModel: () => Model;
setModel: (model: Model) => void;
}
const defaultState = 42;
function FilterCreator() {
let setModel: (model: Model) => void = (m) => {};
let getModel: () => Model = () => defaultState;
const Filter: React.FC & AgGridMethods = () => {
const [state, setState] = useState(defaultState);
setModel = setState;
(window as any).setModel = setState;
getModel = () => state;
return <p onClick={() => setModel(15)}>{state}</p>
}
Filter.getModel = getModel;
Filter.setModel = setModel;
(window as any).getModel = getModel;
(window as any).setModel = setModel;
return Filter;
}
const App = FilterCreator();
export default App;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment