RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/DeleteTeamModalWithRooms.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import type { IRoom } from '@rocket.chat/core-typings';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { ReactElement } from 'react';
import React, { useMemo } from 'react';

import GenericModalSkeleton from '../../../../../components/GenericModal/GenericModalSkeleton';
import DeleteTeamModal from './DeleteTeamModal';

type DeleteTeamModalWithRoomsProps = {
    teamId: string;
    onConfirm: (roomsToDelete: IRoom['_id'][]) => void;
    onCancel: () => void;
};

const DeleteTeamModalWithRooms = ({ teamId, onConfirm, onCancel }: DeleteTeamModalWithRoomsProps): ReactElement => {
    const query = useMemo(() => ({ teamId }), [teamId]);
    const getTeamsListRooms = useEndpoint('GET', '/v1/teams.listRooms');
    const { data, isLoading } = useQuery(['getTeamsListRooms', query], async () => getTeamsListRooms(query));

    if (isLoading) {
        return <GenericModalSkeleton />;
    }
    return <DeleteTeamModal onCancel={onCancel} onConfirm={onConfirm} rooms={data?.rooms || []} />;
};

export default DeleteTeamModalWithRooms;