@@ -6,6 +6,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
66import {
77 faBars ,
88 faEye ,
9+ faFilter ,
910 faLink ,
1011 faPen ,
1112 faTrash ,
@@ -40,6 +41,7 @@ const FEED_ITEM_DISPLAY = {
4041 EDIT_TITLE : 1 ,
4142 EDIT_URL : 2 ,
4243 EDIT_DISPLAY : 3 ,
44+ EDIT_FILTER : 4 ,
4345}
4446
4547const Feed = ( { feed } ) => {
@@ -49,6 +51,7 @@ const Feed = ({ feed }) => {
4951 const [ newCustomTitle , setNewCustomTitle ] = useState ( feed . customTitle )
5052 const [ newUrl , setNewUrl ] = useState ( feed . url )
5153 const [ newDisplay , setNewDisplay ] = useState ( feed . display )
54+ const [ newFilter , setNewFilter ] = useState ( feed . filter )
5255
5356 const dispatchTitle = ( ) => {
5457 dispatch ( editFeed ( feed . id , { customTitle : newCustomTitle } ) )
@@ -62,6 +65,10 @@ const Feed = ({ feed }) => {
6265 dispatch ( editFeed ( feed . id , { display : val || newDisplay } ) )
6366 }
6467
68+ const dispatchFilter = ( ) => {
69+ dispatch ( editFeed ( feed . id , { filter : newFilter } ) )
70+ }
71+
6572 const makeInputOnKeyUp = ( dispatchValue ) => (
6673 ( ev ) => {
6774 if ( ev . keyCode === 13 ) {
@@ -147,6 +154,21 @@ const Feed = ({ feed }) => {
147154 </ form >
148155 </ div >
149156 )
157+ } else if ( feedItemDisplay === FEED_ITEM_DISPLAY . EDIT_FILTER ) {
158+ feedDisplay = (
159+ < div className = { css . form } >
160+ < form onSubmit = { ( ev ) => ev . preventDefault ( ) } >
161+ < input
162+ className = "nondraggable"
163+ onChange = { ( ev ) => setNewFilter ( ev . target . value ) }
164+ onKeyUp = { makeInputOnKeyUp ( dispatchFilter ) }
165+ placeholder = { feed . filter }
166+ ref = { inputRef }
167+ value = { newFilter }
168+ />
169+ </ form >
170+ </ div >
171+ )
150172 } else {
151173 feedDisplay = (
152174 < span className = { css . title } title = { feed . url } >
@@ -186,6 +208,13 @@ const Feed = ({ feed }) => {
186208 >
187209 < FontAwesomeIcon icon = { faEye } />
188210 </ button >
211+ < button
212+ onClick = { makeEditOnClick ( dispatchUrl , FEED_ITEM_DISPLAY . EDIT_FILTER ) }
213+ title = "Edit filter"
214+ type = "button"
215+ >
216+ < FontAwesomeIcon icon = { faFilter } />
217+ </ button >
189218 < button
190219 onClick = { ( ) => dispatch ( deleteFeed ( feed . id ) ) }
191220 title = "Remove feed"
0 commit comments