Skip to content

Commit

Permalink
feat: Fixes issue #413: Set max width of event slot in week & day view
Browse files Browse the repository at this point in the history
  • Loading branch information
shubham-jitiya-simform committed Oct 28, 2024
1 parent 982747f commit 0024e37
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 2 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
- Added `mainAxisSize`, `mainAxisAlignment`, `rightIconConfig` and `leftIconConfig`.
- Adds additional configurations for `CalendarPageHeader`, `MonthPageHeader`, `DayPageHeader` and `WeekPageHeader`.
- Added `titleBuilder` to build custom title for header.
- Use `maxWidth` to set max width of event slot in day & week view. [#413](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/413)
- `Deprecations`:
- deprecated `backgroundColor` and `iconColor` from `CalendarPageHeader`, `DayPageHeader`, `MonthPageHeader` and `WeekPageHeader`.
- **Solution:** use `headerStyle` instead.
Expand Down Expand Up @@ -192,4 +193,4 @@

# [0.0.1 - 26 Aug 2021](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/tree/0.0.1)

- Initial release
- Initial release
1 change: 1 addition & 0 deletions example/lib/widgets/day_view_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class DayViewWidget extends StatelessWidget {
showHalfHours: true,
heightPerMinute: 3,
timeLineBuilder: _timeLineBuilder,
eventArranger: SideEventArranger(maxWidth: 30),
hourIndicatorSettings: HourIndicatorSettings(
color: Theme.of(context).dividerColor,
),
Expand Down
1 change: 1 addition & 0 deletions example/lib/widgets/week_view_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class WeekViewWidget extends StatelessWidget {
key: state,
width: width,
showLiveTimeLineInAllDays: true,
eventArranger: SideEventArranger(maxWidth: 30),
timeLineWidth: 65,
liveTimeIndicatorSettings: LiveTimeIndicatorSettings(
color: Colors.redAccent,
Expand Down
10 changes: 9 additions & 1 deletion lib/src/event_arrangers/side_event_arranger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class SideEventArranger<T extends Object?> extends EventArranger<T> {
/// This class will provide method that will arrange
/// all the events side by side.
const SideEventArranger({
this.maxWidth,
this.includeEdges = false,
});

Expand All @@ -19,6 +20,12 @@ class SideEventArranger<T extends Object?> extends EventArranger<T> {
///
final bool includeEdges;

/// If enough space is available, the event slot will
/// use the specified max width.
/// Otherwise, it will reduce to fit all events in the cell.
/// If max width is not specified, slots will expand to fill the cell.
final double? maxWidth;

/// {@macro event_arranger_arrange_method_doc}
///
/// Make sure that all the events that are passed in [events], must be in
Expand Down Expand Up @@ -100,7 +107,8 @@ class SideEventArranger<T extends Object?> extends EventArranger<T> {
final arranged = <OrganizedCalendarEventData<T>>[];

for (final event in events) {
final slotWidth = width / event.columns;
final slotWidth =
math.min(width / event.columns, maxWidth ?? double.maxFinite);

if (event.event.isNotEmpty) {
// TODO(parth): Arrange events and add it in arranged.
Expand Down

0 comments on commit 0024e37

Please sign in to comment.