diff --git a/src/Gargantext/Components/NgramsTable.purs b/src/Gargantext/Components/NgramsTable.purs index 21f4050d04fc26ba047d72756f00eafd1f52305f..239e6c9d4278e412ba1dff7d1f7285ff67d7f362 100644 --- a/src/Gargantext/Components/NgramsTable.purs +++ b/src/Gargantext/Components/NgramsTable.purs @@ -43,6 +43,7 @@ import Gargantext.Components.NgramsTable.Tree (renderNgramsItem, renderNgramsTre import Gargantext.Components.Nodes.Lists.Types as NT import Gargantext.Components.Table (changePage) import Gargantext.Components.Table as TT +import Gargantext.Components.Table.Types (Params) import Gargantext.Components.Table.Types as TT import Gargantext.Config.REST (AffRESTError, RESTError, logRESTError) import Gargantext.Core.NgramsTable.Functions (addNewNgramA, applyNgramsPatches, chartsAfterSync, commitPatch, convOrderBy, coreDispatch, filterTermSize, ngramsRepoElementToNgramsElement, normNgram, patchSetFromMap, singletonNgramsTablePatch, tablePatchHasNgrams, toVersioned) @@ -406,13 +407,13 @@ type Props = | PropsNoReload ) type LoadedNgramsTableHeaderProps = - ( searchQuery :: T.Box SearchQuery ) + ( searchQuery :: T.Box SearchQuery, params :: T.Box Params ) loadedNgramsTableHeader :: R2.Leaf LoadedNgramsTableHeaderProps loadedNgramsTableHeader = R2.leaf loadedNgramsTableHeaderCpt loadedNgramsTableHeaderCpt :: R.Component LoadedNgramsTableHeaderProps loadedNgramsTableHeaderCpt = here.component "loadedNgramsTableHeader" cpt where - cpt { searchQuery } _ = pure $ + cpt { searchQuery, params } _ = pure $ R.fragment [ @@ -434,6 +435,7 @@ loadedNgramsTableHeaderCpt = here.component "loadedNgramsTableHeader" cpt where NTS.searchInput { key: "search-input" , searchQuery + , params } ] @@ -540,6 +542,7 @@ loadedNgramsTableBodyCpt = here.component "loadedNgramsTableBody" cpt where performAction $ CoreAction $ Synchronize { afterSync: afterSync' } + changePage 1 params -- autoUpdate :: Array R.Element @@ -752,6 +755,7 @@ mainNgramsTableCpt = here.component "mainNgramsTable" cpt where cpt props@{ cacheState, path, treeEdit } _ = do searchQuery <- T.useFocused (_.searchQuery) (\a b -> b { searchQuery = a }) path + params <- T.useFocused (_.params) (\a b -> b { params = a }) path cacheState' <- T.useLive T.unequal cacheState -- onCancelRef <- R.useRef Nothing -- onNgramsClickRef <- R.useRef Nothing @@ -773,12 +777,12 @@ mainNgramsTableCpt = here.component "mainNgramsTable" cpt case cacheState' of NT.CacheOn -> pure $ R.fragment - [ loadedNgramsTableHeader { searchQuery } + [ loadedNgramsTableHeader { searchQuery, params } , ngramsTreeEdit (treeEdit) , mainNgramsTableCacheOn (Record.merge props { state }) ] NT.CacheOff -> pure $ R.fragment - [loadedNgramsTableHeader { searchQuery } + [loadedNgramsTableHeader { searchQuery, params} , ngramsTreeEdit (treeEdit) , mainNgramsTableCacheOff (Record.merge props { state }) ] diff --git a/src/Gargantext/Components/NgramsTable/Search.purs b/src/Gargantext/Components/NgramsTable/Search.purs index 159fd730ecd5f4279e8e819c6910ac2c6c75f411..6d505f0ba6f41a0661ef33bcbe0a8490760ed022 100644 --- a/src/Gargantext/Components/NgramsTable/Search.purs +++ b/src/Gargantext/Components/NgramsTable/Search.purs @@ -7,6 +7,8 @@ import Data.Foldable (intercalate) import Data.Nullable (Nullable, null) import Gargantext.Components.Bootstrap as B import Gargantext.Components.Bootstrap.Types (ButtonVariant(..), Variant(..)) +import Gargantext.Components.Table (changePage) +import Gargantext.Components.Table.Types (Params) import Gargantext.Utils.Reactix as R2 import Reactix as R import Reactix.DOM.HTML as H @@ -18,6 +20,7 @@ here = R2.here "Gargantext.Components.NgramsTable.Search" type SearchInputProps = ( searchQuery :: T.Box String + , params :: T.Box Params ) -- "key": to prevent refreshing & losing input @@ -26,14 +29,14 @@ searchInput = R2.leafComponent searchInputCpt searchInputCpt :: R.Component ( key :: String | SearchInputProps ) searchInputCpt = here.component "searchInput" cpt where - cpt { searchQuery } _ = do + cpt { searchQuery, params } _ = do inputRef <- R.useRef null pure $ R2.row [ H.div { className: "col-12" } [ H.div { className: "input-group" } [ searchFieldInput { inputRef, searchQuery } [] - , searchButton { inputRef, searchQuery } [] + , searchButton { inputRef, searchQuery, params } [] ] ] ] @@ -41,6 +44,7 @@ searchInputCpt = here.component "searchInput" cpt type SearchButtonProps = ( inputRef :: R.Ref (Nullable DOM.Element) , searchQuery :: T.Box String + , params :: T.Box Params ) searchButton :: R2.Component SearchButtonProps @@ -48,7 +52,7 @@ searchButton = R.createElement searchButtonCpt searchButtonCpt :: R.Component SearchButtonProps searchButtonCpt = here.component "searchButton" cpt where - cpt { inputRef, searchQuery } _ = do + cpt { inputRef, searchQuery, params } _ = do -- | States -- | searchQuery' <- T.useLive T.unequal searchQuery @@ -59,9 +63,11 @@ searchButtonCpt = here.component "searchButton" cpt where onReset _ = do R2.setInputValue inputRef "" T.write_ "" searchQuery + changePage 1 params onSubmit _ = do T.write_ (R2.getInputValue inputRef) searchQuery + changePage 1 params -- | Render -- |