mirror of
https://github.com/lux-tel/session-desktop.git
synced 2026-10-30 20:33:24 +00:00
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { getAppDispatch } from '../../state/dispatch';
|
|
import { useIsGroupV2, useIsMe, useIsPublic, useWeAreAdmin } from '../../hooks/useParamSelector';
|
|
import { updateEditProfilePictureModal } from '../../state/ducks/modalDialog';
|
|
import { getFeatureFlag } from '../../state/ducks/types/releasedFeaturesReduxTypes';
|
|
|
|
/**
|
|
* We can edit
|
|
* - our own avatar
|
|
* - communities avatar when we are an admin
|
|
* - groups avatars when are an admin (not kicked, not left, and not legacy groups)
|
|
*/
|
|
function useEditProfilePicture({ conversationId }: { conversationId: string }) {
|
|
const isMe = useIsMe(conversationId);
|
|
const isPublic = useIsPublic(conversationId);
|
|
const isGroup = useIsGroupV2(conversationId);
|
|
|
|
const weAreAdmin = useWeAreAdmin(conversationId);
|
|
|
|
const hasQAButtonsOn = getFeatureFlag('useClosedGroupV2QAButtons');
|
|
|
|
return isMe || ((isPublic || (isGroup && hasQAButtonsOn)) && weAreAdmin);
|
|
}
|
|
|
|
export function useEditProfilePictureCallback({ conversationId }: { conversationId: string }) {
|
|
const canEdit = useEditProfilePicture({ conversationId });
|
|
const dispatch = getAppDispatch();
|
|
|
|
if (!canEdit) {
|
|
return undefined;
|
|
}
|
|
|
|
return () => {
|
|
dispatch(updateEditProfilePictureModal({ conversationId }));
|
|
};
|
|
}
|