feat: improve AI Chat UX, add notebook summary, and fix shared/reminders routing
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 1m50s
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 1m50s
This commit is contained in:
@@ -31,12 +31,12 @@ export default async function MainLayout({
|
||||
return (
|
||||
<ProvidersWrapper initialLanguage={initialLanguage} initialTranslations={initialTranslations}>
|
||||
{/* No top-bar header — sidebar-only navigation (architectural-grid design) */}
|
||||
<div className="flex h-screen overflow-hidden bg-[#E5E2D9]">
|
||||
<div className="flex h-screen overflow-hidden bg-memento-desk">
|
||||
<Suspense fallback={<div className="hidden w-80 shrink-0 md:block" />}>
|
||||
<Sidebar user={session?.user} />
|
||||
</Suspense>
|
||||
|
||||
<main className="flex min-h-0 flex-1 flex-col overflow-y-auto scroll-smooth bg-background">
|
||||
<main className="flex min-h-0 flex-1 flex-col overflow-y-auto scroll-smooth bg-memento-paper">
|
||||
{children}
|
||||
</main>
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ export default async function HomePage() {
|
||||
notesViewMode,
|
||||
noteHistory: settings?.noteHistory === true,
|
||||
noteHistoryMode: (settings?.noteHistoryMode ?? 'manual') as 'manual' | 'auto',
|
||||
aiAssistantEnabled: settings?.paragraphRefactor !== false,
|
||||
}}
|
||||
/>
|
||||
)
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
import { getNotesWithReminders } from '@/app/actions/notes'
|
||||
import { RemindersPage } from '@/components/reminders-page'
|
||||
|
||||
export const dynamic = 'force-dynamic'
|
||||
|
||||
export default async function RemindersRoute() {
|
||||
const notes = await getNotesWithReminders()
|
||||
return <RemindersPage notes={notes} />
|
||||
}
|
||||
@@ -29,9 +29,11 @@ export function GeneralSettingsClient({ initialSettings }: GeneralSettingsClient
|
||||
await updateAISettings({ preferredLanguage: value as any })
|
||||
if (value === 'auto') {
|
||||
localStorage.removeItem('user-language')
|
||||
document.cookie = 'user-language=;path=/;max-age=0'
|
||||
toast.success(t('settings.languageAuto') || 'Language set to Auto')
|
||||
} else {
|
||||
localStorage.setItem('user-language', value)
|
||||
document.cookie = `user-language=${value};path=/;max-age=${60 * 60 * 24 * 365};samesite=lax`
|
||||
setContextLanguage(value as any)
|
||||
toast.success(t('profile.languageUpdateSuccess') || 'Language updated')
|
||||
}
|
||||
|
||||
@@ -273,22 +273,21 @@ Focus ONLY on this note unless asked otherwise.`
|
||||
|
||||
const provider = getChatProvider(sysConfig)
|
||||
const result = await streamText({
|
||||
model: provider.chatModel,
|
||||
model: provider.getModel(),
|
||||
system: systemPrompt,
|
||||
messages: incomingMessages,
|
||||
tools: chatTools,
|
||||
maxSteps: 5,
|
||||
onFinish: async (final) => {
|
||||
// Save messages to DB
|
||||
const userContent = incomingMessages[incomingMessages.length - 1].content
|
||||
await prisma.message.create({
|
||||
await prisma.chatMessage.create({
|
||||
data: { conversationId: conversation.id, role: 'user', content: userContent }
|
||||
})
|
||||
await prisma.message.create({
|
||||
await prisma.chatMessage.create({
|
||||
data: { conversationId: conversation.id, role: 'assistant', content: final.text }
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
return result.toDataStreamResponse()
|
||||
return result.toUIMessageStreamResponse()
|
||||
}
|
||||
|
||||
@@ -15,9 +15,11 @@
|
||||
/* Memento — Architectural Grid (réf. architectural-grid1) */
|
||||
--color-memento-desk: #E5E2D9;
|
||||
--color-memento-paper: #F2F0E9;
|
||||
--color-memento-sidebar: #F6F4F0;
|
||||
--color-memento-ink: #1C1C1C;
|
||||
--color-primary: #ACB995;
|
||||
--color-memento-accent: #D4A373;
|
||||
--color-memento-blue: #75B2D6;
|
||||
--color-memento-paper-elevated: #faf9f5;
|
||||
--color-background-light: var(--color-memento-paper);
|
||||
--color-background-dark: #202020;
|
||||
@@ -342,8 +344,8 @@ html.dark .memento-active-nav {
|
||||
|
||||
:root {
|
||||
--radius: 0.5rem;
|
||||
--memento-desk: #F9F8F6;
|
||||
--background: #F9F8F6;
|
||||
--memento-desk: #E5E2D9;
|
||||
--background: #F2F0E9;
|
||||
--foreground: #212529;
|
||||
--card: #ffffff;
|
||||
--card-foreground: #212529;
|
||||
@@ -365,7 +367,7 @@ html.dark .memento-active-nav {
|
||||
--pinned-gold: #F59E0B;
|
||||
--sage-green: #10B981;
|
||||
|
||||
--sidebar: #ffffff;
|
||||
--sidebar: #F6F4F0;
|
||||
--sidebar-foreground: #212529;
|
||||
--sidebar-primary: #212529;
|
||||
--sidebar-primary-foreground: #F9F8F6;
|
||||
@@ -403,7 +405,7 @@ html.dark {
|
||||
--border: rgba(28, 28, 28, 0.1);
|
||||
--input: rgba(28, 28, 28, 0.12);
|
||||
--ring: rgba(28, 28, 28, 0.35);
|
||||
--sidebar: color-mix(in oklab, #ffffff 65%, #F2F0E9);
|
||||
--sidebar: #F6F4F0;
|
||||
--sidebar-foreground: #1C1C1C;
|
||||
--sidebar-primary: #1C1C1C;
|
||||
--sidebar-primary-foreground: #F2F0E9;
|
||||
|
||||
@@ -75,6 +75,10 @@ const directionScript = `
|
||||
(function(){
|
||||
try {
|
||||
var lang = localStorage.getItem('user-language');
|
||||
if (!lang) {
|
||||
var c = document.cookie.split(';').map(function(s){return s.trim()}).find(function(s){return s.startsWith('user-language=')});
|
||||
if (c) lang = c.split('=')[1];
|
||||
}
|
||||
if (lang === 'fa' || lang === 'ar') {
|
||||
document.documentElement.dir = 'rtl';
|
||||
document.documentElement.lang = lang;
|
||||
|
||||
Reference in New Issue
Block a user