[doc table] mark category as checked when document is previewed

parent c9d48a87
...@@ -115,3 +115,7 @@ star2catSimple Star_1 = Checked ...@@ -115,3 +115,7 @@ star2catSimple Star_1 = Checked
star2catSimple Star_2 = Topic star2catSimple Star_2 = Topic
star2catSimple Star_3 = Favorite star2catSimple Star_3 = Favorite
star2catSimple Star_4 = ToCite star2catSimple Star_4 = ToCite
markCategoryChecked :: Category -> Category
markCategoryChecked UnRead = Checked
markCategoryChecked s = s
...@@ -27,9 +27,10 @@ import Gargantext.Components.App.Store (Boxes) ...@@ -27,9 +27,10 @@ import Gargantext.Components.App.Store (Boxes)
import Gargantext.Components.Bootstrap as B import Gargantext.Components.Bootstrap as B
import Gargantext.Components.Bootstrap.Types (ComponentStatus(..), ModalSizing(..), Variant(..)) import Gargantext.Components.Bootstrap.Types (ComponentStatus(..), ModalSizing(..), Variant(..))
import Gargantext.Components.Category (rating, ratingSimple) import Gargantext.Components.Category (rating, ratingSimple)
import Gargantext.Components.Category.Types (Category(..), Star(..)) import Gargantext.Components.Category.Types (Category(..), Star(..), cat2score, markCategoryChecked)
import Gargantext.Components.DocsTable.DocumentFormCreation as DFC import Gargantext.Components.DocsTable.DocumentFormCreation as DFC
import Gargantext.Components.DocsTable.Types (DocumentsView(..), Hyperdata(..), LocalCategories, Query, Response(..), Year, sampleData, showSource) import Gargantext.Components.DocsTable.Types (DocumentsView(..), Hyperdata(..), LocalCategories, Query, Response(..), Year, sampleData, showSource)
import Gargantext.Components.GraphQL.Endpoints (updateNodeContextCategory)
import Gargantext.Components.Nodes.Lists.Types as NT import Gargantext.Components.Nodes.Lists.Types as NT
import Gargantext.Components.Nodes.Texts.Types as TextsT import Gargantext.Components.Nodes.Texts.Types as TextsT
import Gargantext.Components.Reload (textsReloadContext) import Gargantext.Components.Reload (textsReloadContext)
...@@ -636,7 +637,6 @@ tableRowCpt = here.component "tableRow" cpt where ...@@ -636,7 +637,6 @@ tableRowCpt = here.component "tableRow" cpt where
let cat :: Category let cat :: Category
cat = fromMaybe category (localCategories ^. at _id) cat = fromMaybe category (localCategories ^. at _id)
-- checked = Star_1 == cat
selected = mCurrentDocId' == Just r._id selected = mCurrentDocId' == Just r._id
sid = sessionId session sid = sessionId session
corpusDocument corpusDocument
...@@ -657,9 +657,12 @@ tableRowCpt = here.component "tableRow" cpt where ...@@ -657,9 +657,12 @@ tableRowCpt = here.component "tableRow" cpt where
[ -- H.div {} [ H.a { className, style, on: {click: click Favorite} } [] ] [ -- H.div {} [ H.a { className, style, on: {click: click Favorite} } [] ]
H.div { className: "" } H.div { className: "" }
[ docChooser { boxes [ docChooser { boxes
, category: categoryS
, docId: r._id
, listId , listId
, mCorpusId , mCorpusId
, nodeId: r._id , nodeId: r._id
, session
, sidePanel } [] , sidePanel } []
] ]
--, H.div { className: "column-tag flex" } [ caroussel { category: cat, nodeId, row: dv, session, setLocalCategories } [] ] --, H.div { className: "column-tag flex" } [ caroussel { category: cat, nodeId, row: dv, session, setLocalCategories } [] ]
...@@ -694,11 +697,14 @@ tableRowCpt = here.component "tableRow" cpt where ...@@ -694,11 +697,14 @@ tableRowCpt = here.component "tableRow" cpt where
type DocChooser = ( type DocChooser = (
boxes :: Boxes boxes :: Boxes
, listId :: ListId , category :: T.Box Category
, mCorpusId :: Maybe NodeID , docId :: Int
, nodeId :: NodeID , listId :: ListId
, sidePanel :: T.Box (Maybe (Record TextsT.SidePanel)) , mCorpusId :: Maybe NodeID
, nodeId :: NodeID
, session :: Session
, sidePanel :: T.Box (Maybe (Record TextsT.SidePanel))
) )
docChooser :: R2.Component DocChooser docChooser :: R2.Component DocChooser
...@@ -710,19 +716,45 @@ docChooserCpt = here.component "docChooser" cpt ...@@ -710,19 +716,45 @@ docChooserCpt = here.component "docChooser" cpt
pure $ H.div {} [] pure $ H.div {} []
cpt { boxes: { sidePanelState } cpt { boxes: { sidePanelState }
, category
, docId
, listId , listId
, mCorpusId: Just corpusId , mCorpusId: Just corpusId
, nodeId , nodeId
, session
, sidePanel } _ = do , sidePanel } _ = do
mCurrentDocId <- T.useFocused mCurrentDocId <- T.useFocused
(maybe Nothing _.mCurrentDocId) (maybe Nothing _.mCurrentDocId)
(\val -> maybe Nothing (\sp -> Just $ sp { mCurrentDocId = val })) sidePanel (\val -> maybe Nothing (\sp -> Just $ sp { mCurrentDocId = val })) sidePanel
mCurrentDocId' <- T.useLive T.unequal mCurrentDocId mCurrentDocId' <- T.useLive T.unequal mCurrentDocId
category' <- T.useLive T.unequal category
let selected = mCurrentDocId' == Just nodeId let selected = mCurrentDocId' == Just nodeId
eyeClass = selected ? "eye" $ "eye-slash" eyeClass = selected ? "eye" $ "eye-slash"
variant = selected ? Info $ Dark variant = selected ? Info $ Dark
onClick selected _ = do
-- here.log2 "[docChooser] onClick, listId" listId
-- here.log2 "[docChooser] onClick, corpusId" corpusId
-- here.log2 "[docChooser] onClick, nodeId" nodeId
-- R2.callTrigger triggerAnnotatedDocIdChange { corpusId, listId, nodeId }
-- T2.reload tableReload
if selected then do
T.write_ Nothing sidePanel
T.write_ Closed sidePanelState
else do
T.write_ (Just { corpusId: corpusId
, listId: listId
, mCurrentDocId: Just nodeId
, nodeId: nodeId }) sidePanel
T.write_ Opened sidePanelState
let categoryMarked = markCategoryChecked category'
launchAff_ $ do
_ <- updateNodeContextCategory session docId corpusId $ cat2score categoryMarked
pure unit
T.write_ categoryMarked category
-- here.log2 "[docChooser] sidePanel opened" sidePanelState
pure $ pure $
H.div H.div
{ className: "doc-chooser" } { className: "doc-chooser" }
...@@ -734,23 +766,6 @@ docChooserCpt = here.component "docChooser" cpt ...@@ -734,23 +766,6 @@ docChooserCpt = here.component "docChooser" cpt
, callback: onClick selected , callback: onClick selected
} }
] ]
where
onClick selected _ = do
-- here.log2 "[docChooser] onClick, listId" listId
-- here.log2 "[docChooser] onClick, corpusId" corpusId
-- here.log2 "[docChooser] onClick, nodeId" nodeId
-- R2.callTrigger triggerAnnotatedDocIdChange { corpusId, listId, nodeId }
-- T2.reload tableReload
if selected then do
T.write_ Nothing sidePanel
T.write_ Closed sidePanelState
else do
T.write_ (Just { corpusId: corpusId
, listId: listId
, mCurrentDocId: Just nodeId
, nodeId: nodeId }) sidePanel
T.write_ Opened sidePanelState
here.log2 "[docChooser] sidePanel opened" sidePanelState
newtype SearchQuery = SearchQuery { newtype SearchQuery = SearchQuery {
......
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