diff --git a/ee/client/omnichannel/units/EditUnit.js b/ee/client/omnichannel/units/EditUnit.js
index d932cb2e949..0bd98b25700 100644
--- a/ee/client/omnichannel/units/EditUnit.js
+++ b/ee/client/omnichannel/units/EditUnit.js
@@ -12,7 +12,7 @@ import { useForm } from '../../../../client/hooks/useForm';
import { useRoute } from '../../../../client/contexts/RouterContext';
-export function UnitEditWithData({ unitId, reload }) {
+export function UnitEditWithData({ unitId, reload, allUnits }) {
const query = useMemo(() => ({ unitId }), [unitId]);
const { data, state, error } = useEndpointDataExperimental('livechat/units.getOne', query);
const { data: availableDepartments, state: availableDepartmentsState, error: availableDepartmentsError } = useEndpointDataExperimental('livechat/department');
@@ -29,16 +29,19 @@ export function UnitEditWithData({ unitId, reload }) {
return {t('Not_Available')};
}
+ const filteredDepartments = { departments: availableDepartments.departments.filter((department) => !allUnits || !allUnits.units || !department.ancestors || department.ancestors[0] === unitId || !allUnits.units.find((unit) => unit._id === department.ancestors[0])) };
+
+
return ;
}
-export function UnitNew({ reload }) {
+export function UnitNew({ reload, allUnits }) {
const t = useTranslation();
const { data: availableDepartments, state: availableDepartmentsState, error: availableDepartmentsError } = useEndpointDataExperimental('livechat/department');
@@ -52,7 +55,8 @@ export function UnitNew({ reload }) {
return {t('Not_found')};
}
- return ;
+ const filteredDepartments = { departments: availableDepartments.departments.filter((department) => !allUnits || !allUnits.units || !department.ancestors || !allUnits.units.find((unit) => unit._id === department.ancestors[0])) };
+ return ;
}
export function UnitEdit({ data, unitId, isNew, availableDepartments, availableMonitors, unitMonitors, reload, ...props }) {
@@ -89,10 +93,10 @@ export function UnitEdit({ data, unitId, isNew, availableDepartments, availableM
monitors,
} = values;
- const nameError = useMemo(() => (!name || name.length === 0 ? t('The_field_is_required', 'name') : undefined), [name, t]);
- const visibilityError = useMemo(() => (!visibility || visibility.length === 0 ? t('The_field_is_required', 'description') : undefined), [visibility, t]);
- const departmentError = useMemo(() => (!departments || departments.length === 0 ? t('The_field_is_required', 'departments') : undefined), [departments, t]);
- const unitMonitorsError = useMemo(() => (!monitors || monitors.length === 0 ? t('The_field_is_required', 'monitors') : undefined), [monitors, t]);
+ const nameError = useMemo(() => (!name || name.length === 0 ? t('The_field_is_required', t('name')) : undefined), [name, t]);
+ const visibilityError = useMemo(() => (!visibility || visibility.length === 0 ? t('The_field_is_required', t('description')) : undefined), [visibility, t]);
+ const departmentError = useMemo(() => (!departments || departments.length === 0 ? t('The_field_is_required', t('departments')) : undefined), [departments, t]);
+ const unitMonitorsError = useMemo(() => (!monitors || monitors.length === 0 ? t('The_field_is_required', t('monitors')) : undefined), [monitors, t]);
const saveUnit = useMethod('livechat:saveUnit');
diff --git a/ee/client/omnichannel/units/UnitsRoute.js b/ee/client/omnichannel/units/UnitsRoute.js
index 822aae90e09..6f0ffeda301 100644
--- a/ee/client/omnichannel/units/UnitsRoute.js
+++ b/ee/client/omnichannel/units/UnitsRoute.js
@@ -127,11 +127,11 @@ function UnitsRoute() {
- {context === 'edit' && }
- {context === 'new' && }
+ {context === 'edit' && }
+ {context === 'new' && }
;
- }, [t, context, id, unitsRoute, reload]);
+ }, [t, context, id, unitsRoute, reload, data]);
if (!canViewUnits) {
return ;