Skip to content

Commit 3e88740

Browse files
fix: extracted data for tabs
2 parents e00ce6a + 5783d29 commit 3e88740

File tree

7 files changed

+374
-172
lines changed

7 files changed

+374
-172
lines changed

package-lock.json

+74-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
"davidshimjs-qrcodejs": "0.0.2",
116116
"event-source-polyfill": "0.0.9",
117117
"highstock-release": "5.0.14",
118+
"html-react-parser": "^5.1.10",
118119
"jquery": "3.5.1",
119120
"jquery.scrollto": "2.1.2",
120121
"js-cookie": "2.2.0",

src/javascript/app/hooks/events.js

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
// events.js
2+
import { useEffect, useState } from 'react';
3+
4+
class EventEmitter {
5+
constructor() {
6+
this.events = {};
7+
}
8+
9+
subscribe(event, callback) {
10+
if (!this.events[event]) {
11+
this.events[event] = [];
12+
}
13+
this.events[event].push(callback);
14+
return () => {
15+
this.events[event] = this.events[event].filter(cb => cb !== callback);
16+
};
17+
}
18+
19+
emit(event, data) {
20+
if (this.events[event]) {
21+
this.events[event].forEach(callback => callback(data));
22+
}
23+
}
24+
}
25+
26+
const eventEmitter = new EventEmitter();
27+
28+
// Custom hooks
29+
const useCustomEvent = (eventName) => {
30+
const [hasNewChanges, setHasNewChanges] = useState(false);
31+
32+
useEffect(() => {
33+
const handleEvent = () => {
34+
setHasNewChanges(true);
35+
setTimeout(() => setHasNewChanges(false), 0);
36+
};
37+
38+
const unsubscribe = eventEmitter.subscribe(eventName, handleEvent);
39+
40+
return () => {
41+
unsubscribe();
42+
};
43+
}, [eventName]);
44+
45+
return hasNewChanges;
46+
};
47+
48+
// Trigger functions
49+
const triggerCustomEvent = (eventName) => {
50+
eventEmitter.emit(eventName);
51+
};
52+
53+
// Market Change
54+
export const useMarketChange = () => useCustomEvent('marketChange');
55+
export const triggerMarketChange = () => triggerCustomEvent('marketChange');
56+
57+
// Contract Change
58+
export const useContractChange = () => useCustomEvent('contractChange');
59+
export const triggerContractChange = () => triggerCustomEvent('contractChange');

0 commit comments

Comments
 (0)