@@ -83,14 +83,27 @@ class DateFilter extends Component {
8383 return optionTags ;
8484 }
8585
86+ getDefaultComparator ( ) {
87+ const { defaultValue, filterState } = this . props ;
88+ if ( filterState && filterState . filterVal ) {
89+ return filterState . filterVal . comparator ;
90+ }
91+ if ( defaultValue && defaultValue . comparator ) {
92+ return defaultValue . comparator ;
93+ }
94+ return '' ;
95+ }
96+
8697 getDefaultDate ( ) {
87- let defaultDate = '' ;
88- const { defaultValue } = this . props ;
98+ // Set the appropriate format for the input type=date, i.e. "YYYY-MM-DD"
99+ const { defaultValue, filterState } = this . props ;
100+ if ( filterState && filterState . filterVal && filterState . filterVal . date ) {
101+ return dateParser ( filterState . filterVal . date ) ;
102+ }
89103 if ( defaultValue && defaultValue . date ) {
90- // Set the appropriate format for the input type=date, i.e. "YYYY-MM-DD"
91- defaultDate = dateParser ( new Date ( defaultValue . date ) ) ;
104+ return dateParser ( new Date ( defaultValue . date ) ) ;
92105 }
93- return defaultDate ;
106+ return '' ;
94107 }
95108
96109 applyFilter ( value , comparator , isInitial ) {
@@ -122,8 +135,7 @@ class DateFilter extends Component {
122135 dateStyle,
123136 className,
124137 comparatorClassName,
125- dateClassName,
126- defaultValue
138+ dateClassName
127139 } = this . props ;
128140
129141 return (
@@ -143,7 +155,7 @@ class DateFilter extends Component {
143155 style = { comparatorStyle }
144156 className = { `date-filter-comparator form-control ${ comparatorClassName } ` }
145157 onChange = { this . onChangeComparator }
146- defaultValue = { defaultValue ? defaultValue . comparator : '' }
158+ defaultValue = { this . getDefaultComparator ( ) }
147159 >
148160 { this . getComparatorOptions ( ) }
149161 </ select >
@@ -169,6 +181,7 @@ class DateFilter extends Component {
169181DateFilter . propTypes = {
170182 onFilter : PropTypes . func . isRequired ,
171183 column : PropTypes . object . isRequired ,
184+ filterState : PropTypes . object ,
172185 delay : PropTypes . number ,
173186 defaultValue : PropTypes . shape ( {
174187 date : PropTypes . oneOfType ( [ PropTypes . object ] ) ,
@@ -210,6 +223,7 @@ DateFilter.defaultProps = {
210223 date : undefined ,
211224 comparator : ''
212225 } ,
226+ filterState : { } ,
213227 withoutEmptyComparatorOption : false ,
214228 comparators : legalComparators ,
215229 placeholder : undefined ,
0 commit comments