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/providers/UserProvider/hooks/useDeleteUser.ts

32 lines
975 B

import { useStream, useUserId } from '@rocket.chat/ui-contexts';
import { useEffect } from 'react';
import { Messages } from '../../../stores';
export const useDeleteUser = () => {
const notify = useStream('notify-logged');
const uid = useUserId();
const updateMessages = Messages.use((state) => state.update);
const removeMessages = Messages.use((state) => state.remove);
useEffect(() => {
if (!uid) {
return;
}
return notify('Users:Deleted', ({ userId, messageErasureType, replaceByUser }) => {
if (messageErasureType === 'Unlink' && replaceByUser) {
return updateMessages(
(record) => record.u._id === userId,
(record) => ({
...record,
alias: replaceByUser.alias,
u: { ...record.u, _id: replaceByUser._id, username: replaceByUser.username ?? record.u.username, name: undefined },
}),
);
}
removeMessages((record) => record.u._id === userId);
});
}, [notify, removeMessages, uid, updateMessages]);
};