Fix breaking Manage App screen when app is disabled (#3777)
This commit is contained in:
parent
2db64cd135
commit
d98aa2ac8a
3 changed files with 34 additions and 32 deletions
|
@ -21,7 +21,12 @@ export const AppDetailsPage: React.FC<AppDetailsPageProps> = ({
|
||||||
onAppActivateOpen,
|
onAppActivateOpen,
|
||||||
onAppDeactivateOpen,
|
onAppDeactivateOpen,
|
||||||
onAppDeleteOpen,
|
onAppDeleteOpen,
|
||||||
}) => (
|
}) => {
|
||||||
|
if (!data) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
<>
|
<>
|
||||||
<Header
|
<Header
|
||||||
data={data}
|
data={data}
|
||||||
|
@ -33,10 +38,14 @@ export const AppDetailsPage: React.FC<AppDetailsPageProps> = ({
|
||||||
<CardSpacer />
|
<CardSpacer />
|
||||||
<PermissionsCard permissions={data?.permissions} loading={loading} />
|
<PermissionsCard permissions={data?.permissions} loading={loading} />
|
||||||
<CardSpacer />
|
<CardSpacer />
|
||||||
<DataPrivacyCard dataPrivacyUrl={data?.dataPrivacyUrl} loading={loading} />
|
<DataPrivacyCard
|
||||||
|
dataPrivacyUrl={data?.dataPrivacyUrl}
|
||||||
|
loading={loading}
|
||||||
|
/>
|
||||||
<CardSpacer />
|
<CardSpacer />
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
};
|
||||||
|
|
||||||
AppDetailsPage.displayName = "AppDetailsPage";
|
AppDetailsPage.displayName = "AppDetailsPage";
|
||||||
export default AppDetailsPage;
|
export default AppDetailsPage;
|
||||||
|
|
|
@ -33,6 +33,10 @@ const Header: React.FC<HeaderProps> = ({
|
||||||
: AppUrls.resolveAppListUrl();
|
: AppUrls.resolveAppListUrl();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<AppPageNav
|
<AppPageNav
|
||||||
|
@ -47,7 +51,7 @@ const Header: React.FC<HeaderProps> = ({
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<HeaderOptions
|
<HeaderOptions
|
||||||
data={data}
|
isActive={data.isActive}
|
||||||
onAppActivateOpen={onAppActivateOpen}
|
onAppActivateOpen={onAppActivateOpen}
|
||||||
onAppDeactivateOpen={onAppDeactivateOpen}
|
onAppDeactivateOpen={onAppDeactivateOpen}
|
||||||
onAppDeleteOpen={onAppDeleteOpen}
|
onAppDeleteOpen={onAppDeleteOpen}
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import Skeleton from "@dashboard/components/Skeleton";
|
|
||||||
import { AppQuery } from "@dashboard/graphql";
|
|
||||||
import { buttonMessages } from "@dashboard/intl";
|
import { buttonMessages } from "@dashboard/intl";
|
||||||
import { ButtonBase } from "@material-ui/core";
|
import { ButtonBase } from "@material-ui/core";
|
||||||
import { Box } from "@saleor/macaw-ui/next";
|
import { Box } from "@saleor/macaw-ui/next";
|
||||||
|
@ -12,39 +10,30 @@ import deleteIcon from "../../../../assets/images/delete.svg";
|
||||||
import { useStyles } from "./styles";
|
import { useStyles } from "./styles";
|
||||||
|
|
||||||
interface HeaderOptionsProps {
|
interface HeaderOptionsProps {
|
||||||
data: AppQuery["app"];
|
isActive: boolean;
|
||||||
onAppActivateOpen: () => void;
|
onAppActivateOpen: () => void;
|
||||||
onAppDeactivateOpen: () => void;
|
onAppDeactivateOpen: () => void;
|
||||||
onAppDeleteOpen: () => void;
|
onAppDeleteOpen: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
const HeaderOptions: React.FC<HeaderOptionsProps> = ({
|
const HeaderOptions: React.FC<HeaderOptionsProps> = ({
|
||||||
data,
|
isActive,
|
||||||
onAppActivateOpen,
|
onAppActivateOpen,
|
||||||
onAppDeactivateOpen,
|
onAppDeactivateOpen,
|
||||||
onAppDeleteOpen,
|
onAppDeleteOpen,
|
||||||
}) => {
|
}) => {
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
return (
|
|
||||||
<Box marginX={7}>
|
|
||||||
<Skeleton />
|
|
||||||
<div className={classes.hr} />
|
|
||||||
</Box>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box marginX={7}>
|
<Box marginX={7}>
|
||||||
<div className={classes.appHeaderLinks}>
|
<div className={classes.appHeaderLinks}>
|
||||||
<ButtonBase
|
<ButtonBase
|
||||||
className={classes.headerLinkContainer}
|
className={classes.headerLinkContainer}
|
||||||
disableRipple
|
disableRipple
|
||||||
onClick={data.isActive ? onAppDeactivateOpen : onAppActivateOpen}
|
onClick={isActive ? onAppDeactivateOpen : onAppActivateOpen}
|
||||||
>
|
>
|
||||||
<SVG src={activateIcon} />
|
<SVG src={activateIcon} />
|
||||||
{data?.isActive ? (
|
{isActive ? (
|
||||||
<FormattedMessage {...buttonMessages.deactivate} />
|
<FormattedMessage {...buttonMessages.deactivate} />
|
||||||
) : (
|
) : (
|
||||||
<FormattedMessage {...buttonMessages.activate} />
|
<FormattedMessage {...buttonMessages.activate} />
|
||||||
|
|
Loading…
Reference in a new issue