fix: collab note attachments broken (#343)
- Fix attachment URLs to use /api/trips/:id/files/:id/download instead of /uploads/files/... which was unconditionally blocked with 401 - Use getAuthUrl() with ephemeral tokens for displaying attachments and opening them in a new tab (images, PDFs, documents) - Replace htmlFor/id label pattern with ref.current.click() for the file picker button in NoteFormModal — fixes file not being added to pending list on first note creation - Add integration tests COLLAB-028 to COLLAB-031 covering URL format, listing URLs, ephemeral token download, and unauthenticated 401
This commit is contained in:
@@ -101,7 +101,7 @@ export function formatNote(note: CollabNote) {
|
||||
return {
|
||||
...note,
|
||||
avatar_url: avatarUrl(note),
|
||||
attachments: attachments.map(a => ({ ...a, url: `/uploads/${a.filename}` })),
|
||||
attachments: attachments.map(a => ({ ...a, url: `/api/trips/${note.trip_id}/files/${a.id}/download` })),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ export function addNoteFile(tripId: string | number, noteId: string | number, fi
|
||||
).run(tripId, noteId, `files/${file.filename}`, file.originalname, file.size, file.mimetype);
|
||||
|
||||
const saved = db.prepare('SELECT * FROM trip_files WHERE id = ?').get(result.lastInsertRowid) as TripFile;
|
||||
return { file: { ...saved, url: `/uploads/${saved.filename}` } };
|
||||
return { file: { ...saved, url: `/api/trips/${tripId}/files/${saved.id}/download` } };
|
||||
}
|
||||
|
||||
export function getFormattedNoteById(noteId: string | number) {
|
||||
|
||||
Reference in New Issue
Block a user