Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
b546113
feat(files): add inline file viewer with text editing and create file…
waleedlatif1 Mar 9, 2026
4e2c770
improvement(files): add UX polish, PR review fixes, and context menu
waleedlatif1 Mar 9, 2026
999ff71
fix(files): propagate save errors and remove redundant sizeDiff
waleedlatif1 Mar 9, 2026
4860b11
fix(files): remove unused textareaRef
waleedlatif1 Mar 9, 2026
59afa54
fix(files): move Cmd+S to parent, add save error feedback, hide save …
waleedlatif1 Mar 9, 2026
bed055c
improvement(files): add save tooltip, deduplicate text-editable exten…
waleedlatif1 Mar 9, 2026
ad9bd5d
refactor: extract isMacPlatform to shared utility
waleedlatif1 Mar 9, 2026
493e30d
refactor(files): deduplicate delete modal, use shared formatFileSize
waleedlatif1 Mar 9, 2026
bfbb112
fix(files): fix a11y label lint error and remove mutation object from…
waleedlatif1 Mar 9, 2026
7d84bc6
fix(files): add isDirty guard on handleSave, return proper HTTP statu…
waleedlatif1 Mar 9, 2026
2ba0683
fix(files): reset isDirty/saveStatus on delete and discard, remove de…
waleedlatif1 Mar 9, 2026
6986b5b
fix(files): prevent concurrent saves on rapid Cmd+S, add YAML MIME types
waleedlatif1 Mar 9, 2026
076f984
refactor(files): reuse shared extension constants, parallelize cancel…
waleedlatif1 Mar 9, 2026
4de9bde
fix(files): guard handleCreate against duplicate calls while pending
waleedlatif1 Mar 9, 2026
53ec2bb
fix(files): show upload progress on the Upload button, not New file
waleedlatif1 Mar 9, 2026
749227c
fix(files): use ref-based guard for create pending state to avoid sta…
waleedlatif1 Mar 9, 2026
fd0081f
cleanup(files): use shared icon import, remove no-op props, wrap hand…
waleedlatif1 Mar 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
improvement(files): add UX polish, PR review fixes, and context menu
- Add unsaved changes guard modal (matching credentials manager pattern)
- Add delete confirmation modal for both viewer and context menu
- Add save status feedback (Save → Saving... → Saved)
- Add right-click context menu with Open, Download, Delete actions
- Add 50MB file size limit on content update API
- Add storage quota check before content updates
- Add response.ok guard on download to prevent corrupt files
- Add skeleton loading for pending file selection (prevents flicker)
- Fix updateContent in handleSave dependency array

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
  • Loading branch information
waleedlatif1 and claude committed Mar 9, 2026
commit 4e2c77071a22f06b4666044fd260082900df6aab
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,15 @@ export async function PUT(
}
Comment thread
waleedlatif1 marked this conversation as resolved.

const buffer = Buffer.from(content, 'utf-8')

const maxFileSizeBytes = 50 * 1024 * 1024
if (buffer.length > maxFileSizeBytes) {
return NextResponse.json(
{ error: `File size exceeds ${maxFileSizeBytes / 1024 / 1024}MB limit` },
{ status: 413 }
)
}

const updatedFile = await updateWorkspaceFileContent(
workspaceId,
fileId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ function TextEditor({ file, workspaceId, canEdit, onDirtyChange, saveRef }: Text
} catch (err) {
logger.error('Failed to save file content:', err)
}
}, [savedContent, workspaceId, file.id])
}, [savedContent, workspaceId, file.id, updateContent])
Comment thread
waleedlatif1 marked this conversation as resolved.
Outdated

useEffect(() => {
if (saveRef) {
Expand Down
Loading