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/app/ui/client/lib/UserCard.js

39 lines
818 B

import { Tracker } from 'meteor/tracker';
import { createEphemeralPortal } from '../../../../client/reactAdapters';
const Dep = new Tracker.Dependency();
let state;
let dom;
let unregister;
const createAchor = () => {
const div = document.createElement('div');
div.id = 'react-user-card';
document.body.appendChild(div);
return div;
};
export const closeUserCard = () => {
if (!dom) {
return;
}
Tracker.afterFlush(() => {
unregister = unregister && unregister();
});
};
const props = () => {
Dep.depend();
return state;
};
export const openUserCard = async ({ ...args }) => {
dom = dom || createAchor();
state = {
onClose: closeUserCard,
...args,
};
Dep.changed();
unregister = unregister || await createEphemeralPortal(() => import('../../../../client/channel/UserCard'), props, dom);
};