mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-14 00:19:16 +01:00
feat: env check in change requests (#2336)
This commit is contained in:
parent
bf521b58fd
commit
c6f906159b
@ -51,12 +51,9 @@ export const FeatureStrategyCreate = () => {
|
||||
|
||||
const { feature, refetchFeature } = useFeature(projectId, featureId);
|
||||
const ref = useRef<IFeatureToggle>(feature);
|
||||
const isChangeRequestEnabled = useChangeRequestsEnabled();
|
||||
const isChangeRequestEnabled = useChangeRequestsEnabled(environmentId);
|
||||
const { refetch: refetchChangeRequests } = useChangeRequestOpen(projectId);
|
||||
|
||||
const isChangeRequest =
|
||||
isChangeRequestEnabled && environmentId === 'production'; // FIXME: get from API - is it enabled
|
||||
|
||||
const { data, staleDataNotification, forceRefreshCache } =
|
||||
useCollaborateData<IFeatureToggle>(
|
||||
{
|
||||
@ -127,7 +124,7 @@ export const FeatureStrategyCreate = () => {
|
||||
const payload = createStrategyPayload(strategy);
|
||||
|
||||
try {
|
||||
if (isChangeRequest) {
|
||||
if (isChangeRequestEnabled) {
|
||||
await onStrategyRequestAdd(payload);
|
||||
} else {
|
||||
await onAddStrategy(payload);
|
||||
@ -169,7 +166,7 @@ export const FeatureStrategyCreate = () => {
|
||||
loading={loading}
|
||||
permission={CREATE_FEATURE_STRATEGY}
|
||||
errors={errors}
|
||||
isChangeRequest={isChangeRequest}
|
||||
isChangeRequest={isChangeRequestEnabled}
|
||||
/>
|
||||
{staleDataNotification}
|
||||
</FormTemplate>
|
||||
|
@ -46,12 +46,9 @@ export const FeatureStrategyEdit = () => {
|
||||
const { unleashUrl } = uiConfig;
|
||||
const navigate = useNavigate();
|
||||
const { addChangeRequest } = useChangeRequestApi();
|
||||
const isChangeRequestEnabled = useChangeRequestsEnabled();
|
||||
const isChangeRequestEnabled = useChangeRequestsEnabled(environmentId);
|
||||
const { refetch: refetchChangeRequests } = useChangeRequestOpen(projectId);
|
||||
|
||||
const isChangeRequest =
|
||||
isChangeRequestEnabled && environmentId === 'production'; // FIXME: get from API - is it enabled
|
||||
|
||||
const { feature, refetchFeature } = useFeature(projectId, featureId);
|
||||
|
||||
const ref = useRef<IFeatureToggle>(feature);
|
||||
@ -139,7 +136,7 @@ export const FeatureStrategyEdit = () => {
|
||||
const payload = createStrategyPayload(strategy);
|
||||
|
||||
try {
|
||||
if (isChangeRequest) {
|
||||
if (isChangeRequestEnabled) {
|
||||
await onStrategyRequestEdit(payload);
|
||||
} else {
|
||||
await onStrategyEdit(payload);
|
||||
@ -186,7 +183,7 @@ export const FeatureStrategyEdit = () => {
|
||||
loading={loading}
|
||||
permission={UPDATE_FEATURE_STRATEGY}
|
||||
errors={errors}
|
||||
isChangeRequest={isChangeRequest}
|
||||
isChangeRequest={isChangeRequestEnabled}
|
||||
/>
|
||||
{staleDataNotification}
|
||||
</FormTemplate>
|
||||
|
@ -165,7 +165,7 @@ export const FeatureStrategyRemove = ({
|
||||
}: IFeatureStrategyRemoveProps) => {
|
||||
const [openDialogue, setOpenDialogue] = useState(false);
|
||||
|
||||
const changeRequestsEnabled = useChangeRequestsEnabled();
|
||||
const changeRequestsEnabled = useChangeRequestsEnabled(environmentId);
|
||||
|
||||
const onRemove = useOnRemove({
|
||||
featureId,
|
||||
|
@ -35,7 +35,7 @@ const FeatureOverviewEnvSwitch = ({
|
||||
const { refetchFeature } = useFeature(projectId, featureId);
|
||||
const { setToastData, setToastApiError } = useToast();
|
||||
const { classes: styles } = useStyles();
|
||||
const changeRequestsEnabled = useChangeRequestsEnabled();
|
||||
const changeRequestsEnabled = useChangeRequestsEnabled(env.name);
|
||||
const {
|
||||
onChangeRequestToggle,
|
||||
onChangeRequestToggleClose,
|
||||
@ -85,7 +85,7 @@ const FeatureOverviewEnvSwitch = ({
|
||||
};
|
||||
|
||||
const toggleEnvironment = async (e: React.ChangeEvent) => {
|
||||
if (changeRequestsEnabled && env.name === 'production') {
|
||||
if (changeRequestsEnabled) {
|
||||
e.preventDefault();
|
||||
onChangeRequestToggle(featureId, env.name, !env.enabled);
|
||||
return;
|
||||
|
@ -32,7 +32,6 @@ import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
||||
import { FeatureArchiveDialog } from '../../common/FeatureArchiveDialog/FeatureArchiveDialog';
|
||||
import { DraftBanner } from 'component/changeRequest/DraftBanner/DraftBanner';
|
||||
import { MainLayout } from 'component/layout/MainLayout/MainLayout';
|
||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||
import { useChangeRequestsEnabled } from '../../../hooks/useChangeRequestsEnabled';
|
||||
|
||||
export const FeatureView = () => {
|
||||
|
@ -119,7 +119,7 @@ export const ProjectFeatureToggles = ({
|
||||
environment: string,
|
||||
enabled: boolean
|
||||
) => {
|
||||
if (changeRequestsEnabled && environment === 'production') {
|
||||
if (changeRequestsEnabled) {
|
||||
onChangeRequestToggle(featureName, environment, enabled);
|
||||
throw new Error('Additional approval required');
|
||||
}
|
||||
|
@ -1,7 +1,10 @@
|
||||
import useUiConfig from './api/getters/useUiConfig/useUiConfig';
|
||||
|
||||
export const useChangeRequestsEnabled = () => {
|
||||
export const useChangeRequestsEnabled = (environment?: string) => {
|
||||
// it can be swapped with proper settings instead of feature flag
|
||||
const { uiConfig } = useUiConfig();
|
||||
return Boolean(uiConfig?.flags?.changeRequests);
|
||||
return (
|
||||
Boolean(uiConfig?.flags?.changeRequests) &&
|
||||
(environment === 'production' || typeof environment === 'undefined')
|
||||
);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user