import type { IRoom } from '@rocket.chat/core-typings';
import {
Box,
Icon,
IconButton,
Option,
OptionAvatar,
OptionColumn,
OptionContent,
OptionMenu,
OptionSkeleton,
Tag,
} from '@rocket.chat/fuselage';
import { usePrefersReducedMotion } from '@rocket.chat/fuselage-hooks';
import { RoomAvatar } from '@rocket.chat/ui-avatar';
import { usePermission } from '@rocket.chat/ui-contexts';
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import TeamsChannelItemMenu from './TeamsChannelItemMenu';
import { usePreventPropagation } from '../../../../hooks/usePreventPropagation';
import { roomCoordinator } from '../../../../lib/rooms/roomCoordinator';
export type TeamsChannelItemProps = {
room: IRoom;
mainRoom: IRoom;
onClickView: (room: IRoom) => void;
reload: () => void;
};
const TeamsChannelItem = ({ room, mainRoom, onClickView, reload }: TeamsChannelItemProps) => {
const { t } = useTranslation();
const rid = room._id;
const type = room.t;
const [showButton, setShowButton] = useState();
const canRemoveTeamChannel = usePermission('remove-team-channel', mainRoom._id);
const canEditTeamChannel = usePermission('edit-team-channel', mainRoom._id);
const canDeleteChannel = usePermission(`delete-${type}`, rid);
const canDeleteTeamChannel = usePermission(`delete-team-${type === 'c' ? 'channel' : 'group'}`, mainRoom._id);
const canDelete = canDeleteChannel && canDeleteTeamChannel;
const isReduceMotionEnabled = usePrefersReducedMotion();
const handleMenuEvent = {
[isReduceMotionEnabled ? 'onMouseEnter' : 'onTransitionEnd']: setShowButton,
};
const onClick = usePreventPropagation();
if (!room) {
return ;
}
return (
);
};
export default TeamsChannelItem;