mirror of
https://github.com/Unleash/unleash.git
synced 2025-05-17 01:17:29 +02:00
remove change request flag (#2703)
This commit is contained in:
parent
97cf3cd418
commit
f4480d516b
@ -5,10 +5,6 @@ import useProjectRolePermissions from 'hooks/api/getters/useProjectRolePermissio
|
|||||||
import useProjectRolesApi from 'hooks/api/actions/useProjectRolesApi/useProjectRolesApi';
|
import useProjectRolesApi from 'hooks/api/actions/useProjectRolesApi/useProjectRolesApi';
|
||||||
import { formatUnknownError } from 'utils/formatUnknownError';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||||
import {
|
|
||||||
APPLY_CHANGE_REQUEST,
|
|
||||||
APPROVE_CHANGE_REQUEST,
|
|
||||||
} from 'component/providers/AccessProvider/permissions';
|
|
||||||
|
|
||||||
export interface ICheckedPermission {
|
export interface ICheckedPermission {
|
||||||
[key: string]: IPermission;
|
[key: string]: IPermission;
|
||||||
@ -170,35 +166,12 @@ const useProjectRoleForm = (
|
|||||||
setErrors({});
|
setErrors({});
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: Clean up when feature is complete - changeRequests
|
|
||||||
let filteredPermissions = cloneDeep(permissions);
|
|
||||||
|
|
||||||
if (!uiConfig?.flags.changeRequests) {
|
|
||||||
filteredPermissions.environments = filteredPermissions.environments.map(
|
|
||||||
env => {
|
|
||||||
env.permissions = env.permissions.filter(permission => {
|
|
||||||
if (!uiConfig?.flags.changeRequests) {
|
|
||||||
if (
|
|
||||||
permission.name === APPLY_CHANGE_REQUEST ||
|
|
||||||
permission.name === APPROVE_CHANGE_REQUEST
|
|
||||||
) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
|
|
||||||
return env;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
roleName,
|
roleName,
|
||||||
roleDesc,
|
roleDesc,
|
||||||
errors,
|
errors,
|
||||||
checkedPermissions,
|
checkedPermissions,
|
||||||
permissions: filteredPermissions,
|
permissions,
|
||||||
setRoleName,
|
setRoleName,
|
||||||
setRoleDesc,
|
setRoleDesc,
|
||||||
handlePermissionChange,
|
handlePermissionChange,
|
||||||
|
@ -7,7 +7,7 @@ import { styled, Tab, Tabs } from '@mui/material';
|
|||||||
import { Delete, Edit } from '@mui/icons-material';
|
import { Delete, Edit } from '@mui/icons-material';
|
||||||
import useToast from 'hooks/useToast';
|
import useToast from 'hooks/useToast';
|
||||||
import useQueryParams from 'hooks/useQueryParams';
|
import useQueryParams from 'hooks/useQueryParams';
|
||||||
import { useEffect, useMemo, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import ProjectEnvironment from '../ProjectEnvironment/ProjectEnvironment';
|
import ProjectEnvironment from '../ProjectEnvironment/ProjectEnvironment';
|
||||||
import { ProjectFeaturesArchive } from './ProjectFeaturesArchive/ProjectFeaturesArchive';
|
import { ProjectFeaturesArchive } from './ProjectFeaturesArchive/ProjectFeaturesArchive';
|
||||||
import ProjectOverview from './ProjectOverview';
|
import ProjectOverview from './ProjectOverview';
|
||||||
@ -77,51 +77,44 @@ const Project = () => {
|
|||||||
const { isOss, uiConfig } = useUiConfig();
|
const { isOss, uiConfig } = useUiConfig();
|
||||||
const basePath = `/projects/${projectId}`;
|
const basePath = `/projects/${projectId}`;
|
||||||
const projectName = project?.name || projectId;
|
const projectName = project?.name || projectId;
|
||||||
const { isChangeRequestConfiguredInAnyEnv, isChangeRequestFlagEnabled } =
|
const { isChangeRequestConfiguredInAnyEnv } =
|
||||||
useChangeRequestsEnabled(projectId);
|
useChangeRequestsEnabled(projectId);
|
||||||
const { favorite, unfavorite } = useFavoriteProjectsApi();
|
const { favorite, unfavorite } = useFavoriteProjectsApi();
|
||||||
|
|
||||||
const [showDelDialog, setShowDelDialog] = useState(false);
|
const [showDelDialog, setShowDelDialog] = useState(false);
|
||||||
|
|
||||||
const tabs = useMemo(() => {
|
const tabs = [
|
||||||
const tabArray = [
|
{
|
||||||
{
|
title: 'Overview',
|
||||||
title: 'Overview',
|
path: basePath,
|
||||||
path: basePath,
|
name: 'overview',
|
||||||
name: 'overview',
|
},
|
||||||
},
|
{
|
||||||
{
|
title: 'Health',
|
||||||
title: 'Health',
|
path: `${basePath}/health`,
|
||||||
path: `${basePath}/health`,
|
name: 'health',
|
||||||
name: 'health',
|
},
|
||||||
},
|
{
|
||||||
{
|
title: 'Archive',
|
||||||
title: 'Archive',
|
path: `${basePath}/archive`,
|
||||||
path: `${basePath}/archive`,
|
name: 'archive',
|
||||||
name: 'archive',
|
},
|
||||||
},
|
{
|
||||||
...(isChangeRequestFlagEnabled
|
title: 'Change requests',
|
||||||
? [
|
path: `${basePath}/change-requests`,
|
||||||
{
|
name: 'change-request',
|
||||||
title: 'Change requests',
|
},
|
||||||
path: `${basePath}/change-requests`,
|
{
|
||||||
name: 'change-request',
|
title: 'Project settings',
|
||||||
},
|
path: `${basePath}/settings`,
|
||||||
]
|
name: 'settings',
|
||||||
: []),
|
},
|
||||||
{
|
{
|
||||||
title: 'Project settings',
|
title: 'Event log',
|
||||||
path: `${basePath}/settings`,
|
path: `${basePath}/logs`,
|
||||||
name: 'settings',
|
name: 'logs',
|
||||||
},
|
},
|
||||||
{
|
];
|
||||||
title: 'Event log',
|
|
||||||
path: `${basePath}/logs`,
|
|
||||||
name: 'logs',
|
|
||||||
},
|
|
||||||
];
|
|
||||||
return tabArray;
|
|
||||||
}, [isChangeRequestFlagEnabled]);
|
|
||||||
|
|
||||||
const activeTab = [...tabs]
|
const activeTab = [...tabs]
|
||||||
.reverse()
|
.reverse()
|
||||||
@ -285,21 +278,11 @@ const Project = () => {
|
|||||||
<Route path="logs" element={<ProjectLog />} />
|
<Route path="logs" element={<ProjectLog />} />
|
||||||
<Route
|
<Route
|
||||||
path="change-requests"
|
path="change-requests"
|
||||||
element={
|
element={<ProjectChangeRequests />}
|
||||||
<ConditionallyRender
|
|
||||||
condition={isChangeRequestFlagEnabled}
|
|
||||||
show={<ProjectChangeRequests />}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
/>
|
/>
|
||||||
<Route
|
<Route
|
||||||
path="change-requests/:id"
|
path="change-requests/:id"
|
||||||
element={
|
element={<ChangeRequestOverview />}
|
||||||
<ConditionallyRender
|
|
||||||
condition={isChangeRequestFlagEnabled}
|
|
||||||
show={<ChangeRequestOverview />}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
/>
|
/>
|
||||||
<Route path="settings/*" element={<ProjectSettings />} />
|
<Route path="settings/*" element={<ProjectSettings />} />
|
||||||
<Route path="*" element={<ProjectOverview />} />
|
<Route path="*" element={<ProjectOverview />} />
|
||||||
|
@ -1,34 +1,26 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import useUiConfig from './api/getters/useUiConfig/useUiConfig';
|
|
||||||
import { useChangeRequestConfig } from './api/getters/useChangeRequestConfig/useChangeRequestConfig';
|
import { useChangeRequestConfig } from './api/getters/useChangeRequestConfig/useChangeRequestConfig';
|
||||||
|
|
||||||
export const useChangeRequestsEnabled = (projectId: string) => {
|
export const useChangeRequestsEnabled = (projectId: string) => {
|
||||||
const { uiConfig } = useUiConfig();
|
|
||||||
const { data } = useChangeRequestConfig(projectId);
|
const { data } = useChangeRequestConfig(projectId);
|
||||||
|
|
||||||
const isChangeRequestConfigured = React.useCallback(
|
const isChangeRequestConfigured = React.useCallback(
|
||||||
(environment: string): boolean => {
|
(environment: string): boolean => {
|
||||||
const enabled = data.some(draft => {
|
return data.some(draft => {
|
||||||
return (
|
return (
|
||||||
draft.environment === environment &&
|
draft.environment === environment &&
|
||||||
draft.changeRequestEnabled
|
draft.changeRequestEnabled
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
return Boolean(uiConfig?.flags.changeRequests) && enabled;
|
|
||||||
},
|
},
|
||||||
[JSON.stringify(data)]
|
[JSON.stringify(data)]
|
||||||
);
|
);
|
||||||
|
|
||||||
const isChangeRequestConfiguredInAnyEnv = React.useCallback((): boolean => {
|
const isChangeRequestConfiguredInAnyEnv = React.useCallback((): boolean => {
|
||||||
return (
|
return data.some(draft => draft.changeRequestEnabled);
|
||||||
Boolean(uiConfig?.flags.changeRequests) &&
|
|
||||||
data.some(draft => draft.changeRequestEnabled)
|
|
||||||
);
|
|
||||||
}, [JSON.stringify(data)]);
|
}, [JSON.stringify(data)]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
isChangeRequestFlagEnabled: Boolean(uiConfig?.flags.changeRequests),
|
|
||||||
isChangeRequestConfigured,
|
isChangeRequestConfigured,
|
||||||
isChangeRequestConfiguredInAnyEnv,
|
isChangeRequestConfiguredInAnyEnv,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user