Skip to content

Commit

Permalink
Merge branch 'master' into feature/eventDots
Browse files Browse the repository at this point in the history
  • Loading branch information
muhammadtalhasultan authored Jul 3, 2024
2 parents 956ad3d + 2d5a7a1 commit 7e6b3a1
Show file tree
Hide file tree
Showing 7 changed files with 175 additions and 59 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
![header.jpg](header.jpg)

**Flutter widget form select a date in horizontal timeline with customizable styles.**
**DISCONTINUED - Flutter widget form select a date in horizontal timeline with customizable styles.**

## Getting Started

Expand Down Expand Up @@ -46,4 +46,4 @@ CalendarTimeline(
selectableDayPredicate: (date) => date.day != 23,
locale: 'en_ISO',
)
```
```
2 changes: 1 addition & 1 deletion example/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ subprojects {
project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
51 changes: 29 additions & 22 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ packages:
dependency: transitive
description:
name: async
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.10.0"
version: "2.11.0"
boolean_selector:
dependency: transitive
description:
Expand All @@ -28,10 +28,10 @@ packages:
dependency: transitive
description:
name: characters
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
version: "1.3.0"
clock:
dependency: transitive
description:
Expand All @@ -44,10 +44,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
url: "https://pub.dev"
source: hosted
version: "1.17.0"
version: "1.17.2"
fake_async:
dependency: transitive
description:
Expand Down Expand Up @@ -86,10 +86,10 @@ packages:
dependency: transitive
description:
name: js
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.5"
version: "0.6.7"
lints:
dependency: transitive
description:
Expand All @@ -101,35 +101,34 @@ packages:
matcher:
dependency: transitive
description:
name: matcher
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
url: "https://pub.dev"
source: hosted
version: "0.12.13"
version: "0.12.16"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
url: "https://pub.dev"
source: hosted
version: "0.2.0"
version: "0.5.0"
meta:
dependency: transitive
description:
name: meta
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
version: "1.9.1"
path:
dependency: transitive
description:
name: path
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted
version: "1.8.2"
version: "1.8.3"
scrollable_positioned_list:
dependency: transitive
description:
Expand All @@ -147,10 +146,10 @@ packages:
dependency: transitive
description:
name: source_span
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
version: "1.10.0"
stack_trace:
dependency: transitive
description:
Expand Down Expand Up @@ -187,10 +186,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
url: "https://pub.dev"
source: hosted
version: "0.4.16"
version: "0.6.0"
vector_math:
dependency: transitive
description:
Expand All @@ -199,6 +198,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
web:
dependency: transitive
description:
name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
url: "https://pub.dev"
source: hosted
version: "0.1.4-beta"
sdks:
dart: ">=2.18.0 <3.0.0"
dart: ">=3.0.0-0 <4.0.0"
flutter: ">=2.12.0"
30 changes: 27 additions & 3 deletions lib/src/calendar_timeline.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,14 @@ class CalendarTimeline extends StatefulWidget {
this.monthColor,
this.dotColor,
this.dayNameColor,
this.height = 80,
this.width = 60,
this.shrinkHeight = 50,
this.shrinkWidth = 33,
this.fontSize = 32,
this.shrinkFontSize = 14,
this.dayNameFontSize = 14,
this.shrinkDayNameFontSize = 9,
this.shrink = false,
this.locale,
this.showYears = false,
Expand Down Expand Up @@ -65,6 +73,14 @@ class CalendarTimeline extends StatefulWidget {
final Color? monthColor;
final Color? dotColor;
final Color? dayNameColor;
final double height;
final double width;
final double shrinkHeight;
final double shrinkWidth;
final double fontSize;
final double shrinkFontSize;
final double dayNameFontSize;
final double shrinkDayNameFontSize;
final bool shrink;
final String? locale;
final List<DateTime>? eventDates;
Expand Down Expand Up @@ -260,8 +276,8 @@ class _CalendarTimelineState extends State<CalendarTimeline> {
_moveToYearIndex(index);

// Reset month and day index
_monthSelectedIndex = null;
_daySelectedIndex = null;
_monthSelectedIndex = 0;
_daySelectedIndex = 0;

// Regenerate months and days
final date = _years[index];
Expand Down Expand Up @@ -442,7 +458,7 @@ class _CalendarTimelineState extends State<CalendarTimeline> {
Widget _buildDayList() {
return SizedBox(
key: const Key('ScrollableDayList'),
height: 70,
height: widget.shrink ? widget.shrinkHeight : widget.height,
child: ScrollablePositionedList.builder(
itemScrollController: _controllerDay,
initialScrollIndex: _daySelectedIndex ?? 0,
Expand Down Expand Up @@ -471,6 +487,14 @@ class _CalendarTimelineState extends State<CalendarTimeline> {
showDot: _eventDates?.contains(currentDay) ?? false,
dotColor: widget.dotColor,
dayNameColor: widget.dayNameColor,
height: widget.height,
width: widget.width,
shrinkHeight: widget.shrinkHeight,
shrinkWidth: widget.shrinkWidth,
fontSize: widget.fontSize,
shrinkFontSize: widget.shrinkFontSize,
dayNameFontSize: widget.dayNameFontSize,
shrinkDayNameFontSize: widget.shrinkDayNameFontSize,
shrink: widget.shrink,
),
if (index == _days.length - 1)
Expand Down
53 changes: 45 additions & 8 deletions lib/src/day_item.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@ class DayItem extends StatelessWidget {
this.showDot = false,
this.dotColor,
this.dayNameColor,
required this.height,
required this.width,
required this.shrinkHeight,
required this.shrinkWidth,
required this.fontSize,
required this.shrinkFontSize,
required this.dayNameFontSize,
required this.shrinkDayNameFontSize,
this.shrink = false,
}) : super(key: key);
final int dayNumber;
Expand All @@ -28,6 +36,14 @@ class DayItem extends StatelessWidget {
final bool showDot;
final Color? dotColor;
final Color? dayNameColor;
final double height;
final double width;
final double shrinkHeight;
final double shrinkWidth;
final double fontSize;
final double shrinkFontSize;
final double dayNameFontSize;
final double shrinkDayNameFontSize;
final bool shrink;

GestureDetector _buildDay(BuildContext context) {
Expand All @@ -36,12 +52,12 @@ class DayItem extends StatelessWidget {
? dayColor ?? Theme.of(context).colorScheme.secondary
: dayColor?.withOpacity(0.5) ??
Theme.of(context).colorScheme.secondary.withOpacity(0.5),
fontSize: shrink ? 14 : 32,
fontWeight: FontWeight.normal,
fontSize: shrink ? shrinkFontSize : fontSize,
height: 0.8,
);
final selectedStyle = TextStyle(
color: activeDayColor ?? Colors.white,
fontSize: shrink ? 14 : 32,
fontSize: shrink ? shrinkFontSize : fontSize,
fontWeight: FontWeight.bold,
height: 0.8,
);
Expand All @@ -56,9 +72,10 @@ class DayItem extends StatelessWidget {
borderRadius: BorderRadius.circular(12),
)
: const BoxDecoration(color: Colors.transparent),
height: shrink ? 40 : 70,
width: shrink ? 33 : 60,
height: shrink ? shrinkHeight : height,
width: shrink ? shrinkWidth : width,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
if (showDot) ...[
SizedBox(height: shrink ? 6 : 7),
Expand All @@ -71,14 +88,34 @@ class DayItem extends StatelessWidget {
style: isSelected ? selectedStyle : textStyle,
),
if (isSelected)
Text(
Column(
children: [
SizedBox(height: shrink ? 6 : 7),
if (!shrink) _buildDots(),
SizedBox(height: shrink ? 6 : 7),
],
)
else
SizedBox(height: shrink ? 12 : 19),
Center(
child: Text(
dayNumber.toString(),
style: isSelected ? selectedStyle : textStyle,
),
),
Padding(
padding: const EdgeInsets.only(bottom: 4),
child: Text(
shortName,
style: TextStyle(
color: dayNameColor ?? activeDayColor ?? Colors.white,
color: isSelected
? dayNameColor ?? activeDayColor ?? Colors.white
: Colors.transparent,
fontWeight: FontWeight.bold,
fontSize: shrink ? 9 : 14,
fontSize: shrink ? shrinkDayNameFontSize : dayNameFontSize,
),
),
),
],
),
),
Expand Down
Loading

0 comments on commit 7e6b3a1

Please sign in to comment.