Redesign user profile view (#2396)
Some checks failed
Deploy to Netlify (dev) / Deploy to Netlify (push) Has been cancelled

* WIP - new profile view

* render common rooms in user profile

* add presence component

* WIP - room user profile

* temp hide profile button

* show mutual rooms in spaces, rooms and direct messages categories

* add message button

* add option to change user powers in profile

* improve ban info and option to unban

* add share user button in user profile

* add option to block user in user profile

* improve blocked user alert body

* add moderation tool in user profile

* open profile view on left side in member drawer

* open new user profile in all places
This commit is contained in:
Ajay Bura 2025-08-09 17:46:10 +05:30 committed by GitHub
parent a41dee4a55
commit 4d1ae4eafd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 1899 additions and 34 deletions

View file

@ -0,0 +1,41 @@
import { useCallback } from 'react';
import { useAtomValue, useSetAtom } from 'jotai';
import { Position, RectCords } from 'folds';
import { userRoomProfileAtom, UserRoomProfileState } from '../userRoomProfile';
export const useUserRoomProfileState = (): UserRoomProfileState | undefined => {
const data = useAtomValue(userRoomProfileAtom);
return data;
};
type CloseCallback = () => void;
export const useCloseUserRoomProfile = (): CloseCallback => {
const setUserRoomProfile = useSetAtom(userRoomProfileAtom);
const close: CloseCallback = useCallback(() => {
setUserRoomProfile(undefined);
}, [setUserRoomProfile]);
return close;
};
type OpenCallback = (
roomId: string,
spaceId: string | undefined,
userId: string,
cords: RectCords,
position?: Position
) => void;
export const useOpenUserRoomProfile = (): OpenCallback => {
const setUserRoomProfile = useSetAtom(userRoomProfileAtom);
const open: OpenCallback = useCallback(
(roomId, spaceId, userId, cords, position) => {
setUserRoomProfile({ roomId, spaceId, userId, cords, position });
},
[setUserRoomProfile]
);
return open;
};