From 8e7c63ac6807589030d2949e6e3fa6dab02b5f2f Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Wed, 20 Nov 2024 15:16:28 +0100 Subject: [PATCH] feat: upgrade change requests (#8812) --- .../src/assets/img/upgradeChangeRequests.png | Bin 0 -> 19887 bytes .../FeatureStrategyForm.tsx | 7 ++ .../FeatureOverviewEnvironment.tsx | 7 ++ .../UpgradeChangeRequests.tsx | 89 ++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 frontend/src/assets/img/upgradeChangeRequests.png create mode 100644 frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/UpgradeChangeRequests.tsx diff --git a/frontend/src/assets/img/upgradeChangeRequests.png b/frontend/src/assets/img/upgradeChangeRequests.png new file mode 100644 index 0000000000000000000000000000000000000000..401e98620771940d5fc6c9c67a06a32ec75d4490 GIT binary patch literal 19887 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 hrAoP+=X literal 0 HcmV?d00001 diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm.tsx b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm.tsx index d69079bcb9..57b2dd300c 100644 --- a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm.tsx +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm.tsx @@ -46,6 +46,7 @@ import { usePlausibleTracker } from 'hooks/usePlausibleTracker'; import { BuiltInStrategies, formatStrategyName } from 'utils/strategyNames'; import { Badge } from 'component/common/Badge/Badge'; import EnvironmentIcon from 'component/common/EnvironmentIcon/EnvironmentIcon'; +import { UpgradeChangeRequests } from '../../FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/UpgradeChangeRequests'; interface IFeatureStrategyFormProps { feature: IFeatureToggle; @@ -262,6 +263,10 @@ export const FeatureStrategyForm = ({ ? 'Add to existing change request' : 'Add change to draft'; + const { isOss } = useUiConfig(); + const showChangeRequestUpgrade = + foundEnvironment?.type === 'production' && isOss(); + const navigate = useNavigate(); const { error: uiConfigError, loading: uiConfigLoading } = useUiConfig(); @@ -538,6 +543,8 @@ export const FeatureStrategyForm = ({ {Limit} + {showChangeRequestUpgrade ? : null} + featureEnvironment.name === env.name, ); + const { isOss } = useUiConfig(); + const showChangeRequestUpgrade = env.type === 'production' && isOss(); return ( + {showChangeRequestUpgrade ? ( + + ) : null} } /> diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/UpgradeChangeRequests.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/UpgradeChangeRequests.tsx new file mode 100644 index 0000000000..8d48accb96 --- /dev/null +++ b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/UpgradeChangeRequests.tsx @@ -0,0 +1,89 @@ +import { Box, IconButton, Link, styled, Tooltip } from '@mui/material'; +import upgradeChangeRequests from 'assets/img/upgradeChangeRequests.png'; +import { formatAssetPath } from 'utils/formatPath'; +import Close from '@mui/icons-material/Close'; +import { useLocalStorageState } from 'hooks/useLocalStorageState'; + +const Wrapper = styled(Box)(({ theme }) => ({ + backgroundColor: theme.palette.background.paper, + borderRadius: theme.shape.borderRadiusMedium, + border: `1px solid ${theme.palette.secondary.border}`, + padding: theme.spacing(2), + display: 'flex', + position: 'relative', +})); + +const StyledLink = styled(Link)(({ theme }) => ({ + textDecoration: 'none', + fontWeight: theme.typography.fontWeightBold, +})); + +const StyledImage = styled('img')(({ theme }) => ({ + height: theme.spacing(6), +})); + +const StyledCloseButton = styled(IconButton)(({ theme }) => ({ + position: 'absolute', + top: theme.spacing(0.5), + right: theme.spacing(0.5), +})); + +const MainContent = styled(Box)(({ theme }) => ({ + display: 'flex', + gap: theme.spacing(3), + marginLeft: theme.spacing(0.5), + marginRight: theme.spacing(1), +})); + +const MainText = styled(Box)(({ theme }) => ({ + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + gap: theme.spacing(0.5), +})); + +export const UpgradeChangeRequests = () => { + const [changeRequestsUpgrade, setChangeRequestUpgrade] = + useLocalStorageState<'open' | 'closed'>( + 'upgrade-change-requests:v1', + 'open', + ); + + if (changeRequestsUpgrade === 'closed') return null; + + return ( + + + + +

+ Include Change Requests in your process to bring + a pull request-like experience to your feature flags. + Reduce the risk of errors with the four-eyes approval + principle. +

+ + View our Enterprise offering + +
+
+ + { + setChangeRequestUpgrade('closed'); + }} + size='small' + > + + + +
+ ); +};