feat: add resizable month view with customizable display modes#548
Open
kavantrivedi wants to merge 1 commit into
Open
feat: add resizable month view with customizable display modes#548kavantrivedi wants to merge 1 commit into
kavantrivedi wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds a new ResizableMonthView to the package (and wires it into the example app) to support three month display modes (full/compact/minimal) with a built-in event list, plus new theme data and localization strings to showcase the feature.
Changes:
- Added the new
ResizableMonthViewwidget family (style/theme settings/builders/internal header/page/event list) and exported it from the package. - Added
ResizableMonthViewThemeDataand integrated it intoCalendarThemeData,BuildContexttheme access, and the example app themes. - Added/updated tests and example navigation/localization to demonstrate the new view.
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| test/event_arranger_test/merge_event_arranger_multiday_test.dart | Adds coverage for multi-day + midnight edge cases in merge arranging. |
| README.md | Documents Resizable Month View as an available view option. |
| lib/src/theme/resizable_month_view_theme_data.dart | Introduces a theme extension for ResizableMonthView UI colors. |
| lib/src/theme/calendar_theme_data.dart | Extends CalendarThemeData to include resizable month theme configuration. |
| lib/src/resizable_month_view/resizable_month_view.dart | Implements the main ResizableMonthView widget/state and navigation/mode logic. |
| lib/src/resizable_month_view/resizable_month_view_theme_settings.dart | Adds theme settings (MonthViewThemeSettings-like) for ResizableMonthView. |
| lib/src/resizable_month_view/resizable_month_view_style.dart | Adds style configuration including mode-toggle and animation settings. |
| lib/src/resizable_month_view/resizable_month_view_builders.dart | Adds builders/callbacks including mode-change and event list customization. |
| lib/src/resizable_month_view/_resizable_month_page.dart | Implements the internal grid page for full/compact/minimal date sets. |
| lib/src/resizable_month_view/_resizable_month_header.dart | Implements the header (title/arrows/mode toggle). |
| lib/src/resizable_month_view/_event_list_panel.dart | Implements the event list sliver panel shown below the grid. |
| lib/src/extensions.dart | Adds resizableMonthViewColors theme accessor on BuildContext. |
| lib/src/enumerations.dart | Adds ResizableMonthViewMode enum. |
| lib/calendar_view.dart | Exports the new ResizableMonthView APIs and theme data. |
| example/lib/widgets/resizable_month_view_widget.dart | Adds the example widget showcasing ResizableMonthView behavior and styling. |
| example/lib/widgets/calendar_views.dart | Adds the new CalendarView switch case for ResizableMonthView in the example. |
| example/lib/widgets/calendar_configs.dart | Adds localized view name mapping for the new example view. |
| example/lib/theme/app_theme.dart | Registers ResizableMonthViewThemeData in example light/dark ThemeData extensions. |
| example/lib/pages/resizable_month_view_page.dart | Adds a dedicated demo page for the ResizableMonthView in the example. |
| example/lib/pages/mobile/mobile_home_page.dart | Adds a navigation entry to the ResizableMonthView demo page. |
| example/lib/main.dart | Wires resizableMonthViewTheme into CalendarThemeProvider in the example. |
| example/lib/l10n/app_es.arb | Adds Spanish string for “Resizable Month View”. |
| example/lib/l10n/app_en.arb | Adds English string for “Resizable Month View”. |
| example/lib/l10n/app_ar.arb | Adds Arabic string for “Resizable Month View”. |
| example/lib/extension.dart | Updates CalendarView.name mapping to a switch for the new example enum value. |
| example/lib/enumerations.dart | Adds resizableMonth to the example app’s CalendarView enum. |
| CHANGELOG.md | Notes the addition of ResizableMonthView and related theming. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
9faaddb to
7e7e7f6
Compare
5d1487d to
fce5b53
Compare
fce5b53 to
04a3044
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This pull request introduces a new "Resizable Month View" feature to the calendar example app, allowing users to view and interact with the month view in multiple display modes (full, compact, minimal). It includes updates to the UI, theming, localization, and core enumeration to support and showcase this new view. Below are the most important changes grouped by theme:
Feature: Resizable Month View Integration
CalendarView.resizableMonthenum value to support the new view mode.ResizableMonthViewWidgetand its demo page, showcasing all display modes, custom theming, and event interactions. [1] [2]Theming and Style Support
ResizableMonthViewThemeDataand related theme settings to both light and dark themes, and ensured they are included in the app's theme extensions. [1] [2] [3] [4]Localization
Core Library Enhancements
ResizableMonthViewModeenum to define the display modes for the new view.BuildContextto provide access toResizableMonthViewThemeData.Code Quality and Consistency
CalendarViewextension to use a switch statement for thenameproperty, ensuring new enum values are handled explicitly.These changes collectively enable a flexible, themed, and localized resizable month view within the calendar package
Checklist
fix:,feat:,docs:etc).docsand added dartdoc comments with///.examplesordocs.Breaking Change?
Related Issues