Commit fa676aa7 authored by Karen Konou's avatar Karen Konou

Use toestand

parent d760e50c
module Gargantext.Components.Nodes.Corpus where module Gargantext.Components.Nodes.Corpus where
import Gargantext.Prelude import Gargantext.Prelude
( Unit, bind, const, discard, pure, show, unit ( Unit, bind, discard, pure, show, unit
, ($), (+), (-), (<), (<$>), (<<<), (<>), (==), (>), class Show, class Eq) , ($), (+), (-), (<), (<$>), (<<<), (<>), (==), (>), class Show, class Eq)
import Data.Argonaut (class DecodeJson, decodeJson, encodeJson) import Data.Argonaut (class DecodeJson, decodeJson, encodeJson)
import Data.Argonaut.Parser (jsonParser) import Data.Argonaut.Parser (jsonParser)
...@@ -12,8 +12,7 @@ import Data.Generic.Rep.Eq (genericEq) ...@@ -12,8 +12,7 @@ import Data.Generic.Rep.Eq (genericEq)
import Data.Generic.Rep.Show (genericShow) import Data.Generic.Rep.Show (genericShow)
import Data.List as List import Data.List as List
import Data.Maybe (Maybe(..), fromMaybe) import Data.Maybe (Maybe(..), fromMaybe)
import Data.Tuple (Tuple(..), fst) import Data.Tuple (Tuple(..))
import Data.Tuple.Nested ((/\))
import DOM.Simple.Console (log2) import DOM.Simple.Console (log2)
import Effect (Effect) import Effect (Effect)
import Effect.Aff (Aff, launchAff_, throwError) import Effect.Aff (Aff, launchAff_, throwError)
...@@ -68,11 +67,12 @@ corpusLayoutMainCpt :: R.Component KeyProps ...@@ -68,11 +67,12 @@ corpusLayoutMainCpt :: R.Component KeyProps
corpusLayoutMainCpt = here.component "corpusLayoutMain" cpt corpusLayoutMainCpt = here.component "corpusLayoutMain" cpt
where where
cpt { nodeId, key, session } _ = do cpt { nodeId, key, session } _ = do
viewType <- R.useState' Folders viewType <- T.useBox Folders
viewType' <- T.read viewType
pure $ H.div{} [ pure $ H.div{} [
H.div{} [viewTypeSelector {state: viewType} ] H.div{} [viewTypeSelector {state: viewType} ]
, H.div{} [renderContent (fst viewType) nodeId session key] , H.div{} [renderContent viewType' nodeId session key]
] ]
renderContent Folders nodeId session key = folderViewLoad { nodeId, session } renderContent Folders nodeId session key = folderViewLoad { nodeId, session }
...@@ -575,7 +575,7 @@ instance showViewType :: Show ViewType where ...@@ -575,7 +575,7 @@ instance showViewType :: Show ViewType where
type ViewTypeSelectorProps = type ViewTypeSelectorProps =
( (
state :: R.State ViewType state :: T.Box ViewType
) )
viewTypeSelector :: Record ViewTypeSelectorProps -> R.Element viewTypeSelector :: Record ViewTypeSelectorProps -> R.Element
...@@ -584,25 +584,24 @@ viewTypeSelector p = R.createElement viewTypeSelectorCpt p [] ...@@ -584,25 +584,24 @@ viewTypeSelector p = R.createElement viewTypeSelectorCpt p []
viewTypeSelectorCpt :: R.Component ViewTypeSelectorProps viewTypeSelectorCpt :: R.Component ViewTypeSelectorProps
viewTypeSelectorCpt = here.component "viewTypeSelector" cpt viewTypeSelectorCpt = here.component "viewTypeSelector" cpt
where where
cpt {state} _ = cpt {state} _ = do
state' <- T.useLive T.unequal state
pure $ H.div { className: "btn-group" pure $ H.div { className: "btn-group"
, role: "group" } [ , role: "group" } [
viewTypeButton Folders state viewTypeButton Folders state' state
, viewTypeButton Code state , viewTypeButton Code state' state
] ]
viewTypeButton viewType (state /\ setState) = viewTypeButton viewType state' state =
H.button { className: "btn btn-primary" <> active H.button { className: "btn btn-primary" <> active
, on: { click: onClick } , on: { click: \_ -> T.write viewType state }
, type: "button" , type: "button"
} [ } [
H.i { className: "fa " <> (icon viewType) } [] H.i { className: "fa " <> (icon viewType) } []
] ]
where where
active = if viewType == state then " active" else "" active = if viewType == state' then " active" else ""
onClick _ = do
setState $ const viewType
icon Folders = "fa-folder" icon Folders = "fa-folder"
icon Code = "fa-code" icon Code = "fa-code"
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