From ce610f5c6e91f20b6591f9716055e2526723b8ad Mon Sep 17 00:00:00 2001 From: Your Name <119736744+aborayan2022@users.noreply.github.com> Date: Sun, 22 Mar 2026 16:48:07 +0200 Subject: [PATCH] feat: add toast notifications for error handling and success messages across various components --- .gitignore | 2 ++ backend/celerybeat-schedule | Bin 16384 -> 0 bytes backend/data/dociva.db | Bin 135168 -> 0 bytes frontend/src/App.tsx | 12 ++++++++++++ .../src/components/shared/FileUploader.tsx | 5 ++++- frontend/src/hooks/useFileUpload.ts | 18 ++++++++++++++---- frontend/src/hooks/useTaskPolling.ts | 14 +++++++++++--- frontend/src/pages/AccountPage.tsx | 17 +++++++++++++---- frontend/src/pages/ContactPage.tsx | 11 ++++++++--- frontend/src/pages/ForgotPasswordPage.tsx | 6 +++++- frontend/src/pages/ResetPasswordPage.tsx | 14 +++++++++++--- 11 files changed, 80 insertions(+), 19 deletions(-) delete mode 100644 backend/celerybeat-schedule delete mode 100644 backend/data/dociva.db diff --git a/.gitignore b/.gitignore index 88e6fe5..bd41077 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,5 @@ htmlcov/ .coverage coverage/ +backend/celerybeat-schedule +backend/data/dociva.db \ No newline at end of file diff --git a/backend/celerybeat-schedule b/backend/celerybeat-schedule deleted file mode 100644 index 065fd1475983dce81e066c0d230fa91b73958b41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 z009U state.refreshUser); + const isRTL = document.documentElement.getAttribute('dir') === 'rtl'; useEffect(() => { initAnalytics(); @@ -196,6 +198,16 @@ export default function App() {