Skip to content

Commit

Permalink
Rename suggest changes to change request (#2311)
Browse files Browse the repository at this point in the history
* Rename change request

* Merge with review status

* Move events and permissions
  • Loading branch information
sjaanus committed Nov 2, 2022
1 parent da102a3 commit 5dd8616
Show file tree
Hide file tree
Showing 42 changed files with 328 additions and 414 deletions.
@@ -1,45 +1,36 @@
import { useCallback, VFC } from 'react';
import { VFC } from 'react';
import { Box } from '@mui/material';
import { SuggestedFeatureToggleChange } from '../SuggestedChangeOverview/SuggestedFeatureToggleChange/SuggestedFeatureToggleChange';
import { ChangeRequestFeatureToggleChange } from '../ChangeRequestOverview/ChangeRequestFeatureToggleChange/ChangeRequestFeatureToggleChange';
import { objectId } from 'utils/objectId';
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
import { ToggleStatusChange } from '../SuggestedChangeOverview/SuggestedFeatureToggleChange/ToggleStatusChange';
// import {
// StrategyAddedChange,
// StrategyDeletedChange,
// StrategyEditedChange,
// } from '../SuggestedChangeOverview/SuggestedFeatureToggleChange/StrategyChange';
// import {
// formatStrategyName,
// GetFeatureStrategyIcon,
// } from 'utils/strategyNames';
import type { ISuggestChangesResponse } from 'hooks/api/getters/useSuggestedChangesDraft/useSuggestedChangesDraft';
import { useSuggestChangeApi } from 'hooks/api/actions/useSuggestChangeApi/useSuggestChangeApi';
import { ToggleStatusChange } from '../ChangeRequestOverview/ChangeRequestFeatureToggleChange/ToggleStatusChange';
import type { IChangeRequestResponse } from 'hooks/api/getters/useChangeRequestDraft/useChangeRequestDraft';
import { useChangeRequestApi } from 'hooks/api/actions/useChangeRequestApi/useChangeRequestApi';
import { formatUnknownError } from 'utils/formatUnknownError';
import useToast from 'hooks/useToast';

interface ISuggestedChangeset {
suggestedChange: ISuggestChangesResponse;
interface IChangeRequest {
changeRequest: IChangeRequestResponse;
onRefetch?: () => void;
onNavigate?: () => void;
}

export const SuggestedChangeset: VFC<ISuggestedChangeset> = ({
suggestedChange,
export const ChangeRequest: VFC<IChangeRequest> = ({
changeRequest,
onRefetch,
onNavigate,
}) => {
const { discardSuggestions } = useSuggestChangeApi();
const { discardChangeRequestEvent } = useChangeRequestApi();
const { setToastData, setToastApiError } = useToast();
const onDiscard = (id: number) => async () => {
try {
await discardSuggestions(
suggestedChange.project,
suggestedChange.id,
await discardChangeRequestEvent(
changeRequest.project,
changeRequest.id,
id
);
setToastData({
title: 'Change discarded from suggestion draft.',
title: 'Change discarded from change request draft.',
type: 'success',
});
onRefetch?.();
Expand All @@ -51,11 +42,11 @@ export const SuggestedChangeset: VFC<ISuggestedChangeset> = ({
return (
<Box>
Changes
{suggestedChange.features?.map(featureToggleChange => (
<SuggestedFeatureToggleChange
{changeRequest.features?.map(featureToggleChange => (
<ChangeRequestFeatureToggleChange
key={featureToggleChange.name}
featureName={featureToggleChange.name}
projectId={suggestedChange.project}
projectId={changeRequest.project}
onNavigate={onNavigate}
>
{featureToggleChange.changes.map(change => (
Expand Down Expand Up @@ -92,7 +83,7 @@ export const SuggestedChangeset: VFC<ISuggestedChangeset> = ({
/> */}
</Box>
))}
</SuggestedFeatureToggleChange>
</ChangeRequestFeatureToggleChange>
))}
</Box>
);
Expand Down
Expand Up @@ -2,7 +2,7 @@ import { FC } from 'react';
import { Alert, Typography } from '@mui/material';
import { Dialogue } from 'component/common/Dialogue/Dialogue';

interface ISuggestChangesDialogueProps {
interface IChangeRequestDialogueProps {
isOpen: boolean;
onConfirm: () => void;
onClose: () => void;
Expand All @@ -11,7 +11,7 @@ interface ISuggestChangesDialogueProps {
enabled?: boolean;
}

export const SuggestChangesDialogue: FC<ISuggestChangesDialogueProps> = ({
export const ChangeRequestDialogue: FC<IChangeRequestDialogueProps> = ({
isOpen,
onConfirm,
onClose,
Expand All @@ -25,15 +25,15 @@ export const SuggestChangesDialogue: FC<ISuggestChangesDialogueProps> = ({
secondaryButtonText="Cancel"
onClick={onConfirm}
onClose={onClose}
title="Suggest changes"
title="Request changes"
>
<Alert severity="info" sx={{ mb: 2 }}>
Suggest changes is enabled for {environment}. Your changes needs to
Change requests is enabled for {environment}. Your changes needs to
be approved before they will be live. All the changes you do now
will be added into a draft that you can submit for review.
</Alert>
<Typography variant="body2" color="text.secondary">
Suggested changes:
Change requests:
</Typography>
<Typography>
<strong>{enabled ? 'Disable' : 'Enable'}</strong> feature toggle{' '}
Expand Down
Expand Up @@ -3,14 +3,14 @@ import { Link } from 'react-router-dom';
import { Box, Card, Typography } from '@mui/material';
import ToggleOnIcon from '@mui/icons-material/ToggleOn';

interface ISuggestedFeatureToggleChange {
interface IChangeRequestToggleChange {
featureName: string;
projectId: string;
onNavigate?: () => void;
}

export const SuggestedFeatureToggleChange: FC<
ISuggestedFeatureToggleChange
export const ChangeRequestFeatureToggleChange: FC<
IChangeRequestToggleChange
> = ({ featureName, projectId, onNavigate, children }) => {
return (
<Card
Expand Down
Expand Up @@ -4,8 +4,8 @@ import { PlaygroundResultChip } from 'component/playground/Playground/Playground
import { ReactComponent as ChangesAppliedIcon } from 'assets/icons/merge.svg';
import TimeAgo from 'react-timeago';

export const SuggestedChangeHeader: FC<{ suggestedChange: any }> = ({
suggestedChange,
export const ChangeRequestHeader: FC<{ changeRequest: any }> = ({
changeRequest,
}) => {
return (
<Paper
Expand All @@ -30,9 +30,9 @@ export const SuggestedChangeHeader: FC<{ suggestedChange: any }> = ({
}}
variant="h1"
>
Suggestion
Change request
<Typography variant="h1" component="p">
#{suggestedChange.id}
#{changeRequest.id}
</Typography>
</Typography>
<PlaygroundResultChip
Expand All @@ -43,10 +43,10 @@ export const SuggestedChangeHeader: FC<{ suggestedChange: any }> = ({
</Box>
<Box sx={{ display: 'flex', verticalAlign: 'center', gap: 2 }}>
<Typography sx={{ margin: 'auto 0' }}>
Created{' '}
<TimeAgo date={new Date(suggestedChange.createdAt)} /> by
Created <TimeAgo date={new Date(changeRequest.createdAt)} />{' '}
by
</Typography>
<Avatar src={suggestedChange?.createdBy?.avatar} />
<Avatar src={changeRequest?.createdBy?.avatar} />
<Card
variant="outlined"
sx={theme => ({
Expand All @@ -56,11 +56,11 @@ export const SuggestedChangeHeader: FC<{ suggestedChange: any }> = ({
>
Environment:{' '}
<Typography display="inline" fontWeight="bold">
{suggestedChange?.environment}
{changeRequest?.environment}
</Typography>{' '}
| Updates:{' '}
<Typography display="inline" fontWeight="bold">
{suggestedChange?.features.length} feature toggles
{changeRequest?.features.length} feature toggles
</Typography>
</Card>
</Box>
Expand Down
@@ -1,24 +1,24 @@
import { FC } from 'react';
import { Box, Button, Paper } from '@mui/material';
import { useSuggestedChange } from 'hooks/api/getters/useSuggestChange/useSuggestedChange';
import { SuggestedChangeHeader } from './SuggestedChangeHeader/SuggestedChangeHeader';
import { SuggestedChangeTimeline } from './SuggestedChangeTimeline/SuggestedChangeTimeline';
import { SuggestedChangeReviewers } from './SuggestedChangeReviewers/SuggestedChangeReviewers';
import { SuggestedChangeset } from '../SuggestedChangeset/SuggestedChangeset';
import { useChangeRequest } from 'hooks/api/getters/useChangeRequest/useChangeRequest';
import { ChangeRequestHeader } from './ChangeRequestHeader/ChangeRequestHeader';
import { ChangeRequestTimeline } from './ChangeRequestTimeline/ChangeRequestTimeline';
import { ChangeRequestReviewers } from './ChangeRequestReviewers/ChangeRequestReviewers';
import { ChangeRequest } from '../ChangeRequest/ChangeRequest';
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
import { useSuggestChangeApi } from 'hooks/api/actions/useSuggestChangeApi/useSuggestChangeApi';
import { useChangeRequestApi } from 'hooks/api/actions/useChangeRequestApi/useChangeRequestApi';
import useToast from 'hooks/useToast';
import { formatUnknownError } from 'utils/formatUnknownError';
import { SuggestedChangeReviewStatus } from './SuggestedChangeReviewStatus/SuggestedChangeReviewStatus';
import { ChangeRequestReviewStatus } from './ChangeRequestReviewStatus/ChangeRequestReviewStatus';

export const SuggestedChangeOverview: FC = () => {
export const ChangeRequestOverview: FC = () => {
const projectId = useRequiredPathParam('projectId');
const id = useRequiredPathParam('id');
const { data: suggestedChange } = useSuggestedChange(projectId, id);
const { applyChanges } = useSuggestChangeApi();
const { data: changeRequest } = useChangeRequest(projectId, id);
const { applyChanges } = useChangeRequestApi();
const { setToastData, setToastApiError } = useToast();

if (!suggestedChange) {
if (!changeRequest) {
return null;
}

Expand All @@ -37,7 +37,7 @@ export const SuggestedChangeOverview: FC = () => {

return (
<>
<SuggestedChangeHeader suggestedChange={suggestedChange} />
<ChangeRequestHeader changeRequest={changeRequest} />
<Box sx={{ display: 'flex' }}>
<Box
sx={{
Expand All @@ -46,8 +46,8 @@ export const SuggestedChangeOverview: FC = () => {
flexDirection: 'column',
}}
>
<SuggestedChangeTimeline />
<SuggestedChangeReviewers />
<ChangeRequestTimeline />
<ChangeRequestReviewers />
</Box>
<Paper
elevation={0}
Expand All @@ -65,8 +65,8 @@ export const SuggestedChangeOverview: FC = () => {
padding: theme.spacing(2),
})}
>
<SuggestedChangeset suggestedChange={suggestedChange} />
<SuggestedChangeReviewStatus approved={true} />
<ChangeRequest changeRequest={changeRequest} />
<ChangeRequestReviewStatus approved={true} />
<Button
variant="contained"
sx={{ marginTop: 2 }}
Expand Down
Expand Up @@ -11,13 +11,13 @@ import {
StyledErrorIcon,
StyledReviewTitle,
StyledDivider,
} from './SuggestChangeReviewStatus.styles';
} from './ChangeRequestReviewStatus.styles';

interface ISuggestChangeReviewsStatusProps {
approved: boolean;
}

export const SuggestedChangeReviewStatus: FC<
export const ChangeRequestReviewStatus: FC<
ISuggestChangeReviewsStatusProps
> = ({ approved }) => {
return (
Expand Down
@@ -1,6 +1,6 @@
import { Box, Paper } from '@mui/material';

export const SuggestedChangeReviewers = () => {
export const ChangeRequestReviewers = () => {
return (
<Paper
elevation={0}
Expand Down
Expand Up @@ -7,7 +7,7 @@ import TimelineDot from '@mui/lab/TimelineDot';
import TimelineConnector from '@mui/lab/TimelineConnector';
import TimelineContent from '@mui/lab/TimelineContent';

export const SuggestedChangeTimeline: FC = () => {
export const ChangeRequestTimeline: FC = () => {
return (
<Paper
elevation={0}
Expand Down

0 comments on commit 5dd8616

Please sign in to comment.