Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | 88x 578x 578x 578x 578x 578x 14x 14x 14x 578x 158x 2x 2x 2x 2x 578x | import { TDocument } from "@common/FilePreview/types";
import { FILE_PREVIEW_MODAL_V2 } from "modals/modal_names";
import NiceModal, { useModal } from "@ebay/nice-modal-react";
import { FilePreviewType } from "../types";
import { useEffect, useRef } from "react";
import { fileFormatter } from "../utils";
import { isEqual } from "lodash";
type Props = {
documentList?: TDocument[];
entityId?: number;
isDeleteHidden?: boolean;
handleLocalDelete?:
| ((fileId?: number, fileName?: string) => void)
| ((index: number) => void);
isBase64?: boolean;
isMedia?: boolean;
keepOpen?: boolean;
};
const useDocumentPreviewV2 = ({
documentList,
entityId,
isDeleteHidden,
handleLocalDelete,
isBase64 = false,
isMedia = false,
keepOpen = true,
}: Props) => {
const modalHandler = useModal(FILE_PREVIEW_MODAL_V2);
const localRef = useRef(documentList);
const { visible, args, show, remove } = modalHandler;
const isListEqual = isEqual(localRef.current, documentList);
const handlePreview = (
fileData?: FilePreviewType,
isBusinessOwnerID?: boolean,
) => {
Iif (!fileData) return;
const file = fileFormatter(fileData);
NiceModal.show(FILE_PREVIEW_MODAL_V2, {
file,
documentList: documentList || [file],
entityId,
isDeleteHidden:
isDeleteHidden || isBusinessOwnerID || fileData.isAutoGeneratedEvidence,
handleLocalDelete,
isBase64,
isMedia,
isPdfAsImage:
["jpeg", "png"].includes(fileData.fileType) &&
fileData.isAutoGeneratedEvidence,
});
};
useEffect(() => {
if (isListEqual) return;
localRef.current = documentList;
Iif (visible) {
show({ ...args, documentList });
}
return () => {
Iif (visible && !keepOpen) remove();
};
}, [isListEqual]);
return {
handlePreview,
modalHandler,
};
};
export default useDocumentPreviewV2;
|