diff --git a/packages/web/src/javascripts/Components/FilePreview/PreviewComponent.tsx b/packages/web/src/javascripts/Components/FilePreview/PreviewComponent.tsx index 837ebb0fe..dd3a99577 100644 --- a/packages/web/src/javascripts/Components/FilePreview/PreviewComponent.tsx +++ b/packages/web/src/javascripts/Components/FilePreview/PreviewComponent.tsx @@ -8,6 +8,8 @@ import ImagePreview from './ImagePreview' import { ImageZoomLevelProps } from './ImageZoomLevelProps' import { PreviewableTextFileTypes, RequiresNativeFilePreview } from './isFilePreviewable' import TextPreview from './TextPreview' +import { parseFileName } from '@standardnotes/filepicker' +import { sanitizeFileName } from '@standardnotes/ui-services' type Props = { application: WebApplication @@ -55,7 +57,11 @@ const PreviewComponent: FunctionComponent = ({ }), ) - void application.mobileDevice().previewFile(fileBase64, file.name) + const { name, ext } = parseFileName(file.name) + const sanitizedName = sanitizeFileName(name) + const filename = `${sanitizedName}.${ext}` + + void application.mobileDevice().previewFile(fileBase64, filename) }, [application, bytes, file.mimeType, file.name, isNativeMobileWeb]) if (isNativeMobileWeb && requiresNativePreview) { diff --git a/packages/web/src/javascripts/NativeMobileWeb/DownloadBlobOnAndroid.tsx b/packages/web/src/javascripts/NativeMobileWeb/DownloadBlobOnAndroid.tsx index 1f0c3d00c..f76eb80d7 100644 --- a/packages/web/src/javascripts/NativeMobileWeb/DownloadBlobOnAndroid.tsx +++ b/packages/web/src/javascripts/NativeMobileWeb/DownloadBlobOnAndroid.tsx @@ -1,7 +1,9 @@ import { WebApplication } from '@/Application/WebApplication' import { getBase64FromBlob } from '@/Utils' +import { parseFileName } from '@standardnotes/filepicker' import { Platform } from '@standardnotes/snjs' import { addToast, ToastType, dismissToast } from '@standardnotes/toast' +import { sanitizeFileName } from '@standardnotes/ui-services' export const downloadBlobOnAndroid = async ( application: WebApplication, @@ -20,6 +22,9 @@ export const downloadBlobOnAndroid = async ( }) } const base64 = await getBase64FromBlob(blob) + const { name, ext } = parseFileName(filename) + const sanitizedName = sanitizeFileName(name) + filename = `${sanitizedName}.${ext}` const downloaded = await application.mobileDevice().downloadBase64AsFile(base64, filename) if (loadingToastId) { dismissToast(loadingToastId)