2021-09-27 13:35:32 +02:00
|
|
|
import LocationOnIcon from '@material-ui/icons/LocationOn';
|
|
|
|
import PeopleIcon from '@material-ui/icons/People';
|
|
|
|
import LanguageIcon from '@material-ui/icons/Language';
|
|
|
|
import MapIcon from '@material-ui/icons/Map';
|
2021-11-24 14:36:21 +01:00
|
|
|
import RolloutIcon from '../component/common/RolloutIcon/RolloutIcon';
|
2021-09-27 13:35:32 +02:00
|
|
|
|
2021-03-30 15:14:02 +02:00
|
|
|
const nameMapping = {
|
|
|
|
applicationHostname: {
|
|
|
|
name: 'Hosts',
|
|
|
|
description: 'Enable the feature for a specific set of hostnames',
|
|
|
|
},
|
|
|
|
default: {
|
|
|
|
name: 'Standard',
|
2021-09-27 13:35:32 +02:00
|
|
|
description:
|
|
|
|
'The standard strategy is strictly on / off for your entire userbase.',
|
2021-03-30 15:14:02 +02:00
|
|
|
},
|
|
|
|
flexibleRollout: {
|
|
|
|
name: 'Gradual rollout',
|
|
|
|
description:
|
|
|
|
'Roll out to a percentage of your userbase, and ensure that the experience is the same for the user on each visit.',
|
|
|
|
},
|
|
|
|
gradualRolloutRandom: {
|
|
|
|
name: 'Randomized',
|
2021-09-27 13:35:32 +02:00
|
|
|
description:
|
|
|
|
'Roll out to a percentage of your userbase and randomly enable the feature on a per request basis',
|
2021-03-30 15:14:02 +02:00
|
|
|
},
|
|
|
|
gradualRolloutSessionId: {
|
|
|
|
name: 'Sessions',
|
2021-09-27 13:35:32 +02:00
|
|
|
description:
|
|
|
|
'Roll out to a percentage of your userbase and configure stickiness based on sessionId',
|
2021-03-30 15:14:02 +02:00
|
|
|
},
|
|
|
|
gradualRolloutUserId: {
|
|
|
|
name: 'Users',
|
2021-09-27 13:35:32 +02:00
|
|
|
description:
|
|
|
|
'Roll out to a percentage of your userbase and configure stickiness based on userId',
|
2021-03-30 15:14:02 +02:00
|
|
|
},
|
|
|
|
remoteAddress: {
|
|
|
|
name: 'IPs',
|
|
|
|
description: 'Enable the feature for a specific set of IP addresses',
|
|
|
|
},
|
|
|
|
userWithId: {
|
|
|
|
name: 'UserIDs',
|
|
|
|
description: 'Enable the feature for a specific set of userIds',
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2021-09-27 13:35:32 +02:00
|
|
|
export const getHumanReadbleStrategy = strategyName =>
|
|
|
|
nameMapping[strategyName];
|
2021-03-30 15:14:02 +02:00
|
|
|
|
|
|
|
export const getHumanReadbleStrategyName = strategyName => {
|
|
|
|
const humanReadableStrategy = nameMapping[strategyName];
|
|
|
|
|
|
|
|
if (humanReadableStrategy) {
|
|
|
|
return humanReadableStrategy.name;
|
|
|
|
}
|
|
|
|
return strategyName;
|
|
|
|
};
|
2021-09-27 13:35:32 +02:00
|
|
|
|
|
|
|
export const getFeatureStrategyIcon = strategyName => {
|
|
|
|
switch (strategyName) {
|
|
|
|
case 'remoteAddress':
|
|
|
|
return LanguageIcon;
|
|
|
|
case 'flexibleRollout':
|
2021-11-24 14:36:21 +01:00
|
|
|
return RolloutIcon;
|
2021-09-27 13:35:32 +02:00
|
|
|
case 'userWithId':
|
|
|
|
return PeopleIcon;
|
|
|
|
case 'applicationHostname':
|
|
|
|
return LocationOnIcon;
|
|
|
|
default:
|
|
|
|
return MapIcon;
|
|
|
|
}
|
|
|
|
};
|