Created
March 13, 2019 22:07
-
-
Save mvasin/f08a8d8a5d2c9e92564a487ae81b50a9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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