Entonces quiero usar array.filter para valores que no son cadenas vacías en un objeto en el siguiente escenario
setData( _.filter(rows, item => { return ( item.firstName.toLowerCase().includes(filterTable.searchByName.toLowerCase()) && item.email.toLowerCase().includes(filterTable.searchByEmail.toLowerCase()) && item.cognitoId.toLowerCase().includes(filterTable.searchByCognitoId.toLowerCase()) && item.mfaEnabled.toString() === filterTable.searchByMfa.toString() ); }) );Puedo usar ifelse para saber qué valores hay, pero será un infierno de ifelse
en el código anterior, quiero agregar esos elementos en _.filter cuyo valor es !== ''
por ejemplo, si filterTable.email === '' entonces quiero seguir
setData( _.filter(rows, item => { return ( item.firstName.toLowerCase().includes(filterTable.searchByName.toLowerCase()) && item.cognitoId.toLowerCase().includes(filterTable.searchByCognitoId.toLowerCase()) && item.mfaEnabled.toString() === filterTable.searchByMfa.toString() ); }) );Agregue otro && para la propiedad de búsqueda
Prueba así
setData( _.filter(rows, item => { return ( filterTable?.searchByName && item.firstName .toLowerCase() .includes(filterTable.searchByName.toLowerCase()) && filterTable?.searchByEmail && item.email .toLowerCase() .includes(filterTable.searchByEmail.toLowerCase()) && filterTable?.searchByCognitoId && item.cognitoId .toLowerCase() .includes(filterTable.searchByCognitoId.toLowerCase()) && item.mfaEnabled.toString() === filterTable.searchByMfa.toString() ); }) );Esto lo arregló gracias Amila por ayudar
setData( _.filter(rows, item => { return ( (filterTable?.searchByName !== '' ? item.firstName.toLowerCase().includes(filterTable.searchByName.toLowerCase()) || item.lastName.toLowerCase().includes(filterTable.searchByName.toLowerCase()) : true) && (filterTable?.searchByEmail !== '' ? item.email.toLowerCase().includes(filterTable.searchByEmail.toLowerCase()) : true) && (filterTable?.searchByCognitoId !== '' ? item.cognitoId.toLowerCase().includes(filterTable.searchByCognitoId.toLowerCase()) : true) ); }) );