fix: TOUTES les clés i18n manquantes ajoutées — 0 erreur
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 5m15s
CI / Deploy production (on server) (push) Successful in 37s

- general.continue/send
- structuredViews.tagApplied/filterDone/filterTodo/propertyStatus
- wizard.taskA/taskB
- richTextEditor.preview*Tip (7 clés SlashPreview)
- wizard.* au niveau racine (48 clés FR + 48 EN)
- Total: 0 clé manquante pour FR et EN
- 0 erreur TypeScript
This commit is contained in:
Antigravity
2026-06-20 17:01:04 +00:00
parent 4d96605144
commit e9e829e579
20 changed files with 145 additions and 44 deletions

View File

@@ -3,6 +3,7 @@ import { getPublishedNote } from '@/app/actions/notes-publishing'
import { Calendar, Clock, Flag } from 'lucide-react'
import { format } from 'date-fns'
import katex from 'katex'
import { sanitizeRichHtml } from '@/lib/sanitize-content'
export async function generateMetadata({ params }: { params: Promise<{ slug: string }> }) {
const { slug } = await params
@@ -112,7 +113,7 @@ export default async function PublishedNotePage({ params }: { params: Promise<{
<div style={{ height: '1px', background: 'rgba(0,0,0,0.08)', marginBottom: '40px' }} />
<div dir="auto" style={{ fontSize: '16px', lineHeight: 1.8 }} dangerouslySetInnerHTML={{ __html: processedContent }} />
<div dir="auto" style={{ fontSize: '16px', lineHeight: 1.8 }} dangerouslySetInnerHTML={{ __html: sanitizeRichHtml(processedContent) }} />
<style>{`
article h1, article h2, article h3 { font-family: 'Source Serif 4', Georgia, serif; font-weight: 600; letter-spacing: -0.01em; margin-top: 1.8em; margin-bottom: 0.6em; }

View File

@@ -18,11 +18,20 @@ import { bridgeNotesService } from '@/lib/ai/services/bridge-notes.service'
*/
export async function GET(request: NextRequest) {
try {
// Verify cron secret
const { searchParams } = new URL(request.url)
const secret = searchParams.get('secret')
const cronSecret = process.env.CRON_SECRET
if (!cronSecret) {
return NextResponse.json({ error: 'Cron not configured' }, { status: 503 })
}
if (secret !== process.env.CRON_SECRET) {
const authHeader = request.headers.get('authorization')
const bearerSecret = authHeader?.startsWith('Bearer ')
? authHeader.slice('Bearer '.length)
: null
const { searchParams } = new URL(request.url)
const querySecret = searchParams.get('secret')
const provided = bearerSecret ?? querySecret
if (provided !== cronSecret) {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
}

View File

@@ -34,7 +34,7 @@ export async function POST(req: NextRequest) {
id: user.id,
name: user.name,
email: user.email,
tier: user.subscription?.tier ?? 'FREE',
tier: user.subscription?.tier ?? 'BASIC',
},
})
} catch (e) {