Commit 364aee5f authored by Fabien Maniere's avatar Fabien Maniere

add the disabled status on OR/AND buttons when there is only 1 term

parent f2458a01
Pipeline #6538 passed with stages
in 22 minutes and 30 seconds
......@@ -14,7 +14,7 @@ import Data.Set as Set
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Gargantext.Components.Bootstrap as B
import Gargantext.Components.Bootstrap.Types (ButtonVariant(..), Variant(..))
import Gargantext.Components.Bootstrap.Types (ButtonVariant(..), ComponentStatus(..), Variant(..))
import Gargantext.Components.FacetsTable (DocumentsView(..), Rows(..), initialPageGQL, loadPageGQL, publicationDate)
import Gargantext.Components.GraphExplorer.Store as GraphStore
import Gargantext.Components.GraphExplorer.Types (CorpusId, DocId, GraphSideDoc(..), ListId)
......@@ -203,6 +203,8 @@ docListCpt = here.component "main" cpt where
Docs { docs } -> T.write_ (Just docs) rows
_ -> T.write_ (Just Seq.empty) rows
let statusOrAndButtons = if A.length selectedNgramsTerms' >= 2 then Enabled else Disabled
-- | Computed
-- |
let
......@@ -259,7 +261,7 @@ docListCpt = here.component "main" cpt where
H.div {}
[
H.ul { className: "flex-row list-group justify-content-space-between align-items-center mb-1" }
[ H.li {} [ andOrButton { state: buttonState } ]
[ H.li {} [ andOrButton { state: buttonState, buttonStatus: statusOrAndButtons } ]
, H.li {} [ H.p { className: "text-bold" } [ H.text "No related documents" ] ]
, H.li {} [ B.iconButton { name: "search", title: "Search the web", callback: \_ -> webSearch (A.fromFoldable selectedNgramsTerms') goToURLInNewTab } ]
, H.li {} [ B.iconButton { name: "wikipedia-w", title: "Search Wikipedia", callback: \_ -> wikipediaSearch (A.fromFoldable selectedNgramsTerms') goToURLInNewTab } ]
......@@ -276,7 +278,7 @@ docListCpt = here.component "main" cpt where
H.div {}
[
H.ul { className: "flex-row list-group justify-content-space-between align-items-center mb-1" }
[ H.li {} [ andOrButton { state: buttonState } ]
[ H.li {} [ andOrButton { state: buttonState, buttonStatus: statusOrAndButtons } ]
, H.li {} [ H.p { className: "text-bold" } [ H.text $ show (Seq.length results) <> " related documents" ] ]
, H.li {} [ B.iconButton { name: "search", title: "Search the web", callback: \_ -> webSearch (A.fromFoldable selectedNgramsTerms') goToURLInNewTab } ]
, H.li {} [ B.iconButton { name: "wikipedia-w", title: "Search Wikipedia", callback: \_ -> wikipediaSearch (A.fromFoldable selectedNgramsTerms') goToURLInNewTab } ]
......@@ -393,7 +395,8 @@ itemCpt = here.component "item" cpt where
---------------------------------------------------------
type AndOrButtonProps =
( state :: T.Box Boolean
( state :: T.Box Boolean
, buttonStatus :: ComponentStatus
)
andOrButton :: R2.Leaf AndOrButtonProps
......@@ -401,7 +404,7 @@ andOrButton = R2.leaf andOrButtonCpt
andOrButtonCpt :: R.Component AndOrButtonProps
andOrButtonCpt = here.component "andOrButton" cpt
where
cpt { state } _ = do
cpt { state, buttonStatus } _ = do
state' <- R2.useLive' state
pure $
......@@ -415,6 +418,7 @@ andOrButtonCpt = here.component "andOrButton" cpt
[
B.button
{ className: "btn-sm"
, status: buttonStatus
, callback: \_ -> T.write_ false state
, variant: state' ?
OutlinedButtonVariant Secondary $
......@@ -424,6 +428,7 @@ andOrButtonCpt = here.component "andOrButton" cpt
,
B.button
{ className: "btn-sm"
, status: buttonStatus
, callback: \_ -> T.write_ true state
, variant: state' ?
ButtonVariant Secondary $
......
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