Skip to content

Commit

Permalink
UIBULKED-568 Use file names from bulk-operation instead of hardcoding…
Browse files Browse the repository at this point in the history
… on UI
  • Loading branch information
vashjs committed Jan 16, 2025
1 parent 08fed89 commit cadf7f6
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ export const BulkEditInAppLayer = ({
open={isPreviewModalOpened}
modalFooter={
<BulkEditPreviewModalFooter
bulkOperationId={bulkOperationId}
bulkDetails={bulkDetails}
buttonsDisabled={!isCsvFileReady}
onCommitChanges={commitChanges}
onKeepEditing={closePreviewModal}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,48 +6,44 @@ import { Button } from '@folio/stripes/components';

import css from './BulkEditInAppPreviewModal.css';
import { useSearchParams } from '../../../../hooks';
import { APPROACHES, FILE_EXTENSION, FILE_SEARCH_PARAMS } from '../../../../constants';
import { APPROACHES, FILE_SEARCH_PARAMS } from '../../../../constants';
import {
QUERY_KEY_DOWNLOAD_ADMINISTRATIVE_PREVIEW_MODAL,
QUERY_KEY_DOWNLOAD_MARC_PREVIEW_MODAL,
useFileDownload
} from '../../../../hooks/api';
import { changeExtension, savePreviewFile } from '../../../../utils/files';
import { savePreviewFile } from '../../../../utils/files';

export const BulkEditPreviewModalFooter = ({
bulkOperationId,
bulkDetails,
buttonsDisabled,
onKeepEditing,
onCommitChanges,
}) => {
const { approach, initialFileName } = useSearchParams();
const { approach } = useSearchParams();

const { refetch: downloadCsvPreview } = useFileDownload({
queryKey: QUERY_KEY_DOWNLOAD_ADMINISTRATIVE_PREVIEW_MODAL,
enabled: false,
id: bulkOperationId,
id: bulkDetails?.id,
fileContentType: FILE_SEARCH_PARAMS.PROPOSED_CHANGES_FILE,
onSuccess: (fileData) => {
savePreviewFile({
bulkOperationId,
fileName: bulkDetails?.linkToModifiedRecordsCsvFile,
fileData,
initialFileName,
extension: FILE_EXTENSION.CSV,
});
},
});

const { refetch: downloadMarcPreview } = useFileDownload({
queryKey: QUERY_KEY_DOWNLOAD_MARC_PREVIEW_MODAL,
enabled: false,
id: bulkOperationId,
id: bulkDetails?.id,
fileContentType: FILE_SEARCH_PARAMS.PROPOSED_CHANGES_MARC_FILE,
onSuccess: (fileData) => {
savePreviewFile({
bulkOperationId,
fileName: bulkDetails?.linkToModifiedRecordsMarcFile,
fileData,
initialFileName: changeExtension(initialFileName, FILE_EXTENSION.MRC),
extension: FILE_EXTENSION.MRC,
});
},
});
Expand All @@ -73,7 +69,7 @@ export const BulkEditPreviewModalFooter = ({
};

BulkEditPreviewModalFooter.propTypes = {
bulkOperationId: PropTypes.string.isRequired,
bulkDetails: PropTypes.object,
buttonsDisabled: PropTypes.bool,
onKeepEditing: PropTypes.func,
onCommitChanges: PropTypes.func,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jest.mock('../../../../utils/files', () => ({
const renderModalFooter = (overwrite = {}) => {
return render(
<BulkEditPreviewModalFooter
bulkOperationId="123"
bulkOperation={{ id: '123' }}
buttonsDisabled
onKeepEditing={jest.fn()}
onCommitChanges={jest.fn()}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ export const BulkEditMarcLayer = ({
onKeepEditing={closePreviewModal}
modalFooter={
<BulkEditPreviewModalFooter
bulkOperationId={bulkOperationId}
bulkDetails={bulkDetails}
buttonsDisabled={!areMarcAndCsvReady}
onCommitChanges={commitChanges}
onKeepEditing={closePreviewModal}
Expand Down
5 changes: 0 additions & 5 deletions src/constants/files.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,6 @@ export const FILE_KEYS = {
TRIGGERING_FILE: 'linkToTriggeringCsvFile',
};

export const FILE_EXTENSION = {
CSV: 'csv',
MRC: 'mrc',
};

// use as API key for /download
export const FILE_SEARCH_PARAMS = {
MATCHED_RECORDS_FILE: 'MATCHED_RECORDS_FILE',
Expand Down
8 changes: 3 additions & 5 deletions src/utils/files.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,10 @@ export const changeExtension = (fileName, extension) => {
};

export const savePreviewFile = ({
bulkOperationId,
fileName,
fileData,
extension,
initialFileName,
}) => {
const fileName = initialFileName || `Query-${bulkOperationId}.${extension}`;
const name = fileName.split('/')[1];

saveAs(new Blob([fileData]), `${getFormattedFilePrefixDate()}-Updates-Preview-${fileName}`);
saveAs(new Blob([fileData]), name);
};
53 changes: 4 additions & 49 deletions src/utils/files.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,65 +54,20 @@ describe('files', () => {
});

it('should save the file with the correct name and extension for MARC approach', () => {
const bulkOperationId = '123';
const name = '2024-08-09-Updates-Preview-abc.mrc';
const fileData = 'data';
const initialFileName = 'abc.mrc';
const extension = 'mrc';
const fileName = `bulkId/${name}`;

getFormattedFilePrefixDate.mockReturnValue('2024-08-09');

savePreviewFile({
bulkOperationId,
fileName,
fileData,
extension,
initialFileName,
});

expect(saveAs).toHaveBeenCalledWith(
new Blob([fileData]),
'2024-08-09-Updates-Preview-abc.mrc'
);
});

it('should save the file with the correct name and extension for OTHER approach', () => {
const bulkOperationId = '123';
const fileData = 'data';
const initialFileName = 'abc.csv';
const extension = 'csv';

getFormattedFilePrefixDate.mockReturnValue('2024-08-09');

savePreviewFile({
bulkOperationId,
fileData,
extension,
initialFileName,
});

expect(saveAs).toHaveBeenCalledWith(
new Blob([fileData]),
'2024-08-09-Updates-Preview-abc.csv'
);
});

it('should save the file with default name if initialFileName is empty', () => {
const bulkOperationId = '123';
const fileData = 'data';
const initialFileName = '';
const extension = 'mrc';

getFormattedFilePrefixDate.mockReturnValue('2024-08-09');

savePreviewFile({
bulkOperationId,
fileData,
extension,
initialFileName,
});

expect(saveAs).toHaveBeenCalledWith(
new Blob([fileData]),
'2024-08-09-Updates-Preview-Query-123.mrc'
name,
);
});
});
Expand Down

0 comments on commit cadf7f6

Please sign in to comment.