diff --git a/src/App.jsx b/src/App.jsx
index af6dd1b..9337a45 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -12,6 +12,7 @@ import GroupedRowInnerRendererComponentExample from "./groupedRowInnerRendererEx
import FilterComponentExample from "./filterComponentExample/FilterComponentExample";
import MasterDetailExample from "./masterDetailExample/MasterDetailExample";
import SimpleReduxExample from "./simpleReduxExample/SimpleReduxExample";
+import SimpleGridExample from "./floatingFilter/SimpleGridExample";
class App extends Component {
constructor(props) {
@@ -48,6 +49,7 @@ class App extends Component {
this.setExample("full-width")}>Full Width Renderer Example
this.setExample("group-row")}>Grouped Row Inner Renderer Example
this.setExample("filter")}>Filters Component Example
+ this.setExample("floating-filter")}>Floating Filters
this.setExample("master-detail")}>Master Detail Example
this.setExample("simple-redux")}>Simple Redux Example
)
@@ -82,6 +84,9 @@ class App extends Component {
case 'simple-redux':
example = ;
break;
+ case 'floating-filter':
+ example = ;
+ break;
default:
example = ;
}
diff --git a/src/floatingFilter/SimpleGridExample.jsx b/src/floatingFilter/SimpleGridExample.jsx
new file mode 100644
index 0000000..1e2b707
--- /dev/null
+++ b/src/floatingFilter/SimpleGridExample.jsx
@@ -0,0 +1,60 @@
+import React, {Component} from "react";
+import {AgGridReact} from "ag-grid-react";
+import FloatingFilter from "./floatingFilter";
+
+export default class extends Component {
+ constructor(props) {
+ super(props);
+
+ this.state = {
+ columnDefs: this.createColumnDefs(),
+ rowData: this.createRowData()
+ }
+ }
+
+ onGridReady(params) {
+ this.gridApi = params.api;
+ this.columnApi = params.columnApi;
+
+ this.gridApi.sizeColumnsToFit();
+ }
+
+ createColumnDefs() {
+ return [
+ {headerName: "Make", field: "make", floatingFilterComponentFramework: FloatingFilter, filter:'set'},
+ {headerName: "Model", field: "model"},
+ {headerName: "Price", field: "price"}
+ ];
+ }
+
+ createRowData() {
+ return [
+ {make: "Toyota", model: "Celica", price: 35000},
+ {make: "Ford", model: "Mondeo", price: 32000},
+ {make: "Porsche", model: "Boxter", price: 72000}
+ ];
+ }
+
+ render() {
+ let containerStyle = {
+ height: 115,
+ width: 500
+ };
+
+ return (
+
+
Simple ag-Grid React Example
+
+
+
+ )
+ }
+};
diff --git a/src/floatingFilter/floatingFilter.jsx b/src/floatingFilter/floatingFilter.jsx
new file mode 100644
index 0000000..79538c7
--- /dev/null
+++ b/src/floatingFilter/floatingFilter.jsx
@@ -0,0 +1,39 @@
+import React, {Component} from "react";
+import ReactDOM from "react-dom";
+
+export default class FloatingFilter extends Component {
+ constructor(props) {
+ super();
+ this.state = {
+ parentModel: null
+ }
+ }
+
+ onParentModelChanged(parentModel){
+ this.setState ({
+ parentModel: parentModel
+ })
+ }
+
+ remove(item){
+ this.props.onFloatingFilterChanged({
+ model:this.state.parentModel.filter(it=>it != item)
+ });
+ }
+
+ render() {
+ if (!this.state.parentModel) return null;
+
+ let that = this;
+ let options = this.state.parentModel.map ((item, i)=>{
+ let that = this;
+ let removeMeListener = ()=>{
+ this.remove(item)
+ }
+ let removeMeElement = [x];
+ return {item}{removeMeElement};
+ });
+
+ return {options}
;
+ }
+}
\ No newline at end of file