The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/client/lib/tracker.ts

18 lines
513 B

import { Tracker } from 'meteor/tracker';
export const asReactiveSource = <T>(subscribe: (cb: () => void) => () => void, getSnapshot: () => T) => {
if (!Tracker.active) {
return getSnapshot();
}
const computation = Tracker.currentComputation;
const unsubscribe = subscribe(() => computation.invalidate());
// const id = new Error().stack?.split('\n')[2].trim();
// console.log('sub', id);
computation.onInvalidate(() => {
unsubscribe();
// console.log('unsub', id);
});
return getSnapshot();
};