Commit 6890f3cb authored by James Laver's avatar James Laver

[DEBUG] swap G.C.DocsTable.renderPage for new function `page` and...

[DEBUG] swap G.C.DocsTable.renderPage for new function `page` and corresponding `pageCpt` to make the component a top level object instead of dynamic based on closure. Did not fix the problem, but improves the code somewhat
parent ff028ee4
...@@ -255,33 +255,47 @@ loadPage session {nodeId, tabType, query, listId, corpusId, params: {limit, offs ...@@ -255,33 +255,47 @@ loadPage session {nodeId, tabType, query, listId, corpusId, params: {limit, offs
convOrderBy _ = DateAsc -- TODO convOrderBy _ = DateAsc -- TODO
renderPage :: R.State T.Params -> Record PageLayoutProps -> Array DocumentsView -> R.Element pageLayout :: Record PageLayoutProps -> R.Element
renderPage (_ /\ setTableParams) p@{session} res = R.createElement el p [] pageLayout props = R.createElement pageLayoutCpt props []
where
sid = sessionId session pageLayoutCpt :: R.Memo PageLayoutProps
el = R.hooksComponent "RenderPage" cpt pageLayoutCpt = R.memo' $ R.hooksComponent "G.C.DocsTable.pageLayout" cpt where
cpt props@{session, nodeId, listId, corpusId, tabType, query, params} _ = do
gi Favorite = "glyphicon glyphicon-star" useLoader {nodeId, listId, corpusId, tabType, query, params: fst params} (loadPage session) $
gi _ = "glyphicon glyphicon-star-empty" \loaded -> page params props loaded
trashStyle Trash = {textDecoration: "line-through"}
trashStyle _ = {textDecoration: "none"} type PageProps =
corpusDocument (Just corpusId) = Routes.CorpusDocument sid corpusId ( params :: R.State T.Params
corpusDocument _ = Routes.Document sid , layout :: Record PageLayoutProps
, documents :: Array DocumentsView )
cpt {session, nodeId, corpusId, listId, totalRecords} _children = do
localCategories <- R.useState' (mempty :: LocalCategories) page :: R.State T.Params -> Record PageLayoutProps -> Array DocumentsView -> R.Element
pure $ T.table page params layout documents = R.createElement pageCpt {params, layout, documents} []
{ rows: rows localCategories
-- , setParams: \params -> liftEffect $ loaderDispatch (Loader.SetPath {nodeId, tabType, listId, corpusId, params, query}) pageCpt :: R.Component PageProps
, setParams: setTableParams <<< const pageCpt = R.hooksComponent "G.C.DocsTable.pageCpt" cpt where
, container: T.defaultContainer { title: "Documents" } cpt { layout: {session, nodeId, corpusId, listId, totalRecords}
, colNames , documents, params: (_ /\ setParams) } _children = do
, totalRecords localCategories <- R.useState' (mempty :: LocalCategories)
} pure $ T.table
{ rows: rows localCategories
-- , setParams: \params -> liftEffect $ loaderDispatch (Loader.SetPath {nodeId, tabType, listId, corpusId, params, query})
, setParams: setParams <<< const
, container: T.defaultContainer { title: "Documents" }
, colNames
, totalRecords
}
where where
sid = sessionId session
gi Favorite = "glyphicon glyphicon-star"
gi _ = "glyphicon glyphicon-star-empty"
trashStyle Trash = {textDecoration: "line-through"}
trashStyle _ = {textDecoration: "none"}
corpusDocument (Just corpusId) = Routes.CorpusDocument sid corpusId
corpusDocument _ = Routes.Document sid
colNames = T.ColumnName <$> [ "Map", "Stop", "Date", "Title", "Source"] colNames = T.ColumnName <$> [ "Map", "Stop", "Date", "Title", "Source"]
getCategory (localCategories /\ _) {_id, category} = maybe category identity (localCategories ^. at _id) getCategory (localCategories /\ _) {_id, category} = maybe category identity (localCategories ^. at _id)
rows localCategories = row <$> res rows localCategories = row <$> documents
where where
row (DocumentsView r) = row (DocumentsView r) =
{ row: { row:
...@@ -303,15 +317,6 @@ renderPage (_ /\ setTableParams) p@{session} res = R.createElement el p [] ...@@ -303,15 +317,6 @@ renderPage (_ /\ setTableParams) p@{session} res = R.createElement el p []
setLocalCategories $ insert nid newCat setLocalCategories $ insert nid newCat
void $ launchAff $ putCategories session nodeId $ CategoryQuery {nodeIds: [nid], category: newCat} void $ launchAff $ putCategories session nodeId $ CategoryQuery {nodeIds: [nid], category: newCat}
pageLayout :: Record PageLayoutProps -> R.Element
pageLayout props = R.createElement pageLayoutCpt props []
pageLayoutCpt :: R.Memo PageLayoutProps
pageLayoutCpt = R.memo' $ R.hooksComponent "G.C.DocsTable.pageLayout" cpt where
cpt props@{session, nodeId, listId, corpusId, tabType, query, params} _ = do
useLoader {nodeId, listId, corpusId, tabType, query, params: fst params} (loadPage session) $
\loaded -> renderPage params props loaded
--------------------------------------------------------- ---------------------------------------------------------
sampleData' :: DocumentsView sampleData' :: DocumentsView
sampleData' = DocumentsView { _id : 1 sampleData' = DocumentsView { _id : 1
......
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