Improve the frontend 4

This commit is contained in:
Urtzi Alfaro
2025-11-01 21:35:03 +01:00
parent f44d235c6d
commit 0220da1725
59 changed files with 5785 additions and 1870 deletions

View File

@@ -10,35 +10,27 @@ const SubscriptionEventsContext = createContext<SubscriptionEventsContextType |
export const SubscriptionEventsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
const [subscriptionVersion, setSubscriptionVersion] = useState(0);
const [subscribers, setSubscribers] = useState<Set<() => void>>(new Set());
const subscribersRef = React.useRef<Set<() => void>>(new Set());
const notifySubscriptionChanged = useCallback(() => {
setSubscriptionVersion(prev => prev + 1);
// Notify all subscribers
subscribers.forEach(callback => {
subscribersRef.current.forEach(callback => {
try {
callback();
} catch (error) {
console.warn('Error notifying subscription change subscriber:', error);
}
});
}, [subscribers]);
}, []); // Empty dependency array - function is now stable
const subscribeToChanges = useCallback((callback: () => void) => {
setSubscribers(prev => {
const newSubscribers = new Set(prev);
newSubscribers.add(callback);
return newSubscribers;
});
subscribersRef.current.add(callback);
// Return unsubscribe function
return () => {
setSubscribers(prev => {
const newSubscribers = new Set(prev);
newSubscribers.delete(callback);
return newSubscribers;
});
subscribersRef.current.delete(callback);
};
}, []);