Files
Momento/memento-note/hooks/use-reminder-check.ts
Sepehr Ramezani aa6a214f37 feat: rename keep-notes to memento-note, migrate to PostgreSQL, fix MCP bugs
- Rename directory keep-notes -> memento-note with all code references
- Prisma: SQLite -> PostgreSQL (both app and MCP server schemas)
- Sync MCP schema with main app (add missing fields, relations, indexes)
- Delete 17 SQLite migrations (clean slate for PostgreSQL)
- Remove SQLite dependencies (@libsql/client, better-sqlite3, etc.)
- Fix MCP server: hardcoded Windows DB paths -> DATABASE_URL env var
- Fix MCP server: .dockerignore excluded index-sse.js (SSE mode broken)
- MCP Dockerfile: node:20 -> node:22
- Docker Compose: add postgres service, remove SQLite volume
- Generate favicon.ico, icon-192.png, icon-512.png, apple-icon.png
- Update layout.tsx icons and manifest.json for PNG icons
- Update all .env files for PostgreSQL
- Rewrite README.md with updated sections
- Remove mcp-server/node_modules and prisma/client-generated from git tracking

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 20:58:04 +02:00

45 lines
1.2 KiB
TypeScript

'use client';
import { useState, useEffect } from 'react';
import { Note } from '@/lib/types';
import { toast } from 'sonner';
export function useReminderCheck(notes: Note[]) {
const [notifiedReminders, setNotifiedReminders] = useState<Set<string>>(new Set());
useEffect(() => {
const checkReminders = () => {
const now = new Date();
const dueReminders: string[] = [];
// First pass: collect which reminders are due
notes.forEach(note => {
if (!note.reminder) return;
const reminderDate = new Date(note.reminder);
if (reminderDate <= now && !notifiedReminders.has(note.id)) {
dueReminders.push(note.id);
toast.info("🔔 Reminder: " + (note.title || "Untitled Note"));
}
});
// Second pass: update state only once with all due reminders
if (dueReminders.length > 0) {
setNotifiedReminders(prev => {
const newSet = new Set(prev);
dueReminders.forEach(id => newSet.add(id));
return newSet;
});
}
};
// Check immediately
checkReminders();
// Then check every 30 seconds
const interval = setInterval(checkReminders, 30000);
return () => clearInterval(interval);
}, [notes]);
}