[Loader] type aliases

parent 5bc97fc5
...@@ -21,9 +21,11 @@ type InnerPropsRow path loaded row = ...@@ -21,9 +21,11 @@ type InnerPropsRow path loaded row =
type InnerProps path loaded row = Record (InnerPropsRow path loaded row) type InnerProps path loaded row = Record (InnerPropsRow path loaded row)
type InnerClass path loaded = ReactClass (InnerProps path loaded (children :: Children))
type PropsRow path loaded row = type PropsRow path loaded row =
( path :: path ( path :: path
, component :: ReactClass (InnerProps path loaded (children :: Children)) , component :: InnerClass path loaded
| row | row
) )
...@@ -61,11 +63,14 @@ createLoaderClass' name loader render = ...@@ -61,11 +63,14 @@ createLoaderClass' name loader render =
{spec, dispatcher} = createReactSpec (simpleSpec performAction render) initialState {spec, dispatcher} = createReactSpec (simpleSpec performAction render) initialState
type LoaderClass path loaded =
ReactClass (Record (PropsRow path loaded (children :: Children)))
createLoaderClass :: forall path loaded createLoaderClass :: forall path loaded
. Eq path . Eq path
=> String => String
-> (path -> Aff loaded) -> (path -> Aff loaded)
-> ReactClass (Record (PropsRow path loaded (children :: Children))) -> LoaderClass path loaded
createLoaderClass name loader = createLoaderClass name loader =
createLoaderClass' name loader render createLoaderClass' name loader render
where where
......
...@@ -496,7 +496,7 @@ modeTabType Terms = TabTerms ...@@ -496,7 +496,7 @@ modeTabType Terms = TabTerms
loadPage :: PageParams -> Aff NgramsTable loadPage :: PageParams -> Aff NgramsTable
loadPage {nodeId, mode} = getTable (modeTabType mode) (Just nodeId) -- TODO this ignores params loadPage {nodeId, mode} = getTable (modeTabType mode) (Just nodeId) -- TODO this ignores params
ngramsLoaderClass :: ReactClass (Loader.Props PageParams NgramsTable) ngramsLoaderClass :: Loader.LoaderClass PageParams NgramsTable
ngramsLoaderClass = Loader.createLoaderClass "NgramsLoader" loadPage ngramsLoaderClass = Loader.createLoaderClass "NgramsLoader" loadPage
ngramsLoader :: Loader.Props' PageParams NgramsTable -> ReactElement ngramsLoader :: Loader.Props' PageParams NgramsTable -> ReactElement
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment