Skip to content

Commit

Permalink
disable exports when project is empty
Browse files Browse the repository at this point in the history
  • Loading branch information
ndepaola committed Jul 22, 2023
1 parent 0da5063 commit 15dc5c6
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 4 deletions.
13 changes: 11 additions & 2 deletions frontend/src/features/export/exportDecklist.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@ import {
CardDocuments,
ProjectMember,
SlotProjectMembers,
useAppSelector,
} from "@/common/types";
import { selectProjectMembers } from "@/features/project/projectSlice";
import {
selectIsProjectEmpty,
selectProjectMembers,
} from "@/features/project/projectSlice";

function extractProjectMemberNames(
projectMembers: Array<SlotProjectMembers>,
Expand Down Expand Up @@ -114,6 +118,7 @@ const selectGeneratedDecklist = (state: RootState): string => {

export function ExportDecklist() {
const store = useStore();
const isProjectEmpty = useAppSelector(selectIsProjectEmpty);
const downloadFile = () => {
const generatedDecklist = selectGeneratedDecklist(
store.getState() as RootState
Expand All @@ -125,7 +130,11 @@ export function ExportDecklist() {
};

return (
<Dropdown.Item onClick={downloadFile} data-testid="export-decklist-button">
<Dropdown.Item
disabled={isProjectEmpty}
onClick={downloadFile}
data-testid="export-decklist-button"
>
<i className="bi bi-card-text" style={{ paddingRight: 0.5 + "em" }} />{" "}
Decklist
</Dropdown.Item>
Expand Down
6 changes: 5 additions & 1 deletion frontend/src/features/export/exportImages.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import { FunctionThread, Pool, spawn, Worker } from "threads";

import { ProjectName } from "@/common/constants";
import { base64StringToBlob } from "@/common/processing";
import { useAppSelector } from "@/common/types";
import { selectIsProjectEmpty } from "@/features/project/projectSlice";
import { useCardDocumentsByIdentifier } from "@/features/search/cardDocumentsSlice";
import { Spinner } from "@/features/ui/spinner";

Expand All @@ -18,6 +20,8 @@ const StyledProgressBar = styled(ProgressBar)`
`;

export function ExportImages() {
const isProjectEmpty = useAppSelector(selectIsProjectEmpty);

const [showImagesModal, setShowImagesModal] = useState(false);
const handleCloseImagesModal = () => setShowImagesModal(false);
const handleShowImagesModal = () => setShowImagesModal(true);
Expand Down Expand Up @@ -80,7 +84,7 @@ export function ExportImages() {

return (
<>
<Dropdown.Item onClick={handleShowImagesModal}>
<Dropdown.Item disabled={isProjectEmpty} onClick={handleShowImagesModal}>
<i className="bi bi-image" style={{ paddingRight: 0.5 + "em" }} /> Card
Images
</Dropdown.Item>
Expand Down
9 changes: 8 additions & 1 deletion frontend/src/features/export/exportXML.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@ import {
CardDocuments,
FinishSettingsState,
SlotProjectMembers,
useAppSelector,
} from "@/common/types";
import { bracket } from "@/common/utils";
import { selectFinishSettings } from "@/features/finishSettings/finishSettingsSlice";
import {
selectIsProjectEmpty,
selectProjectMembers,
selectProjectSize,
} from "@/features/project/projectSlice";
Expand Down Expand Up @@ -202,6 +204,7 @@ export function generateXML(

export function ExportXML() {
const store = useStore();
const isProjectEmpty = useAppSelector(selectIsProjectEmpty);
const downloadFile = () => {
const generatedXML = selectGeneratedXML(store.getState() as RootState);
saveAs(
Expand All @@ -211,7 +214,11 @@ export function ExportXML() {
};

return (
<Dropdown.Item onClick={downloadFile} data-testid="export-xml-button">
<Dropdown.Item
disabled={isProjectEmpty}
onClick={downloadFile}
data-testid="export-xml-button"
>
<i className="bi bi-file-code" style={{ paddingRight: 0.5 + "em" }} /> XML
</Dropdown.Item>
);
Expand Down

0 comments on commit 15dc5c6

Please sign in to comment.