diff --git a/client/src/App.js b/client/src/App.js
index 6d77e25..90c0965 100644
--- a/client/src/App.js
+++ b/client/src/App.js
@@ -33,6 +33,7 @@ import StreakManager from './services/streak/StreakManager';
import ViewManager from './services/view/ViewManager';
import BadgeManager from './services/badge/BadgeManager';
import CollaborationManager from './services/collaboration/CollaborationManager';
+import SupportReminder from './components/Modal Management/SupportReminder';
const AppContent = () => {
const [isDark, setIsDark] = useState(false);
@@ -391,6 +392,7 @@ const AppContent = () => {
onConfirm={handleConfirmClear}
onCancel={() => setShowClearDataModal(false)}
/>
+
) : (
diff --git a/client/src/components/Landing/Landing.js b/client/src/components/Landing/Landing.js
index d8781f9..a056734 100644
--- a/client/src/components/Landing/Landing.js
+++ b/client/src/components/Landing/Landing.js
@@ -3,7 +3,6 @@ import {
Sun,
Moon,
Brain,
- Rocket,
Trophy,
Sparkles,
ChartLine,
diff --git a/client/src/components/Modal Management/SupportReminder.js b/client/src/components/Modal Management/SupportReminder.js
new file mode 100644
index 0000000..a346341
--- /dev/null
+++ b/client/src/components/Modal Management/SupportReminder.js
@@ -0,0 +1,83 @@
+import React, { useState, useEffect } from 'react';
+import { Heart, Star} from 'lucide-react';
+
+const REMINDER_INTERVAL = 5 * 24 * 60 * 60 * 1000; // 5 days
+
+const SupportReminder = () => {
+ const [isVisible, setIsVisible] = useState(false);
+
+ useEffect(() => {
+ const checkAndShowReminder = () => {
+ const lastReminder = localStorage.getItem('lastSupportReminder');
+ const now = Date.now();
+
+ if (!lastReminder || (now - parseInt(lastReminder)) > REMINDER_INTERVAL) {
+ setIsVisible(true);
+ localStorage.setItem('lastSupportReminder', now.toString());
+ }
+ };
+
+ const timer = setTimeout(checkAndShowReminder, 5000);
+ return () => clearTimeout(timer);
+ }, []);
+
+ const handleClose = () => {
+ setIsVisible(false);
+ };
+
+ if (!isVisible) return null;
+
+ return (
+
+
+
+
+
+
+
+ Enjoying QuestLog?
+
+
+ Help us grow by showing your support! Every little bit helps us continue improving.
+
+
+
+
+
+
+
+
+ );
+};
+
+export default SupportReminder;
diff --git a/client/src/services/task/TaskManager.js b/client/src/services/task/TaskManager.js
index 0f8012f..8b359b5 100644
--- a/client/src/services/task/TaskManager.js
+++ b/client/src/services/task/TaskManager.js
@@ -100,8 +100,6 @@ class TaskManager {
console.error('[UPDATE-TASK] Server error:', errorText);
throw new Error(`Failed to sync project update: ${response.status}`);
}
-
- const result = await response.json();
}
// Update local state after successful sync (or if not shared)
diff --git a/client/tailwind.config.js b/client/tailwind.config.js
index ede33ab..0d69aaf 100644
--- a/client/tailwind.config.js
+++ b/client/tailwind.config.js
@@ -38,6 +38,10 @@ module.exports = {
expandWidth: {
'0%': { width: '0%', opacity: '0' },
'100%': { width: '100%', opacity: '1' }
+ },
+ slideUp: {
+ '0%': { transform: 'translateY(100%)', opacity: '0' },
+ '100%': { transform: 'translateY(0)', opacity: '1' }
}
},
animation: {
@@ -47,7 +51,8 @@ module.exports = {
float: 'float 6s ease-in-out infinite',
scale: 'scale 0.5s ease-out',
shimmer: 'shimmer 2s infinite linear',
- expandWidth: 'expandWidth 0.8s ease-out forwards'
+ expandWidth: 'expandWidth 0.8s ease-out forwards',
+ slideUp: 'slideUp 0.3s ease-out forwards'
}
}
},