Skip to content

Commit dafbf47

Browse files
refactor: add event when toggling view type in CapturedEventsList component
1 parent 44caca3 commit dafbf47

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

lib/components/CapturedEventsList/index.tsx

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,22 @@ export const CapturedEventsList = () => {
3737
const [events, setEvents] = useState<EventData[]>([])
3838
const dragRef = useRef<HTMLDivElement>(null)
3939

40+
const addEvent = () => {
41+
const event = {
42+
eventName: 'click',
43+
eventData: {
44+
target: 'button',
45+
},
46+
timestamp: new Date().toISOString(),
47+
}
48+
setEvents((prevEvents) => [...prevEvents, event])
49+
}
50+
4051
const resetPosition = () => setPosition({ x: 0, y: 0 })
4152
const toggleWindow = () => {
4253
setIsOpen((prev) => !prev)
4354
resetPosition()
55+
addEvent()
4456
}
4557

4658
const onMouseDown = (e: React.MouseEvent) => {
@@ -81,9 +93,19 @@ export const CapturedEventsList = () => {
8193
const clearAllEvents = useCallback(async () => {
8294
if (navigator.serviceWorker && navigator.serviceWorker.controller) {
8395
navigator.serviceWorker.controller.postMessage({ type: 'CLEAR_EVENTS' })
84-
setEvents([])
96+
navigator.serviceWorker.controller.postMessage({ type: 'CLEAR_EVENTS' })
97+
// Listen for the response from the service worker
98+
const handleMessage = (event: MessageEvent) => {
99+
if (event.data && event.data.type === 'EVENTS_CLEARED') {
100+
setEvents([])
101+
102+
navigator.serviceWorker.removeEventListener('message', handleMessage)
103+
}
104+
}
105+
106+
navigator.serviceWorker.addEventListener('message', handleMessage)
85107
}
86-
}, [events, setEvents])
108+
}, [setEvents])
87109

88110
useEffect(() => {
89111
document.addEventListener('mousemove', handleMouseMove)
@@ -163,9 +185,9 @@ export const CapturedEventsList = () => {
163185
</thead>
164186
<tbody>
165187
{events.map((item, index) => (
166-
<tr key={index}>
188+
<tr key={index} data-testid="count-tr">
167189
{allKeys.map((key) => (
168-
<td key={`${index}-${key}`}>
190+
<td key={`${index}-${key}`} data-testid="count-td">
169191
{typeof item[key as keyof EventData] === 'object'
170192
? JSON.stringify(item[key as keyof EventData])
171193
: String(item[key as keyof EventData] || '')}
@@ -234,6 +256,9 @@ export const CapturedEventsList = () => {
234256
className="icon-button"
235257
onClick={toggleViewType}
236258
data-testid="toggle-view-button"
259+
data-event="click"
260+
data-action="toggle-view"
261+
data-component="button"
237262
>
238263
{viewType === 'individual' ? (
239264
<TableIcon size={16} />

0 commit comments

Comments
 (0)