-
Notifications
You must be signed in to change notification settings - Fork 20
PE-8727: Release v2.76.0 #2096
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PE-8727: Release v2.76.0 #2096
Conversation
- Add note creation feature with markdown editor and live preview - Implement three view modes: Edit Only, Split View, and Preview Only - Add markdown rendering with flutter_markdown package for uploaded files - Add responsive modal design (900px desktop, 700px tablet, full-width mobile) - Add markdown/plain text toggle for large file performance - Add image error handling for unsupported formats (SVG, broken links) - Integrate view mode controls into editor toolbar - Add comprehensive tests for note creation cubit and form - Fix button colors to use brand red (themeAccentEmphasis) New components: - NoteCreateCubit and NoteCreateState for state management - NoteCreateForm modal dialog with validation - NoteEditorWidget with formatting toolbar and preview - Integration with existing upload flow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add dart:convert import for UTF-8 decoding in cubit test - Fix unicode content test to use utf8.decode() instead of String.fromCharCodes() - Add proper test setup with AppLocalizations and ArDriveTheme - Update button text expectation from "CREATE NOTE" to "NEXT" - Increase test viewport size for error message display test All 23 note_create tests now pass: - 17 cubit unit tests - 6 widget tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
When createNoteFile encounters an error, save the current editing state and restore it after emitting the error. This keeps the UI interactive so users can correct issues without losing their work. Previously, emitting NoteCreateError would leave the cubit out of the editing state, making the form non-interactive. Addresses CodeRabbit PR review feedback. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Replace hard-coded English error messages in validation with localization-safe error keys (enum) that the UI layer resolves via AppLocalizations. Changes: - Add NoteNameValidationError enum with 'empty' and 'invalidCharacters' keys - Update _ValidationResult to use errorKey instead of errorMessage - Change NoteCreateEditing.nameError from String? to NoteNameValidationError? - Add _getErrorMessage() method in NoteCreateForm to resolve keys - Add noteNameEmptyError and noteNameInvalidCharactersError to app_en.arb This enables proper internationalization and follows i18n best practices by keeping validation logic separate from localized strings. Addresses CodeRabbit PR review feedback. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add GlobalCupertinoLocalizations.delegate to the test MaterialApp to fully support iOS-style localizations in tests, completing the localization setup. Addresses CodeRabbit PR review feedback. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Address CodeRabbit feedback to ensure test verifies widget presence before accessing its properties. Changes: - Add Key to note name text field for better widget identification - Update test to assert widget exists before accessing autofocus property - Use finder variable to avoid duplicate widget lookups 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Address CodeRabbit feedback to avoid exposing raw exceptions to users. Changes: - Create NoteCreateErrorKey enum with createFileFailed value - Update NoteCreateError state to use enum instead of String message - Log exceptions internally with logger.e() before emitting error state - Add _getCreateErrorMessage() helper to resolve error keys via AppLocalizations - Add noteCreateFileFailed localization string to app_en.arb - Preserve existing emit(editingState) logic to keep UI interactive 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Address CodeRabbit feedback to fix library cycle. Changes: - Move NoteNameValidationError and NoteCreateErrorKey enums from note_create_cubit.dart to note_create_state.dart - Remove circular import of note_create_cubit.dart from note_create_state.dart - Cubit continues to access enums via existing state file import 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Implement Obsidian-like mobile experience and prepare for markdown editing. Mobile UX Improvements: - Add full-page Scaffold layout for mobile (<600px) instead of modal - Move Cancel/Next actions to AppBar for native app feel - Make toolbar horizontally scrollable on mobile (no wrapping) - Hide Split view mode on mobile (only Edit/Preview toggle) - Use Expanded editor for maximum writing space - Keep desktop/tablet modal layout unchanged Edit Mode Foundation: - Extend NoteCreateCubit with edit mode support (existingFileId parameter) - Add initialName and initialContent parameters for pre-loading content - Update mobile/desktop layouts to show "Edit Note" vs "Create New Note" - Change button text from "NEXT" to "SAVE" in edit mode - Add localization strings: editNote, saveEmphasized Benefits: - Mobile: Full-screen writing with no cramped modal - Mobile: Single-row scrollable toolbar (no 3-row wrap) - Desktop: No changes (already works well) - Ready for full edit implementation in next commit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Clean up markdown editor toolbar for better UX and consistency. Toolbar Improvements: - Add Underline button (U) - was missing! - Replace H1, H2, H3 buttons with single H dropdown menu - Replace Edit/Split/Preview with single icon toggle button - Toggle shows eye icon (preview) or pencil icon (edit) - Desktop keeps split view, mobile shows edit/preview only Benefits: - Cleaner, more compact toolbar - Fewer buttons = less visual clutter - H dropdown saves horizontal space - Single toggle is more intuitive - Matches modern note apps (Obsidian, Typora) - Icon-based toggle (no emoji text) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Auto-replace existing file when editing markdown notes (skip conflict modal) - Add autoReplaceConflicts parameter to upload flow for seamless note updates - Enhance scroll bar visibility with increased opacity (0.9/0.5) and theme-aware colors - Apply white/light background to edit and preview modes for better contrast - Fix double scroll bar issue by removing redundant wrapper - Change preview icon from eye to book for better visual clarity - Update view mode default from splitView to editOnly - Increase test viewport size to accommodate modal layout - Update all tests to reflect UI changes (23/23 passing) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add noteFileTooLarge localization with fileSizeMB placeholder - Add noteLargeFileWarningTitle and noteLargeFileWarningDescription - Add continueEmphasized button text - Remove unused splitView localization strings - Update note_create_form.dart to use localized strings - Regenerate AppLocalizations Addresses CodeRabbit review feedback for proper i18n support. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…orWidget - Remove showEditor and showPreview boolean parameters - Use viewMode enum directly in _buildEditorArea with exhaustive switch - Simplify NoteEditorWidget constructor to only use viewMode - Update all call sites to remove redundant flag calculations - Makes code intent clearer and eliminates ambiguity about split view support This refactoring addresses CodeRabbit feedback by making it explicit that split view is not supported and the editor only operates in two mutually exclusive modes (editOnly or previewOnly). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add 18 new localization keys for markdown editor strings - Localize toolbar tooltips (Bold, Italic, Strikethrough, etc.) - Localize heading dropdown items (Heading 1, 2, 3) - Localize view toggle button (Preview, Edit) - Localize placeholder texts for editor and preview - Localize image alt text fallback - Import app_localizations_wrapper for string access - Regenerate AppLocalizations from ARB files All UI strings now support internationalization. English translations provided; other languages show as untranslated pending translation. Addresses CodeRabbit review feedback for proper i18n support. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
The continueEmphasized key was accidentally duplicated when adding file size dialog localizations. Removed the duplicate at line 1475 and kept the original definition at line 265. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
When editing a markdown note, changing the filename would create a new file instead of replacing the existing one. This happened because the upload system's autoReplaceConflicts flag only works when filenames match - renamed files are treated as new uploads. Solution: Make the filename field read-only when editing. The field is now disabled in edit mode, preventing accidental renames and ensuring the file is properly replaced. This follows common UX patterns where file renaming is a separate operation from content editing. Changes: - Set isEnabled=false on filename text field in edit mode - Disable onChanged callback in edit mode - Remove autofocus from filename field in edit mode (focus on content) - Applied to both mobile and desktop layouts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…eation PE-8691: feat: add markdown note creation and preview enhancements
PE-8723: stop redundantly signing and streaming data items
PE-8727: bump app version number to v2.76.0
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests (beta)
Tip 📝 Customizable high-level summaries are now available in beta!You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.
Example instruction:
Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
|
Release Notes