diff --git a/react/Viewer/Panel/ActionMenuWrapper.jsx b/react/Viewer/Panel/ActionMenuWrapper.jsx
index a69b5c7368..3869e2ad5b 100644
--- a/react/Viewer/Panel/ActionMenuWrapper.jsx
+++ b/react/Viewer/Panel/ActionMenuWrapper.jsx
@@ -5,7 +5,7 @@ import { useAppLinkWithStoreFallback, useClient } from 'cozy-client'
import useBreakpoints from '../../providers/Breakpoints'
import { useI18n } from '../../providers/I18n'
-import useViewerSnackbar from '../providers/ViewerSnackbarProvider'
+import { useAlert } from '../../providers/Alert'
import {
buildEditAttributePath,
isEditableAttribute,
@@ -22,7 +22,7 @@ const ActionMenuWrapper = forwardRef(({ onClose, file, optionFile }, ref) => {
const editPathByModelProps = useActionMenuContext()
const { isMobile } = useBreakpoints()
const { t } = useI18n()
- const { showViewerSnackbar } = useViewerSnackbar()
+ const { showAlert } = useAlert()
const client = useClient()
const currentModel = getCurrentModel(name)
@@ -42,12 +42,19 @@ const ActionMenuWrapper = forwardRef(({ onClose, file, optionFile }, ref) => {
const handleCopy = async () => {
try {
await navigator.clipboard.writeText(value)
- showViewerSnackbar(
- 'success',
- t(`Viewer.snackbar.copiedToClipboard.success`)
- )
+ showAlert({
+ message: t(`Viewer.snackbar.copiedToClipboard.success`),
+ severity: 'success',
+ variant: 'filled',
+ icon: false
+ })
} catch (error) {
- showViewerSnackbar('error', t(`Viewer.snackbar.copiedToClipboard.error`))
+ showAlert({
+ message: t(`Viewer.snackbar.copiedToClipboard.error`),
+ severity: 'error',
+ variant: 'filled',
+ icon: false
+ })
}
onClose()
}
diff --git a/react/Viewer/ViewerContainer.jsx b/react/Viewer/ViewerContainer.jsx
index e26761ffaa..a9dd146166 100644
--- a/react/Viewer/ViewerContainer.jsx
+++ b/react/Viewer/ViewerContainer.jsx
@@ -12,8 +12,7 @@ import { isValidForPanel } from './helpers'
import Viewer from './Viewer'
import ViewerInformationsWrapper from './ViewerInformationsWrapper'
import EncryptedProvider from './providers/EncryptedProvider'
-import { ViewerSnackbarProvider } from './providers/ViewerSnackbarProvider'
-import ViewerSnackbar from './snackbar/ViewerSnackbar'
+import AlertProvider from '../providers/Alert'
import { ActionMenuProvider } from './providers/ActionMenuProvider'
import styles from './styles.styl'
@@ -49,7 +48,7 @@ const ViewerContainer = props => {
}
return (
-
+
{
{children}
-
-
+
)
}
diff --git a/react/Viewer/ViewersByFile/PdfMobileViewer.jsx b/react/Viewer/ViewersByFile/PdfMobileViewer.jsx
index 4ad5d93927..0329f6f0ae 100644
--- a/react/Viewer/ViewersByFile/PdfMobileViewer.jsx
+++ b/react/Viewer/ViewersByFile/PdfMobileViewer.jsx
@@ -39,6 +39,7 @@ export const PdfMobileViewer = ({ file, url, t, gestures }) => {
showAlert({
message: t('Viewer.error.generic'),
severity: 'error',
+ variant: 'filled',
icon: false
})
}
diff --git a/react/Viewer/providers/ViewerSnackbarProvider.jsx b/react/Viewer/providers/ViewerSnackbarProvider.jsx
deleted file mode 100644
index 9fe91f2689..0000000000
--- a/react/Viewer/providers/ViewerSnackbarProvider.jsx
+++ /dev/null
@@ -1,64 +0,0 @@
-import React, { createContext, useContext, useState } from 'react'
-
-/**
- * @typedef {('primary'|'secondary'|'success'|'error'|'warning'|'info')} enumSeverity
- */
-/**
- * @typedef {object} useViewerSnackbarReturn
- * @property {boolean} isViewerSnackbarOpen
- * @property {string} viewerSnackbarMessage
- * @property {enumSeverity} viewerSnackbarSeverity
- * @property {(severity: enumSeverity, message: string) => void} showViewerSnackbar
- * @property {(message: string) => void} hideViewerSnackbar
- */
-
-const ViewerSnackbarContext = createContext()
-
-const ViewerSnackbarProvider = ({ children }) => {
- const [isViewerSnackbarOpen, setIsViewerSnackbarOpen] = useState(false)
- const [viewerSnackbarMessage, setViewerSnackbarMessage] = useState('')
- const [viewerSnackbarSeverity, setViewerSnackbarSeverity] = useState(
- 'primary'
- )
-
- const showViewerSnackbar = (severity, message) => {
- setIsViewerSnackbarOpen(true)
- setViewerSnackbarMessage(message)
- setViewerSnackbarSeverity(severity)
- }
- const hideViewerSnackbar = () => {
- setIsViewerSnackbarOpen(false)
- }
-
- const result = {
- isViewerSnackbarOpen,
- viewerSnackbarMessage,
- viewerSnackbarSeverity,
- showViewerSnackbar,
- hideViewerSnackbar
- }
-
- return (
-
- {children}
-
- )
-}
-
-/**
- * @returns {useViewerSnackbarReturn}
- */
-const useViewerSnackbar = () => {
- const viewerSnackbar = useContext(ViewerSnackbarContext)
- if (!viewerSnackbar) {
- throw new Error(
- 'ViewerSnackbarContext must be used within a ViewerSnackbarProvider'
- )
- }
-
- return viewerSnackbar
-}
-
-export default useViewerSnackbar
-
-export { ViewerSnackbarProvider }
diff --git a/react/Viewer/snackbar/ViewerSnackbar.jsx b/react/Viewer/snackbar/ViewerSnackbar.jsx
deleted file mode 100644
index a850e4f918..0000000000
--- a/react/Viewer/snackbar/ViewerSnackbar.jsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import React from 'react'
-
-import Snackbar from '../../Snackbar'
-import Alert from '../../Alert'
-import useViewerSnackbar from '../providers/ViewerSnackbarProvider'
-
-const ViewerSnackbar = () => {
- const {
- isViewerSnackbarOpen,
- viewerSnackbarMessage,
- viewerSnackbarSeverity,
- hideViewerSnackbar
- } = useViewerSnackbar()
-
- return (
-
-
- {viewerSnackbarMessage}
-
-
- )
-}
-
-export default ViewerSnackbar