Browse Source

feat: reset copyStatus on export dialog settings change (#8443)

pull/8450/head
David Luzar 1 year ago committed by GitHub
parent
commit
16cae4fc07
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 16
      packages/excalidraw/components/ImageExportDialog.tsx
  2. 7
      packages/excalidraw/hooks/useCopiedIndicator.ts

16
packages/excalidraw/components/ImageExportDialog.tsx

@ -90,7 +90,20 @@ const ImageExportModal = ({ @@ -90,7 +90,20 @@ const ImageExportModal = ({
const previewRef = useRef<HTMLDivElement>(null);
const [renderError, setRenderError] = useState<Error | null>(null);
const { onCopy, copyStatus } = useCopyStatus();
const { onCopy, copyStatus, resetCopyStatus } = useCopyStatus();
useEffect(() => {
// if user changes setting right after export to clipboard, reset the status
// so they don't have to wait for the timeout to click the button again
resetCopyStatus();
}, [
projectName,
exportWithBackground,
exportDarkMode,
exportScale,
embedScene,
resetCopyStatus,
]);
const { exportedElements, exportingFrame } = prepareElementsForExport(
elementsSnapshot,
@ -108,6 +121,7 @@ const ImageExportModal = ({ @@ -108,6 +121,7 @@ const ImageExportModal = ({
if (!maxWidth) {
return;
}
exportToCanvas({
elements: exportedElements,
appState: {

7
packages/excalidraw/hooks/useCopiedIndicator.ts

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
import { useRef, useState } from "react";
import { useCallback, useRef, useState } from "react";
const TIMEOUT = 2000;
@ -15,8 +15,13 @@ export const useCopyStatus = () => { @@ -15,8 +15,13 @@ export const useCopyStatus = () => {
}, TIMEOUT);
};
const resetCopyStatus = useCallback(() => {
setCopyStatus(null);
}, []);
return {
copyStatus,
resetCopyStatus,
onCopy,
};
};

Loading…
Cancel
Save