in src/devtools/views/StoreInspector/EventLogger/AllEventsList.js [99:242]
export default function AllEventsList({
events,
selectedEventID,
setSelectedEventID,
checked,
}: Props) {
const [eventSearch, setEventSearch] = useState('');
const fetchSearchBarText = useCallback(e => {
setEventSearch(e.target.value);
}, []);
let eventsArrayDisplay = events.map((event, index) => {
let displayText = '';
if (!checked['networkEvents'] && !checked['storeEvents']) {
return null;
} else if (
checked['networkEvents'] &&
!checked['storeEvents'] &&
event.name.toLowerCase().includes('store')
) {
return null;
} else if (
checked['storeEvents'] &&
!checked['networkEvents'] &&
(event.name.toLowerCase().includes('network') ||
event.name.toLowerCase().includes('query'))
) {
return null;
}
switch (event.name) {
case 'store.publish':
return event.optimistic ? (
<StoreEventDisplay
displayText="Store Optimistic Update"
key={index}
index={index}
setSelectedEventID={setSelectedEventID}
selectedEventID={selectedEventID}
events={events}
/>
) : (
<StoreEventDisplay
displayText="Store Publish"
key={index}
index={index}
setSelectedEventID={setSelectedEventID}
selectedEventID={selectedEventID}
events={events}
/>
);
case 'store.gc':
displayText = 'Store GC';
break;
case 'store.restore':
displayText = 'Store Restore';
break;
case 'store.snapshot':
displayText = 'Store Snapshot';
break;
case 'store.notify.start':
displayText = 'Notify Start';
break;
case 'store.notify.complete':
displayText = 'Notify Complete';
break;
case 'queryresource.fetch':
displayText = 'QueryResource Fetch';
break;
case 'network.start':
displayText = 'Network Start';
break;
case 'network.info':
displayText = 'Network Info';
break;
case 'network.next':
displayText = 'Network Next';
break;
case 'network.complete':
displayText = 'Network Complete';
break;
case 'network.subscribe':
displayText = 'Network Unsubscribe';
break;
case 'network.error':
displayText = 'Network Error';
break;
default:
return null;
}
return (
<StoreEventDisplay
displayText={displayText}
key={index}
index={index}
setSelectedEventID={setSelectedEventID}
selectedEventID={selectedEventID}
events={events}
/>
);
});
eventsArrayDisplay = useMemo(
() =>
eventsArrayDisplay.filter(
(event, index) =>
eventSearch === '' ||
eventSearch
.trim()
.split(' ')
.some(
search =>
(event != null &&
String(event.props.displayText)
.toLowerCase()
.includes(search.toLowerCase())) ||
(events[index] != null &&
appearsInObject(search.toLowerCase(), events[index]))
)
),
[eventsArrayDisplay, eventSearch, events]
);
return (
<div className={styles.AllEventsList}>
<input
className={styles.EventsSearchBar}
type="text"
onChange={fetchSearchBarText}
placeholder="Search"
></input>
<div>
{eventsArrayDisplay.length <= 0 && eventSearch !== '' ? (
<p className={styles.RecordNotFound}>
Sorry, no events with the name '{eventSearch}' were found!
</p>
) : (
eventsArrayDisplay
)}
</div>
</div>
);
}