1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-09 00:18:00 +01:00

chore: remove usage of feature naming pattern flag (#5364)

In preparation for this feature going GA
This commit is contained in:
Thomas Heartman 2023-11-20 12:42:24 +01:00 committed by GitHub
parent fd099e242e
commit 90d6c7c0ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 108 additions and 135 deletions

View File

@ -23,7 +23,6 @@ import React from 'react';
import { useAuthPermissions } from 'hooks/api/getters/useAuth/useAuthPermissions';
import { FeatureNamingType } from 'interfaces/project';
import { FeatureNamingPatternInfo } from '../FeatureNamingPatternInfo/FeatureNamingPatternInfo';
import { useUiFlag } from 'hooks/useUiFlag';
interface IFeatureToggleForm {
type: string;
@ -122,15 +121,12 @@ const FeatureForm: React.FC<IFeatureToggleForm> = ({
const navigate = useNavigate();
const { permissions } = useAuthPermissions();
const editable = mode !== 'Edit';
const featureNamingPatternEnabled = useUiFlag('featureNamingPattern');
const renderToggleDescription = () => {
return featureTypes.find((toggle) => toggle.id === type)?.description;
};
const displayFeatureNamingInfo = Boolean(
featureNamingPatternEnabled && featureNaming?.pattern,
);
const displayFeatureNamingInfo = Boolean(featureNaming?.pattern);
React.useEffect(() => {
if (featureNaming?.pattern && validateToggleName && name) {

View File

@ -136,7 +136,6 @@ const ProjectEnterpriseSettingsForm: React.FC<IProjectEnterpriseSettingsForm> =
clearErrors,
}) => {
const privateProjects = useUiFlag('privateProjects');
const shouldShowFlagNaming = useUiFlag('featureNamingPattern');
const { setPreviousPattern, trackPattern } =
useFeatureNamePatternTracking();
@ -253,9 +252,6 @@ const ProjectEnterpriseSettingsForm: React.FC<IProjectEnterpriseSettingsForm> =
options={projectModeOptions}
/>
</>
<ConditionallyRender
condition={Boolean(shouldShowFlagNaming)}
show={
<StyledFieldset>
<Box
sx={{
@ -279,14 +275,14 @@ const ProjectEnterpriseSettingsForm: React.FC<IProjectEnterpriseSettingsForm> =
>
JavaScript RegEx
</a>{' '}
used to enforce feature flag names
within this project. The regex will be
surrounded by a leading <code>^</code>{' '}
and a trailing <code>$</code>.
used to enforce feature flag names within this
project. The regex will be surrounded by a
leading <code>^</code> and a trailing{' '}
<code>$</code>.
</p>
<p>
Leave it empty if you dont want to add
a naming pattern.
Leave it empty if you dont want to add a naming
pattern.
</p>
</StyledPatternNamingExplanation>
</StyledSubtitle>
@ -313,16 +309,14 @@ const ProjectEnterpriseSettingsForm: React.FC<IProjectEnterpriseSettingsForm> =
error={Boolean(errors.featureNamingPattern)}
errorText={errors.featureNamingPattern}
onChange={(e) =>
onSetFeatureNamingPattern(
e.target.value,
)
onSetFeatureNamingPattern(e.target.value)
}
/>
<StyledSubtitle>
<p id='pattern-additional-description'>
The example and description will be
shown to users when they create a new
feature flag in this project.
The example and description will be shown to
users when they create a new feature flag in
this project.
</p>
</StyledSubtitle>
@ -336,9 +330,7 @@ const ProjectEnterpriseSettingsForm: React.FC<IProjectEnterpriseSettingsForm> =
error={Boolean(errors.namingExample)}
errorText={errors.namingExample}
onChange={(e) =>
onSetFeatureNamingExample(
e.target.value,
)
onSetFeatureNamingExample(e.target.value)
}
/>
<StyledTextField
@ -353,15 +345,11 @@ The flag name should contain the project name, the feature name, and the ticket
minRows={5}
value={featureNamingDescription || ''}
onChange={(e) =>
onSetFeatureNamingDescription(
e.target.value,
)
onSetFeatureNamingDescription(e.target.value)
}
/>
</StyledFlagNamingContainer>
</StyledFieldset>
}
/>
<StyledButtonContainer>{children}</StyledButtonContainer>
</StyledForm>
);

View File

@ -61,7 +61,6 @@ export type UiFlags = {
customRootRolesKillSwitch?: boolean;
strategyVariant?: boolean;
lastSeenByEnvironment?: boolean;
featureNamingPattern?: boolean;
doraMetrics?: boolean;
variantTypeNumber?: boolean;
privateProjects?: boolean;

View File

@ -84,7 +84,6 @@ exports[`should create default config 1`] = `
"doraMetrics": false,
"embedProxy": true,
"embedProxyFrontend": true,
"featureNamingPattern": false,
"featureSearchAPI": false,
"featureSearchFrontend": false,
"featuresExportImport": true,

View File

@ -159,7 +159,6 @@ beforeAll(async () => {
experimental: {
flags: {
featuresExportImport: true,
featureNamingPattern: true,
dependentFeatures: true,
},
},

View File

@ -1168,7 +1168,6 @@ class FeatureToggleService {
projectId: string,
featureNames: string[],
): Promise<FeatureNameCheckResultWithFeaturePattern> {
if (this.flagResolver.isEnabled('featureNamingPattern')) {
const project = await this.projectStore.get(projectId);
const patternData = project.featureNaming;
const namingPattern = patternData?.pattern;
@ -1183,7 +1182,7 @@ class FeatureToggleService {
return { ...result, featureNaming: patternData };
}
}
}
return { state: 'valid' };
}

View File

@ -39,7 +39,7 @@ const irrelevantDate = new Date();
beforeAll(async () => {
const config = createTestConfig({
experimental: {
flags: { featureNamingPattern: true, playgroundImprovements: true },
flags: { playgroundImprovements: true },
},
});
db = await dbInit(

View File

@ -23,7 +23,6 @@ export type IFlagKey =
| 'filterInvalidClientMetrics'
| 'lastSeenByEnvironment'
| 'customRootRolesKillSwitch'
| 'featureNamingPattern'
| 'doraMetrics'
| 'variantTypeNumber'
| 'privateProjects'
@ -116,10 +115,6 @@ const flags: IFlags = {
process.env.UNLEASH_EXPERIMENTAL_CUSTOM_ROOT_ROLES_KILL_SWITCH,
false,
),
featureNamingPattern: parseEnvVarBoolean(
process.env.UNLEASH_EXPERIMENTAL_FEATURE_NAMING_PATTERN,
false,
),
doraMetrics: parseEnvVarBoolean(
process.env.UNLEASH_EXPERIMENTAL_DORA_METRICS,
false,

View File

@ -38,7 +38,6 @@ process.nextTick(async () => {
anonymiseEventLog: false,
responseTimeWithAppNameKillSwitch: false,
lastSeenByEnvironment: true,
featureNamingPattern: true,
doraMetrics: true,
variantTypeNumber: true,
privateProjects: true,

View File

@ -21,7 +21,6 @@ beforeAll(async () => {
experimental: {
flags: {
strictSchemaValidation: true,
featureNamingPattern: true,
dependentFeatures: true,
},
},