Adds a /api/staff/file proxy that re-streams Civi attachments with Content-Disposition: inline so a native <dialog> lightbox can preview images and PDFs in place. Office docs keep their plain download link and gain a "View in Google Docs" secondary link (uses the Civi-signed URL so Google can fetch without our staff key). Also threads mime through /api/staff/report (Attachment.get mime_type) so the dispatcher picks the right affordance without relying solely on filename inference.
32 lines
839 B
JSON
32 lines
839 B
JSON
{
|
|
"name": "next-app",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint",
|
|
"sync-help": "node --env-file=.env.local scripts/sync-help-from-civi.mjs",
|
|
"test:mapping": "node --test lib/staff-field-mapping.test.mjs",
|
|
"test:mime": "node --test lib/mime.test.mjs",
|
|
"test": "node --test lib/staff-field-mapping.test.mjs lib/mime.test.mjs"
|
|
},
|
|
"dependencies": {
|
|
"next": "16.2.6",
|
|
"react": "19.2.4",
|
|
"react-dom": "19.2.4",
|
|
"react-hook-form": "^7.75.0"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4",
|
|
"@types/node": "^20",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "16.2.6",
|
|
"tailwindcss": "^4",
|
|
"typescript": "^5"
|
|
}
|
|
}
|