Skip to content

Commit 23b90a2

Browse files
committed
dont need a hook nor useEffect
Signed-off-by: David BRAQUART <[email protected]>
1 parent 0154ee6 commit 23b90a2

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

src/components/spreadsheet-view/spreadsheet/spreadsheet-toolbar/save/save-spreadsheet-button.tsx

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
66
*/
77

8-
import { type MouseEvent, type RefObject, useCallback, useEffect, useMemo, useState } from 'react';
8+
import { type MouseEvent, type RefObject, useCallback, useMemo, useState } from 'react';
99
import { Button, Menu, MenuItem } from '@mui/material';
1010
import { FormattedMessage } from 'react-intl';
1111
import SaveIcon from '@mui/icons-material/Save';
1212
import SaveSpreadsheetDialog from './save-spreadsheet-dialog';
1313
import {
14+
copytoClipboard,
1415
CsvDownloadProps,
1516
EquipmentType,
1617
FILTER_EQUIPMENTS,
17-
useClipboard,
1818
useCsvExport,
1919
useSnackMessage,
2020
useStateBoolean,
@@ -60,24 +60,21 @@ export default function SaveSpreadsheetButton({
6060
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
6161
const customSaveDialogOpen = useStateBoolean(false);
6262
const saveFilterDialogOpen = useStateBoolean(false);
63-
const { downloadCSVData, getCSVData } = useCsvExport();
6463
const language = useSelector((state: AppState) => state.computedLanguage);
6564

6665
const handleClick = useCallback((event: MouseEvent<HTMLButtonElement>) => setAnchorEl(event.currentTarget), []);
6766
const handleClose = useCallback(() => setAnchorEl(null), []);
6867

6968
const { snackInfo, snackError } = useSnackMessage();
70-
const clipboard = useClipboard();
69+
const { downloadCSVData, getCSVData } = useCsvExport();
70+
71+
const onClipboardCopy = useCallback(() => {
72+
snackInfo({ headerId: 'spreadsheet/clipboard/success' });
73+
}, [snackInfo]);
7174

72-
useEffect(() => {
73-
if (clipboard.copyState === 'SUCCESS') {
74-
snackInfo({ headerId: 'spreadsheet/clipboard/success' });
75-
clipboard.ready();
76-
} else if (clipboard.copyState === 'ERROR') {
77-
snackError({ headerId: 'spreadsheet/clipboard/error' });
78-
clipboard.ready();
79-
}
80-
}, [clipboard, snackInfo, snackError]);
75+
const onClipboardError = useCallback(() => {
76+
snackError({ headerId: 'spreadsheet/clipboard/error' });
77+
}, [snackError]);
8178

8279
const getCsvProps = useCallback(
8380
(csvCase: SpreadsheetSaveOptionId.COPY_CSV | SpreadsheetSaveOptionId.EXPORT_CSV) => {
@@ -117,7 +114,7 @@ export default function SaveSpreadsheetButton({
117114
action: () => {
118115
const csvProps = getCsvProps(SpreadsheetSaveOptionId.COPY_CSV);
119116
if (csvProps) {
120-
clipboard.copy(getCSVData(csvProps) ?? '');
117+
copytoClipboard(getCSVData(csvProps) ?? '', onClipboardCopy, onClipboardError);
121118
}
122119
},
123120
disabled: dataSize === 0,
@@ -146,8 +143,9 @@ export default function SaveSpreadsheetButton({
146143
saveFilterDialogOpen.setTrue,
147144
tableDefinition.type,
148145
getCsvProps,
149-
clipboard,
150146
getCSVData,
147+
onClipboardCopy,
148+
onClipboardError,
151149
downloadCSVData,
152150
]
153151
);

0 commit comments

Comments
 (0)