Fix breaking Manage App screen when app is disabled (#3777)

This commit is contained in:
Lukasz Ostrowski 2023-06-20 16:03:42 +02:00 committed by GitHub
parent 2db64cd135
commit d98aa2ac8a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 32 deletions

View file

@ -21,22 +21,31 @@ export const AppDetailsPage: React.FC<AppDetailsPageProps> = ({
onAppActivateOpen,
onAppDeactivateOpen,
onAppDeleteOpen,
}) => (
<>
<Header
data={data}
onAppActivateOpen={onAppActivateOpen}
onAppDeactivateOpen={onAppDeactivateOpen}
onAppDeleteOpen={onAppDeleteOpen}
/>
<AboutCard aboutApp={data?.aboutApp} loading={loading} />
<CardSpacer />
<PermissionsCard permissions={data?.permissions} loading={loading} />
<CardSpacer />
<DataPrivacyCard dataPrivacyUrl={data?.dataPrivacyUrl} loading={loading} />
<CardSpacer />
</>
);
}) => {
if (!data) {
return null;
}
return (
<>
<Header
data={data}
onAppActivateOpen={onAppActivateOpen}
onAppDeactivateOpen={onAppDeactivateOpen}
onAppDeleteOpen={onAppDeleteOpen}
/>
<AboutCard aboutApp={data?.aboutApp} loading={loading} />
<CardSpacer />
<PermissionsCard permissions={data?.permissions} loading={loading} />
<CardSpacer />
<DataPrivacyCard
dataPrivacyUrl={data?.dataPrivacyUrl}
loading={loading}
/>
<CardSpacer />
</>
);
};
AppDetailsPage.displayName = "AppDetailsPage";
export default AppDetailsPage;

View file

@ -33,6 +33,10 @@ const Header: React.FC<HeaderProps> = ({
: AppUrls.resolveAppListUrl();
};
if (!data) {
return null;
}
return (
<>
<AppPageNav
@ -47,7 +51,7 @@ const Header: React.FC<HeaderProps> = ({
/>
<HeaderOptions
data={data}
isActive={data.isActive}
onAppActivateOpen={onAppActivateOpen}
onAppDeactivateOpen={onAppDeactivateOpen}
onAppDeleteOpen={onAppDeleteOpen}

View file

@ -1,5 +1,3 @@
import Skeleton from "@dashboard/components/Skeleton";
import { AppQuery } from "@dashboard/graphql";
import { buttonMessages } from "@dashboard/intl";
import { ButtonBase } from "@material-ui/core";
import { Box } from "@saleor/macaw-ui/next";
@ -12,39 +10,30 @@ import deleteIcon from "../../../../assets/images/delete.svg";
import { useStyles } from "./styles";
interface HeaderOptionsProps {
data: AppQuery["app"];
isActive: boolean;
onAppActivateOpen: () => void;
onAppDeactivateOpen: () => void;
onAppDeleteOpen: () => void;
}
const HeaderOptions: React.FC<HeaderOptionsProps> = ({
data,
isActive,
onAppActivateOpen,
onAppDeactivateOpen,
onAppDeleteOpen,
}) => {
const classes = useStyles();
if (!data) {
return (
<Box marginX={7}>
<Skeleton />
<div className={classes.hr} />
</Box>
);
}
return (
<Box marginX={7}>
<div className={classes.appHeaderLinks}>
<ButtonBase
className={classes.headerLinkContainer}
disableRipple
onClick={data.isActive ? onAppDeactivateOpen : onAppActivateOpen}
onClick={isActive ? onAppDeactivateOpen : onAppActivateOpen}
>
<SVG src={activateIcon} />
{data?.isActive ? (
{isActive ? (
<FormattedMessage {...buttonMessages.deactivate} />
) : (
<FormattedMessage {...buttonMessages.activate} />