Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: update package revision page header #5

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions plugins/cad/src/components/Links/PackageLink.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import React from 'react';
import { packageRouteRef } from '../../routes';
import { PackageRevision } from '../../types/PackageRevision';
import { Repository } from '../../types/Repository';
import { getPackageDescriptor } from '../../utils/repository';
import { getPackageRevisionTitle } from '../../utils/packageRevision';
import { useLinkStyles } from './styles';

type PackageLinkProps = {
Expand All @@ -42,15 +42,12 @@ export const PackageLink = ({
const repositoryName = repository.metadata.name;
const packageName = packageRevision.metadata.name;

const packageDisplayName = packageRevision.spec.packageName;
const packageDescriptor = getPackageDescriptor(repository);

return (
<Link
className={className}
to={packageRef({ repositoryName, packageName })}
>
{packageDisplayName} {packageDescriptor}
{getPackageRevisionTitle(packageRevision)}
</Link>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import {
import { useApi, useRouteRef } from '@backstage/core-plugin-api';
import {
Button as MaterialButton,
Chip,
makeStyles,
Typography,
} from '@material-ui/core';
Expand Down Expand Up @@ -54,7 +53,10 @@ import {
SyncStatus,
SyncStatusState,
} from '../../utils/configSync';
import { canCloneOrDeploy } from '../../utils/packageRevision';
import {
canCloneOrDeploy,
getPackageRevisionTitle,
} from '../../utils/packageRevision';
import { getPackageRevisionResourcesResource } from '../../utils/packageRevisionResources';
import {
getPackageDescriptor,
Expand All @@ -79,6 +81,7 @@ type PackageRevisionPageProps = {

const useStyles = makeStyles({
packageRevisionOptions: {
marginTop: 'auto',
marginLeft: '10px',
},
syncStatusBanner: {
Expand Down Expand Up @@ -194,7 +197,7 @@ export const PackageRevisionPage = ({ mode }: PackageRevisionPageProps) => {
return <Alert severity="error">Unexpected undefined value</Alert>;
}

const packageDisplayName = packageRevision.spec.packageName;
const packageRevisionTitle = getPackageRevisionTitle(packageRevision);

const moveToDraft = async (): Promise<void> => {
setUserInitiatedApiRequest(true);
Expand Down Expand Up @@ -341,6 +344,7 @@ export const PackageRevisionPage = ({ mode }: PackageRevisionPageProps) => {
};

const repository = repositorySummary.repository;
const packageDescriptor = getPackageDescriptor(repository);

const renderOptions = (): JSX.Element[] => {
const options: JSX.Element[] = [];
Expand Down Expand Up @@ -383,12 +387,9 @@ export const PackageRevisionPage = ({ mode }: PackageRevisionPageProps) => {

if (isDraft || isProposed) {
options.push(
<Chip
key="package-lifecycle"
label={`${packageRevision.spec.lifecycle} Package`}
variant="outlined"
style={{ margin: 0 }}
/>,
<div className={classes.packageRevisionOptions}>
{packageRevision.spec.lifecycle} {packageDescriptor}
</div>,
);
}

Expand Down Expand Up @@ -489,8 +490,6 @@ export const PackageRevisionPage = ({ mode }: PackageRevisionPageProps) => {
return options;
};

const packageDescriptor = getPackageDescriptor(repository);

const resourcesTableMode =
mode === PackageRevisionPageMode.EDIT
? ResourcesTableMode.EDIT
Expand All @@ -509,11 +508,7 @@ export const PackageRevisionPage = ({ mode }: PackageRevisionPageProps) => {
<Breadcrumbs>
<RepositoriesLink breadcrumb />
<RepositoryLink repository={repository} breadcrumb />
{isViewMode && (
<Typography>
{packageDisplayName} {packageDescriptor}
</Typography>
)}
{isViewMode && <Typography>{packageRevisionTitle}</Typography>}
{!isViewMode && (
<PackageLink
repository={repository}
Expand All @@ -524,7 +519,7 @@ export const PackageRevisionPage = ({ mode }: PackageRevisionPageProps) => {
{!isViewMode && <Typography>Edit</Typography>}
</Breadcrumbs>

<ContentHeader title={`${packageDisplayName} ${packageDescriptor}`}>
<ContentHeader title={packageRevisionTitle}>
{renderOptions()}
</ContentHeader>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ import { configAsDataApiRef } from '../../../apis';
import { repositoryRouteRef } from '../../../routes';
import { Repository } from '../../../types/Repository';
import { RootSync } from '../../../types/RootSync';
import { getPackageDescriptor } from '../../../utils/repository';
import { toLowerCase } from '../../../utils/string';

type AdvancedPackageRevisionOptionsProps = {
repository: Repository;
Expand All @@ -52,7 +50,6 @@ export const AdvancedPackageRevisionOptions = ({
const repositoryRef = useRouteRef(repositoryRouteRef);

const repositoryName = repository.metadata.name;
const packageDescriptor = getPackageDescriptor(repository);

const openDeletePackageRevisionDialog = (): void => {
setOpenPackageDialog(true);
Expand Down Expand Up @@ -101,11 +98,10 @@ export const AdvancedPackageRevisionOptions = ({
open={openPackageDialog}
onClose={closeDeletePackageRevisionDialog}
>
<DialogTitle>Delete {toLowerCase(packageDescriptor)}</DialogTitle>
<DialogTitle>Delete revision</DialogTitle>
<DialogContent>
<DialogContentText>
Are you sure you want to delete this{' '}
{toLowerCase(packageDescriptor)}?
Are you sure you want to delete this revision?
</DialogContentText>
</DialogContent>
<DialogActions>
Expand All @@ -124,7 +120,7 @@ export const AdvancedPackageRevisionOptions = ({
variant="contained"
onClick={openDeletePackageRevisionDialog}
>
Delete {packageDescriptor}
Delete revision
</Button>
</div>

Expand Down
8 changes: 8 additions & 0 deletions plugins/cad/src/utils/packageRevision.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ import {
PackageRevisionTask,
} from '../types/PackageRevision';

export const getPackageRevisionTitle = (
packageRevision: PackageRevision,
): string => {
const { packageName, revision } = packageRevision.spec;

return `${packageName} ${revision}`;
};

export const isLatestPublishedRevision = (
packageRevision: PackageRevision,
): boolean => {
Expand Down