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:
File diff suppressed because one or more lines are too long
@@ -275,6 +275,7 @@ exports.Prisma.UserAISettingsScalarFieldEnum = {
|
||||
fontSize: 'fontSize',
|
||||
demoMode: 'demoMode',
|
||||
showRecentNotes: 'showRecentNotes',
|
||||
notesViewMode: 'notesViewMode',
|
||||
emailNotifications: 'emailNotifications',
|
||||
desktopNotifications: 'desktopNotifications',
|
||||
anonymousAnalytics: 'anonymousAnalytics'
|
||||
|
||||
35
keep-notes/prisma/client-generated/index.d.ts
vendored
35
keep-notes/prisma/client-generated/index.d.ts
vendored
@@ -13554,6 +13554,7 @@ export namespace Prisma {
|
||||
fontSize: string | null
|
||||
demoMode: boolean | null
|
||||
showRecentNotes: boolean | null
|
||||
notesViewMode: string | null
|
||||
emailNotifications: boolean | null
|
||||
desktopNotifications: boolean | null
|
||||
anonymousAnalytics: boolean | null
|
||||
@@ -13571,6 +13572,7 @@ export namespace Prisma {
|
||||
fontSize: string | null
|
||||
demoMode: boolean | null
|
||||
showRecentNotes: boolean | null
|
||||
notesViewMode: string | null
|
||||
emailNotifications: boolean | null
|
||||
desktopNotifications: boolean | null
|
||||
anonymousAnalytics: boolean | null
|
||||
@@ -13588,6 +13590,7 @@ export namespace Prisma {
|
||||
fontSize: number
|
||||
demoMode: number
|
||||
showRecentNotes: number
|
||||
notesViewMode: number
|
||||
emailNotifications: number
|
||||
desktopNotifications: number
|
||||
anonymousAnalytics: number
|
||||
@@ -13607,6 +13610,7 @@ export namespace Prisma {
|
||||
fontSize?: true
|
||||
demoMode?: true
|
||||
showRecentNotes?: true
|
||||
notesViewMode?: true
|
||||
emailNotifications?: true
|
||||
desktopNotifications?: true
|
||||
anonymousAnalytics?: true
|
||||
@@ -13624,6 +13628,7 @@ export namespace Prisma {
|
||||
fontSize?: true
|
||||
demoMode?: true
|
||||
showRecentNotes?: true
|
||||
notesViewMode?: true
|
||||
emailNotifications?: true
|
||||
desktopNotifications?: true
|
||||
anonymousAnalytics?: true
|
||||
@@ -13641,6 +13646,7 @@ export namespace Prisma {
|
||||
fontSize?: true
|
||||
demoMode?: true
|
||||
showRecentNotes?: true
|
||||
notesViewMode?: true
|
||||
emailNotifications?: true
|
||||
desktopNotifications?: true
|
||||
anonymousAnalytics?: true
|
||||
@@ -13731,6 +13737,7 @@ export namespace Prisma {
|
||||
fontSize: string
|
||||
demoMode: boolean
|
||||
showRecentNotes: boolean
|
||||
notesViewMode: string
|
||||
emailNotifications: boolean
|
||||
desktopNotifications: boolean
|
||||
anonymousAnalytics: boolean
|
||||
@@ -13765,6 +13772,7 @@ export namespace Prisma {
|
||||
fontSize?: boolean
|
||||
demoMode?: boolean
|
||||
showRecentNotes?: boolean
|
||||
notesViewMode?: boolean
|
||||
emailNotifications?: boolean
|
||||
desktopNotifications?: boolean
|
||||
anonymousAnalytics?: boolean
|
||||
@@ -13783,6 +13791,7 @@ export namespace Prisma {
|
||||
fontSize?: boolean
|
||||
demoMode?: boolean
|
||||
showRecentNotes?: boolean
|
||||
notesViewMode?: boolean
|
||||
emailNotifications?: boolean
|
||||
desktopNotifications?: boolean
|
||||
anonymousAnalytics?: boolean
|
||||
@@ -13801,6 +13810,7 @@ export namespace Prisma {
|
||||
fontSize?: boolean
|
||||
demoMode?: boolean
|
||||
showRecentNotes?: boolean
|
||||
notesViewMode?: boolean
|
||||
emailNotifications?: boolean
|
||||
desktopNotifications?: boolean
|
||||
anonymousAnalytics?: boolean
|
||||
@@ -13830,6 +13840,10 @@ export namespace Prisma {
|
||||
fontSize: string
|
||||
demoMode: boolean
|
||||
showRecentNotes: boolean
|
||||
/**
|
||||
* "masonry" = cartes Muuri ; "list" = liste classique
|
||||
*/
|
||||
notesViewMode: string
|
||||
emailNotifications: boolean
|
||||
desktopNotifications: boolean
|
||||
anonymousAnalytics: boolean
|
||||
@@ -14238,6 +14252,7 @@ export namespace Prisma {
|
||||
readonly fontSize: FieldRef<"UserAISettings", 'String'>
|
||||
readonly demoMode: FieldRef<"UserAISettings", 'Boolean'>
|
||||
readonly showRecentNotes: FieldRef<"UserAISettings", 'Boolean'>
|
||||
readonly notesViewMode: FieldRef<"UserAISettings", 'String'>
|
||||
readonly emailNotifications: FieldRef<"UserAISettings", 'Boolean'>
|
||||
readonly desktopNotifications: FieldRef<"UserAISettings", 'Boolean'>
|
||||
readonly anonymousAnalytics: FieldRef<"UserAISettings", 'Boolean'>
|
||||
@@ -14771,6 +14786,7 @@ export namespace Prisma {
|
||||
fontSize: 'fontSize',
|
||||
demoMode: 'demoMode',
|
||||
showRecentNotes: 'showRecentNotes',
|
||||
notesViewMode: 'notesViewMode',
|
||||
emailNotifications: 'emailNotifications',
|
||||
desktopNotifications: 'desktopNotifications',
|
||||
anonymousAnalytics: 'anonymousAnalytics'
|
||||
@@ -15817,6 +15833,7 @@ export namespace Prisma {
|
||||
fontSize?: StringFilter<"UserAISettings"> | string
|
||||
demoMode?: BoolFilter<"UserAISettings"> | boolean
|
||||
showRecentNotes?: BoolFilter<"UserAISettings"> | boolean
|
||||
notesViewMode?: StringFilter<"UserAISettings"> | string
|
||||
emailNotifications?: BoolFilter<"UserAISettings"> | boolean
|
||||
desktopNotifications?: BoolFilter<"UserAISettings"> | boolean
|
||||
anonymousAnalytics?: BoolFilter<"UserAISettings"> | boolean
|
||||
@@ -15835,6 +15852,7 @@ export namespace Prisma {
|
||||
fontSize?: SortOrder
|
||||
demoMode?: SortOrder
|
||||
showRecentNotes?: SortOrder
|
||||
notesViewMode?: SortOrder
|
||||
emailNotifications?: SortOrder
|
||||
desktopNotifications?: SortOrder
|
||||
anonymousAnalytics?: SortOrder
|
||||
@@ -15856,6 +15874,7 @@ export namespace Prisma {
|
||||
fontSize?: StringFilter<"UserAISettings"> | string
|
||||
demoMode?: BoolFilter<"UserAISettings"> | boolean
|
||||
showRecentNotes?: BoolFilter<"UserAISettings"> | boolean
|
||||
notesViewMode?: StringFilter<"UserAISettings"> | string
|
||||
emailNotifications?: BoolFilter<"UserAISettings"> | boolean
|
||||
desktopNotifications?: BoolFilter<"UserAISettings"> | boolean
|
||||
anonymousAnalytics?: BoolFilter<"UserAISettings"> | boolean
|
||||
@@ -15874,6 +15893,7 @@ export namespace Prisma {
|
||||
fontSize?: SortOrder
|
||||
demoMode?: SortOrder
|
||||
showRecentNotes?: SortOrder
|
||||
notesViewMode?: SortOrder
|
||||
emailNotifications?: SortOrder
|
||||
desktopNotifications?: SortOrder
|
||||
anonymousAnalytics?: SortOrder
|
||||
@@ -15897,6 +15917,7 @@ export namespace Prisma {
|
||||
fontSize?: StringWithAggregatesFilter<"UserAISettings"> | string
|
||||
demoMode?: BoolWithAggregatesFilter<"UserAISettings"> | boolean
|
||||
showRecentNotes?: BoolWithAggregatesFilter<"UserAISettings"> | boolean
|
||||
notesViewMode?: StringWithAggregatesFilter<"UserAISettings"> | string
|
||||
emailNotifications?: BoolWithAggregatesFilter<"UserAISettings"> | boolean
|
||||
desktopNotifications?: BoolWithAggregatesFilter<"UserAISettings"> | boolean
|
||||
anonymousAnalytics?: BoolWithAggregatesFilter<"UserAISettings"> | boolean
|
||||
@@ -16978,6 +16999,7 @@ export namespace Prisma {
|
||||
fontSize?: string
|
||||
demoMode?: boolean
|
||||
showRecentNotes?: boolean
|
||||
notesViewMode?: string
|
||||
emailNotifications?: boolean
|
||||
desktopNotifications?: boolean
|
||||
anonymousAnalytics?: boolean
|
||||
@@ -16996,6 +17018,7 @@ export namespace Prisma {
|
||||
fontSize?: string
|
||||
demoMode?: boolean
|
||||
showRecentNotes?: boolean
|
||||
notesViewMode?: string
|
||||
emailNotifications?: boolean
|
||||
desktopNotifications?: boolean
|
||||
anonymousAnalytics?: boolean
|
||||
@@ -17012,6 +17035,7 @@ export namespace Prisma {
|
||||
fontSize?: StringFieldUpdateOperationsInput | string
|
||||
demoMode?: BoolFieldUpdateOperationsInput | boolean
|
||||
showRecentNotes?: BoolFieldUpdateOperationsInput | boolean
|
||||
notesViewMode?: StringFieldUpdateOperationsInput | string
|
||||
emailNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
desktopNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
anonymousAnalytics?: BoolFieldUpdateOperationsInput | boolean
|
||||
@@ -17030,6 +17054,7 @@ export namespace Prisma {
|
||||
fontSize?: StringFieldUpdateOperationsInput | string
|
||||
demoMode?: BoolFieldUpdateOperationsInput | boolean
|
||||
showRecentNotes?: BoolFieldUpdateOperationsInput | boolean
|
||||
notesViewMode?: StringFieldUpdateOperationsInput | string
|
||||
emailNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
desktopNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
anonymousAnalytics?: BoolFieldUpdateOperationsInput | boolean
|
||||
@@ -17047,6 +17072,7 @@ export namespace Prisma {
|
||||
fontSize?: string
|
||||
demoMode?: boolean
|
||||
showRecentNotes?: boolean
|
||||
notesViewMode?: string
|
||||
emailNotifications?: boolean
|
||||
desktopNotifications?: boolean
|
||||
anonymousAnalytics?: boolean
|
||||
@@ -17063,6 +17089,7 @@ export namespace Prisma {
|
||||
fontSize?: StringFieldUpdateOperationsInput | string
|
||||
demoMode?: BoolFieldUpdateOperationsInput | boolean
|
||||
showRecentNotes?: BoolFieldUpdateOperationsInput | boolean
|
||||
notesViewMode?: StringFieldUpdateOperationsInput | string
|
||||
emailNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
desktopNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
anonymousAnalytics?: BoolFieldUpdateOperationsInput | boolean
|
||||
@@ -17080,6 +17107,7 @@ export namespace Prisma {
|
||||
fontSize?: StringFieldUpdateOperationsInput | string
|
||||
demoMode?: BoolFieldUpdateOperationsInput | boolean
|
||||
showRecentNotes?: BoolFieldUpdateOperationsInput | boolean
|
||||
notesViewMode?: StringFieldUpdateOperationsInput | string
|
||||
emailNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
desktopNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
anonymousAnalytics?: BoolFieldUpdateOperationsInput | boolean
|
||||
@@ -17946,6 +17974,7 @@ export namespace Prisma {
|
||||
fontSize?: SortOrder
|
||||
demoMode?: SortOrder
|
||||
showRecentNotes?: SortOrder
|
||||
notesViewMode?: SortOrder
|
||||
emailNotifications?: SortOrder
|
||||
desktopNotifications?: SortOrder
|
||||
anonymousAnalytics?: SortOrder
|
||||
@@ -17963,6 +17992,7 @@ export namespace Prisma {
|
||||
fontSize?: SortOrder
|
||||
demoMode?: SortOrder
|
||||
showRecentNotes?: SortOrder
|
||||
notesViewMode?: SortOrder
|
||||
emailNotifications?: SortOrder
|
||||
desktopNotifications?: SortOrder
|
||||
anonymousAnalytics?: SortOrder
|
||||
@@ -17980,6 +18010,7 @@ export namespace Prisma {
|
||||
fontSize?: SortOrder
|
||||
demoMode?: SortOrder
|
||||
showRecentNotes?: SortOrder
|
||||
notesViewMode?: SortOrder
|
||||
emailNotifications?: SortOrder
|
||||
desktopNotifications?: SortOrder
|
||||
anonymousAnalytics?: SortOrder
|
||||
@@ -19613,6 +19644,7 @@ export namespace Prisma {
|
||||
fontSize?: string
|
||||
demoMode?: boolean
|
||||
showRecentNotes?: boolean
|
||||
notesViewMode?: string
|
||||
emailNotifications?: boolean
|
||||
desktopNotifications?: boolean
|
||||
anonymousAnalytics?: boolean
|
||||
@@ -19629,6 +19661,7 @@ export namespace Prisma {
|
||||
fontSize?: string
|
||||
demoMode?: boolean
|
||||
showRecentNotes?: boolean
|
||||
notesViewMode?: string
|
||||
emailNotifications?: boolean
|
||||
desktopNotifications?: boolean
|
||||
anonymousAnalytics?: boolean
|
||||
@@ -19947,6 +19980,7 @@ export namespace Prisma {
|
||||
fontSize?: StringFieldUpdateOperationsInput | string
|
||||
demoMode?: BoolFieldUpdateOperationsInput | boolean
|
||||
showRecentNotes?: BoolFieldUpdateOperationsInput | boolean
|
||||
notesViewMode?: StringFieldUpdateOperationsInput | string
|
||||
emailNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
desktopNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
anonymousAnalytics?: BoolFieldUpdateOperationsInput | boolean
|
||||
@@ -19963,6 +19997,7 @@ export namespace Prisma {
|
||||
fontSize?: StringFieldUpdateOperationsInput | string
|
||||
demoMode?: BoolFieldUpdateOperationsInput | boolean
|
||||
showRecentNotes?: BoolFieldUpdateOperationsInput | boolean
|
||||
notesViewMode?: StringFieldUpdateOperationsInput | string
|
||||
emailNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
desktopNotifications?: BoolFieldUpdateOperationsInput | boolean
|
||||
anonymousAnalytics?: BoolFieldUpdateOperationsInput | boolean
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "prisma-client-c6853a2d560fc459913c7f241f4427cd8f8957f5474f01e1a2cabb8c1f55d4d8",
|
||||
"name": "prisma-client-2331c58c0b3910e5ab8251136c7336826e2ba4756d13e7c07da246b228c31c54",
|
||||
"main": "index.js",
|
||||
"types": "index.d.ts",
|
||||
"browser": "index-browser.js",
|
||||
|
||||
@@ -229,6 +229,8 @@ model UserAISettings {
|
||||
fontSize String @default("medium")
|
||||
demoMode Boolean @default(false)
|
||||
showRecentNotes Boolean @default(true)
|
||||
/// "masonry" = cartes Muuri ; "list" = liste classique
|
||||
notesViewMode String @default("masonry")
|
||||
emailNotifications Boolean @default(false)
|
||||
desktopNotifications Boolean @default(false)
|
||||
anonymousAnalytics Boolean @default(false)
|
||||
|
||||
@@ -275,6 +275,7 @@ exports.Prisma.UserAISettingsScalarFieldEnum = {
|
||||
fontSize: 'fontSize',
|
||||
demoMode: 'demoMode',
|
||||
showRecentNotes: 'showRecentNotes',
|
||||
notesViewMode: 'notesViewMode',
|
||||
emailNotifications: 'emailNotifications',
|
||||
desktopNotifications: 'desktopNotifications',
|
||||
anonymousAnalytics: 'anonymousAnalytics'
|
||||
|
||||
Reference in New Issue
Block a user