Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
purescript-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Grégoire Locqueville
purescript-gargantext
Commits
1e5dfadf
Commit
1e5dfadf
authored
May 28, 2019
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SearchField: style with an input-group
parent
fd765ec9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
11 deletions
+18
-11
SearchField.purs
src/Gargantext/Components/Search/SearchField.purs
+18
-11
No files found.
src/Gargantext/Components/Search/SearchField.purs
View file @
1e5dfadf
...
...
@@ -17,7 +17,7 @@ import Effect.Uncurried (mkEffectFn1)
import FFI.Simple ((..))
import Reactix as R
import Reactix.DOM.HTML as HTML
import Reactix.DOM.HTML (text, button, div, input, option)
import Reactix.DOM.HTML (text, button, div, input, option
, form, span, ul, li, data', datalist
)
import Reactix.SyntheticEvent as E
import Gargantext.Components.Search.Types
...
...
@@ -49,33 +49,40 @@ searchFieldComponent = R.memo (R.hooksComponent "SearchField" cpt) hasChanged
term <- R.useState $ \_ -> pure search.term
db <- R.useState $ \_ -> pure Nothing
pure $
div { className: "search-field form-inline" }
[ databaseInput db props.databases
, searchInput term
, submitButton db term props.search
]
div { className: "search-field input-group" }
[ databaseInput db props.databases
, searchInput term
, span { className: "input-group-btn" }
[ submitButton db term props.search ]
]
hasChanged p p' = (fst p.search /= fst p'.search) || (p.databases /= p'.databases)
databaseInput :: R.State (Maybe Database) -> Array Database -> R.Element
databaseInput (db /\ setDB) dbs =
div { className: "form-group" } [ select { className: "database form-control", onChange } (item <$> dbs) ]
div { className: "input-group-btn search-panel" }
[ button { className: "btn dropdown-toggle", data': {toggle: "dropdown"} }
[ span {} [ text "x" ] ]
, ul { className: "dropdown-menu", role: "menu" } (liItem <$> dbs)
]
--select { className: "database", onChange } (item <$> dbs)
where
onChange = mkEffectFn1 $ \e -> setDB (readDatabase (e .. "target" .. "value"))
item db = option { value: (show db) } [ text (show db) ]
--item db = option { value: (show db) } [ text (show db) ]
liItem db = li {} [ text (show db) ]
searchInput :: R.State String -> R.Element
searchInput (term /\ setTerm) =
div { className: "form-group" } [
input { defaultValue: term
input { defaultValue: term
, className: "form-control"
, type: "text"
, onChange
, placeholder }
]
, placeholder }
where onChange = mkEffectFn1 $ \e -> setTerm $ e .. "target" .. "value"
submitButton :: R.State (Maybe Database) -> R.State String -> R.State (Maybe Search) -> R.Element
submitButton (database /\ _) (term /\ _) (_ /\ setSearch) =
div { className: "form-group" } [ button { className: "btn", onClick: click } [ text "Search" ]
]
button { className: "btn btn-default", type: "button", onClick: click } [ text "Search"
]
where
click = mkEffectFn1 $ \_ -> do
case term of
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment