From 389297a3375282cf470247ea587abc5c66acd7c2 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sun, 22 Oct 2023 15:32:08 -0400 Subject: [PATCH] fix: Include notice on where collection exports end up --- app/actions/definitions/developer.tsx | 20 +++++++++++++++++++- app/components/ExportDialog.tsx | 18 +++++++++++++++++- shared/i18n/locales/en_US/translation.json | 2 ++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/app/actions/definitions/developer.tsx b/app/actions/definitions/developer.tsx index b030f573f5..5466e13f97 100644 --- a/app/actions/definitions/developer.tsx +++ b/app/actions/definitions/developer.tsx @@ -36,6 +36,24 @@ export const createTestUsers = createAction({ }, }); +export const createToast = createAction({ + name: "Create toast", + section: DeveloperSection, + visible: () => env.ENVIRONMENT === "development", + perform: async () => { + stores.toasts.showToast("Hello world", { + type: "info", + timeout: 30000, + action: { + text: "Click me", + onClick: () => { + stores.toasts.showToast("Clicked!"); + }, + }, + }); + }, +}); + export const toggleDebugLogging = createAction({ name: ({ t }) => t("Toggle debug logging"), icon: , @@ -56,7 +74,7 @@ export const developer = createAction({ icon: , iconInContextMenu: false, section: DeveloperSection, - children: [clearIndexedDB, toggleDebugLogging, createTestUsers], + children: [clearIndexedDB, toggleDebugLogging, createToast, createTestUsers], }); export const rootDeveloperActions = [developer]; diff --git a/app/components/ExportDialog.tsx b/app/components/ExportDialog.tsx index 231b36edff..6cd9f96a26 100644 --- a/app/components/ExportDialog.tsx +++ b/app/components/ExportDialog.tsx @@ -11,6 +11,8 @@ import env from "~/env"; import useCurrentUser from "~/hooks/useCurrentUser"; import useStores from "~/hooks/useStores"; import useToasts from "~/hooks/useToasts"; +import history from "~/utils/history"; +import { settingsPath } from "~/utils/routeHelpers"; type Props = { collection?: Collection; @@ -46,11 +48,25 @@ function ExportDialog({ collection, onSubmit }: Props) { const handleSubmit = async () => { if (collection) { await collection.export(format, includeAttachments); + showToast( + t(`Your file will be available in {{ location }} soon`, { + location: `"${t("Settings")} > ${t("Export")}"`, + }), + { + type: "success", + action: { + text: t("Go to exports"), + onClick: () => { + history.push(settingsPath("export")); + }, + }, + } + ); } else { await collections.export(format, includeAttachments); + showToast(t("Export started"), { type: "success" }); } onSubmit(); - showToast(t("Export started"), { type: "success" }); }; const items = [ diff --git a/shared/i18n/locales/en_US/translation.json b/shared/i18n/locales/en_US/translation.json index e947305b9c..b5b0f7f7c3 100644 --- a/shared/i18n/locales/en_US/translation.json +++ b/shared/i18n/locales/en_US/translation.json @@ -191,6 +191,8 @@ "{{userName}} published": "{{userName}} published", "{{userName}} unpublished": "{{userName}} unpublished", "{{userName}} moved": "{{userName}} moved", + "Your file will be available in {{ location }} soon": "Your file will be available in {{ location }} soon", + "Go to exports": "Go to exports", "Export started": "Export started", "A ZIP file containing the images, and documents in the Markdown format.": "A ZIP file containing the images, and documents in the Markdown format.", "A ZIP file containing the images, and documents as HTML files.": "A ZIP file containing the images, and documents as HTML files.",