{"action":"opened","issue":{"url":"https://api.github.com/repos/react-bootstrap-table/react-bootstrap-table2/issues/954","repository_url":"https://api.github.com/repos/react-bootstrap-table/react-bootstrap-table2","labels_url":"https://api.github.com/repos/react-bootstrap-table/react-bootstrap-table2/issues/954/labels{/name}","comments_url":"https://api.github.com/repos/react-bootstrap-table/react-bootstrap-table2/issues/954/comments","events_url":"https://api.github.com/repos/react-bootstrap-table/react-bootstrap-table2/issues/954/events","html_url":"https://github.com/react-bootstrap-table/react-bootstrap-table2/issues/954","id":447834020,"node_id":"MDU6SXNzdWU0NDc4MzQwMjA=","number":954,"title":"Remote Search: onSearch only triggers onTableChange if the input has changed","user":{"login":"ethannkschneider","id":28521074,"node_id":"MDQ6VXNlcjI4NTIxMDc0","avatar_url":"https://avatars2.githubusercontent.com/u/28521074?v=4","gravatar_id":"","url":"https://api.github.com/users/ethannkschneider","html_url":"https://github.com/ethannkschneider","followers_url":"https://api.github.com/users/ethannkschneider/followers","following_url":"https://api.github.com/users/ethannkschneider/following{/other_user}","gists_url":"https://api.github.com/users/ethannkschneider/gists{/gist_id}","starred_url":"https://api.github.com/users/ethannkschneider/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ethannkschneider/subscriptions","organizations_url":"https://api.github.com/users/ethannkschneider/orgs","repos_url":"https://api.github.com/users/ethannkschneider/repos","events_url":"https://api.github.com/users/ethannkschneider/events{/privacy}","received_events_url":"https://api.github.com/users/ethannkschneider/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-05-23T19:25:57Z","updated_at":"2019-05-23T19:25:57Z","closed_at":null,"author_association":"NONE","body":"Hi - great library!\r\n\r\nI am using the remote-all feature (with Toolkit Provider) and am wondering how I can get a bit more control over the search functionality.\r\n\r\nI have a custom search component that receives the tkProps.searchProps and fires the onSearch callback when the user searches. Normally, calling onSearch will trigger the onTableChange callback in the bootstrap table; however, this seems to only happen *when the value of the search input has changed.* Perhaps this is to prevent the user from spamming the search button. The issue is that I have extra dropdowns that the user can choose to modify their search criteria. Since these are not within the scope of the react bootstrap table code, changing these values doesn't allow the user to hit 'search' again and trigger the onTableSearch callback, *if they have not changed the input value.*\r\n\r\nWhat I would like is a way to ensure calling the onSearch prop in the search component to always trigger the onTableChange prop in the bootstrap table. Is this possible? I have some hacky custom code in place to help with this, but am wondering if there is a react-bootstrap-table way to do this. Thanks! \r\n\r\nI tried following this [example](https://react-bootstrap-table.github.io/react-bootstrap-table2/storybook/index.html?selectedKind=Remote&selectedStory=Remote%20Search&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel).\r\n\r\nMy guess at where this behavior originates from is [here](https://github.com/react-bootstrap-table/react-bootstrap-table2/blob/60eb47dc9e965854c5a3e50297a7928451f43c37/packages/react-bootstrap-table2-toolkit/context.js#L65). \r\n\r\nMy code is below. \r\n\r\nTableComponent: \r\n```\r\n<ToolkitProvider\r\n            keyField={keyField}\r\n            data={items}\r\n            columns={columns}\r\n            bootstrap4\r\n            search>\r\n            {\r\n                (tkProps) => (\r\n                    <div>\r\n                        <MySearch\r\n                            {...tkProps.searchProps}\r\n                            entityDisplayName={entityDisplayName}\r\n                            searchTypeOptions={searchTypeOptions}\r\n                            selectedSearchType={selectedSearchType}\r\n                            selectedFilters={selectedFilters}\r\n                            onSearchTypeChange={onSearchTypeChange}\r\n                            searchTypeTooltip={searchTypeTooltip}\r\n                            onReset={onReset}\r\n                        />\r\n...\r\n```\r\n\r\nMySearch component (render method): \r\n```\r\n\r\n    return (<div className=\"container-fluid\">\r\n        <div className=\"my-2 row align-items-center justify-content-between\">\r\n            <div className=\"col-auto\">\r\n                <div className=\"row\">\r\n                    <label> Search { entityDisplayName }:\r\n                        <input\r\n                            className=\"form-control\"\r\n                            ref={(n) => input = n} // eslint-disable-line\r\n                            type=\"text\"\r\n                            onKeyPress={handleEnter}\r\n                        />\r\n                    </label>\r\n...\r\n```"}}
{"actor":{"display_login":"ethannkschneider"}}