feat: RTL/i18n, AI translate+undo, no-refresh saves, settings perf
- RTL: force dir=rtl on LabelFilter, NotesViewToggle, LabelManagementDialog - i18n: add missing keys (notifications, privacy, edit/preview, AI translate/undo) - Settings pages: convert to Server Components (general, appearance) + loading skeleton - AI menu: add Translate option (10 languages) + Undo AI button in toolbar - Fix: saveInline uses REST API instead of Server Action → eliminates all implicit refreshes in list mode - Fix: NotesTabsView notes sync effect preserves selected note on content changes - Fix: auto-tag suggestions now filter already-assigned labels - Fix: color change in card view uses local state (no refresh) - Fix: nav links use <Link> for prefetching (Settings, Admin) - Fix: suppress duplicate label suggestions already on note - Route: add /api/ai/translate endpoint
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { useLanguage } from '@/lib/i18n'
|
||||
import { useState, useEffect, useRef } from 'react';
|
||||
import { useDebounce } from './use-debounce';
|
||||
import { TagSuggestion } from '@/lib/ai/types';
|
||||
@@ -9,6 +10,7 @@ interface UseAutoTaggingProps {
|
||||
}
|
||||
|
||||
export function useAutoTagging({ content, notebookId, enabled = true }: UseAutoTaggingProps) {
|
||||
const { language } = useLanguage();
|
||||
const [suggestions, setSuggestions] = useState<TagSuggestion[]>([]);
|
||||
const [isAnalyzing, setIsAnalyzing] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
@@ -42,7 +44,7 @@ export function useAutoTagging({ content, notebookId, enabled = true }: UseAutoT
|
||||
body: JSON.stringify({
|
||||
content: contentToAnalyze,
|
||||
notebookId: notebookId || undefined,
|
||||
language: document.documentElement.lang || 'en',
|
||||
language: language || document.documentElement.lang || 'en',
|
||||
}),
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user