import type { IOmnichannelBusinessUnit } from '@rocket.chat/core-typings';
import { Callout } from '@rocket.chat/fuselage';
import { ContextualbarSkeletonBody } from '@rocket.chat/ui-client';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import { useTranslation } from 'react-i18next';
import UnitEdit from './UnitEdit';
import { useRemoveUnit } from './useRemoveUnit';
const UnitEditWithData = ({ unitId, onClose }: { unitId: IOmnichannelBusinessUnit['_id']; onClose: () => void }) => {
const { t } = useTranslation();
const getUnitById = useEndpoint('GET', '/v1/livechat/units/:id', { id: unitId });
const getMonitorsByUnitId = useEndpoint('GET', '/v1/livechat/units/:unitId/monitors', { unitId });
const getDepartmentsByUnitId = useEndpoint('GET', '/v1/livechat/units/:unitId/departments', { unitId });
const editUnit = useEndpoint('POST', '/v1/livechat/units/:id', { id: unitId });
const removeUnit = useRemoveUnit(unitId);
const {
data: unitData,
isError,
isLoading,
} = useQuery({
queryKey: ['livechat-getUnitById', unitId],
queryFn: async () => getUnitById(),
refetchOnWindowFocus: false,
});
const {
data: unitMonitors,
isError: unitMonitorsError,
isLoading: unitMonitorsLoading,
} = useQuery({
queryKey: ['livechat-getMonitorsByUnitId', unitId],
queryFn: async () => getMonitorsByUnitId({ unitId }),
refetchOnWindowFocus: false,
});
const {
data: unitDepartments,
isError: unitDepartmentsError,
isLoading: unitDepartmentsLoading,
} = useQuery({
queryKey: ['livechat-getDepartmentsByUnitId', unitId],
queryFn: async () => getDepartmentsByUnitId({ unitId }),
refetchOnWindowFocus: false,
});
if (isLoading || unitMonitorsLoading || unitDepartmentsLoading) {
return ;
}
if (isError || unitMonitorsError || unitDepartmentsError) {
return (
{t('Not_Available')}
);
}
return (
);
};
export default UnitEditWithData;