Skip to content

Implement Canvas File Viewer and UI/UX Improvements

Choose a tag to compare

@damianvtran damianvtran released this 31 May 01:10
· 311 commits to main since this release
4af103e

What's Changed

This release introduces a new file viewer within the Canvas, allowing users to interact with various file types directly in the UI. It also includes several UI/UX improvements across the application and internal code organization enhancements.

  • Version Update: package.json updated from 0.10.3 to 0.10.4.
  • Preload API Extension: src/preload/index.d.ts now includes openFileNatively for opening files with the OS's default application.
  • Agent Settings Refactor: Refactored SecuritySettings and SystemPromptSettings components for better organization.
  • Advanced Chat Settings UI: Introduced a collapsible "Advanced Chat Settings" section with new icons (ChevronDown, ChevronRight from lucide-react) and styling adjustments.
  • Canvas File Viewer: Added a new component src/renderer/src/features/chat/components/canvas/canvas-file-viewer.tsx for displaying and interacting with files within the canvas.
  • Canvas Integration: Updated src/renderer/src/features/chat/components/canvas/index.tsx and src/renderer/src/features/chat/components/chat-content.tsx to integrate the new CanvasFileViewer and introduce a "files" view mode.
  • Message Item File Handling: Improved how files attached to messages are handled, including adding them to the canvas store and supporting new file types across various message-item components.
  • Error Block Update: Added a new error suggestion for "Failed to interpret action" in src/renderer/src/features/chat/components/message-item/error-block.tsx.
  • File Type Utilities: Added new utility files src/renderer/src/features/chat/utils/file-types.ts and src/renderer/src/features/chat/utils/get-file-name.ts for file type determination and name extraction.
  • Onboarding UI Adjustments: Minor UI/layout adjustments for the onboarding flow.
  • Update Notification Styling: Styling updates for the update notification component.
  • OIDC Auth Lock: Added a module-level lock (isAnyBackendAuthInProgress) to prevent concurrent backend authentication calls in src/renderer/src/shared/hooks/use-oidc-auth.ts.
  • Canvas Store Enhancements: Significant updates to src/renderer/src/shared/store/canvas-store.ts to manage mentioned files, add files in batches, and introduce a viewMode for the canvas.

Impact

  • New Features: Introduction of a comprehensive file viewer within the canvas, allowing users to interact with various file types directly in the UI.
  • Improved UX: Refactored agent settings, collapsible chat settings, and enhanced file handling contribute to a more organized and intuitive user experience.
  • Code Organization: Better separation of concerns with new utility files for file types and names.
  • Minor Dependency Updates: package.json version bump.
  • No Breaking Changes: The changes appear to be additive and refactoring, not introducing breaking changes.
  • Performance/Security: The OIDC auth lock improves robustness, and the openFileNatively function provides direct OS file opening capabilities

PRs

  • feat: Implement Canvas File Viewer and UI/UX Improvements by @damianvtran in #61

Full Changelog: v0.10.3...v0.10.4