Commit db4925a2 authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

[SearchBar] database type -- remove Maybe

parent 2f4fde18
...@@ -23,10 +23,10 @@ import Gargantext.Components.Search.Types ...@@ -23,10 +23,10 @@ import Gargantext.Components.Search.Types
select = R.createElement "select" select = R.createElement "select"
type Search = { database :: Maybe Database, term :: String } type Search = { database :: Database, term :: String }
defaultSearch :: Search defaultSearch :: Search
defaultSearch = { database: Nothing, term: "" } defaultSearch = { database: All, term: "" }
type Props = type Props =
-- list of databases to search, or parsers to use on uploads -- list of databases to search, or parsers to use on uploads
...@@ -47,7 +47,7 @@ searchFieldComponent = R.memo (R.hooksComponent "SearchField" cpt) hasChanged ...@@ -47,7 +47,7 @@ searchFieldComponent = R.memo (R.hooksComponent "SearchField" cpt) hasChanged
cpt props _ = do cpt props _ = do
let search = maybe defaultSearch identity (fst props.search) let search = maybe defaultSearch identity (fst props.search)
term <- R.useState' search.term term <- R.useState' search.term
db <- R.useState' (Nothing :: Maybe Database) db <- R.useState' All
pure $ pure $
div { className: "search-field input-group" } div { className: "search-field input-group" }
[ databaseInput db props.databases [ databaseInput db props.databases
...@@ -57,7 +57,7 @@ searchFieldComponent = R.memo (R.hooksComponent "SearchField" cpt) hasChanged ...@@ -57,7 +57,7 @@ searchFieldComponent = R.memo (R.hooksComponent "SearchField" cpt) hasChanged
] ]
hasChanged p p' = (fst p.search /= fst p'.search) || (p.databases /= p'.databases) hasChanged p p' = (fst p.search /= fst p'.search) || (p.databases /= p'.databases)
databaseInput :: R.State (Maybe Database) -> Array Database -> R.Element databaseInput :: R.State Database -> Array Database -> R.Element
databaseInput (db /\ setDB) dbs = databaseInput (db /\ setDB) dbs =
div { className: "input-group-btn search-panel dropdown" } div { className: "input-group-btn search-panel dropdown" }
[ dropdownBtn db [ dropdownBtn db
...@@ -66,14 +66,13 @@ databaseInput (db /\ setDB) dbs = ...@@ -66,14 +66,13 @@ databaseInput (db /\ setDB) dbs =
where where
liItem db = li { onClick } [ a {href: "#"} [text (show db) ] ] liItem db = li { onClick } [ a {href: "#"} [text (show db) ] ]
where where
onClick = mkEffectFn1 $ \_ -> setDB $ const $ Just db onClick = mkEffectFn1 $ \_ -> setDB $ const db
dropdownBtnProps = { id: "search-dropdown" dropdownBtnProps = { id: "search-dropdown"
, className: "btn btn-default dropdown-toggle" , className: "btn btn-default dropdown-toggle"
, type: "button" , type: "button"
, data: {toggle: "dropdown"} , data: {toggle: "dropdown"}
} }
dropdownBtn (Just db) = button dropdownBtnProps [ span {} [ text (show db) ] ] dropdownBtn db = button dropdownBtnProps [ span {} [ text (show db) ] ]
dropdownBtn (Nothing) = button dropdownBtnProps [ span {} [ text "-" ] ]
searchInput :: R.State String -> R.Element searchInput :: R.State String -> R.Element
searchInput (term /\ setTerm) = searchInput (term /\ setTerm) =
...@@ -85,7 +84,7 @@ searchInput (term /\ setTerm) = ...@@ -85,7 +84,7 @@ searchInput (term /\ setTerm) =
where onChange = mkEffectFn1 $ \e -> setTerm $ const $ e .. "target" .. "value" where onChange = mkEffectFn1 $ \e -> setTerm $ const $ e .. "target" .. "value"
submitButton :: R.State (Maybe Database) -> R.State String -> R.State (Maybe Search) -> R.Element submitButton :: R.State Database -> R.State String -> R.State (Maybe Search) -> R.Element
submitButton (database /\ _) (term /\ _) (_ /\ setSearch) = submitButton (database /\ _) (term /\ _) (_ /\ setSearch) =
button { className: "btn btn-default", type: "button", onClick: click } [ text "Search" ] button { className: "btn btn-default", type: "button", onClick: click } [ text "Search" ]
where where
......
...@@ -57,8 +57,7 @@ onSearchChange (search /\ setSearch) = ...@@ -57,8 +57,7 @@ onSearchChange (search /\ setSearch) =
r <- Ajax.search (searchQuery q) r <- Ajax.search (searchQuery q)
liftEffect $ log2 "Return:" r liftEffect $ log2 "Return:" r
liftEffect $ modalShow "addCorpus" liftEffect $ modalShow "addCorpus"
searchQuery {database: Nothing, term} = over SearchQuery (_ {query=term}) defaultSearchQuery searchQuery {database: db, term} = over SearchQuery (_ {databases=[db], query=term}) defaultSearchQuery
searchQuery {database: Just db, term} = over SearchQuery (_ {databases=[db], query=term}) defaultSearchQuery
toggleButton :: R.State Boolean -> R.Element toggleButton :: R.State Boolean -> R.Element
toggleButton open = toggleButton open =
......
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