Skip to content
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

Adding more coloring options #19

Merged
merged 5 commits into from
Jul 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ class HomePage extends StatelessWidget {
onSelect: (values) {
print(values);
},
backgroundColor: Colors.blue,
selectedDayTextColor: Colors.green,
selectedDaysFillColor: Colors.red,
unselectedDaysFillColor: Colors.brown,
selectedDaysBorderColor: Colors.deepPurple,
unselectedDaysBorderColor: Colors.yellow,
unSelectedDayTextColor: Colors.pink,
),
),
Padding(
Expand Down
40 changes: 20 additions & 20 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 @@ -21,10 +21,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 @@ -37,25 +37,25 @@ packages:
dependency: transitive
description:
name: collection
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
version: "1.17.1"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
sha256: a937da4c006989739ceb4d10e3bd6cce64ca85d0fe287fc5b2b9f6ee757dcee6
sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
url: "https://pub.dev"
source: hosted
version: "0.1.3"
version: "1.0.5"
day_picker:
dependency: "direct main"
description:
path: ".."
relative: true
source: path
version: "2.1.1"
version: "2.2.0"
fake_async:
dependency: transitive
description:
Expand All @@ -78,18 +78,18 @@ packages:
dependency: transitive
description:
name: js
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.5"
version: "0.6.7"
matcher:
dependency: transitive
description:
name: matcher
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted
version: "0.12.13"
version: "0.12.15"
material_color_utilities:
dependency: transitive
description:
Expand All @@ -102,18 +102,18 @@ packages:
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"
sky_engine:
dependency: transitive
description: flutter
Expand Down Expand Up @@ -163,10 +163,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted
version: "0.4.16"
version: "0.5.1"
vector_math:
dependency: transitive
description:
Expand All @@ -176,5 +176,5 @@ packages:
source: hosted
version: "2.1.4"
sdks:
dart: ">=2.18.0 <3.0.0"
dart: ">=3.0.0-0 <4.0.0"
flutter: ">=1.17.0"
4 changes: 2 additions & 2 deletions example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1

environment:
sdk: ">=2.7.0 <4.0.0"
sdk: ">=2.17.0 <4.0.0"

dependencies:
flutter:
Expand All @@ -15,7 +15,7 @@ dependencies:
path: ../


cupertino_icons: ^0.1.3
cupertino_icons: ^1.0.5

dev_dependencies:
flutter_test:
Expand Down
87 changes: 54 additions & 33 deletions lib/src/select_day.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,17 @@ class SelectWeekDays extends StatefulWidget {
/// [fontSize] - property to change the size of selected text
final double? fontSize;

/// [daysFillColor] - property to change the button color of days when the button is pressed.
final Color? daysFillColor;
/// [selectedDaysFillColor] - property to change the button color of days when the button is selected.
final Color? selectedDaysFillColor;

/// [daysBorderColor] - property to change the border color of the rounded buttons.
final Color? daysBorderColor;
/// [unselectedDaysFillColor] - property to change the button color of days when the button is not selected.
final Color? unselectedDaysFillColor;

/// [selectedDaysBorderColor] - property to change the border color of the rounded buttons when day is selected.
final Color? selectedDaysBorderColor;

/// [unselectedDaysBorderColor] - property to change the border color of the rounded buttons when day is unselected.
final Color? unselectedDaysBorderColor;

/// [selectedDayTextColor] - property to change the color of text when the day is selected.
final Color? selectedDayTextColor;
Expand Down Expand Up @@ -49,8 +55,10 @@ class SelectWeekDays extends StatefulWidget {
this.backgroundColor,
this.fontWeight,
this.fontSize,
this.daysFillColor,
this.daysBorderColor,
this.selectedDaysFillColor,
this.unselectedDaysFillColor,
this.selectedDaysBorderColor,
this.unselectedDaysBorderColor,
this.selectedDayTextColor,
this.unSelectedDayTextColor,
this.border = true,
Expand Down Expand Up @@ -121,40 +129,53 @@ class SelectWeekDaysState extends State<SelectWeekDays> {
}

// getter to handle fill color of buttons.
Color? get _handleDaysFillColor {
if (widget.daysFillColor == null) {
return Colors.white;
} else {
return widget.daysFillColor;
Color? _handleDaysFillColor(bool onSelect) {
if (!onSelect && widget.unselectedDaysFillColor == null) {
return null;
}

return selectedUnselectedLogic(
onSelect: onSelect,
selectedColor: widget.selectedDaysFillColor,
unSelectedColor: widget.unselectedDaysFillColor,
defaultSelectedColor: Colors.white,
defaultUnselectedColor: Colors.white,
);
}

//getter to handle border color of days[buttons].
Color? get _handleBorderColorOfDays {
if (widget.daysBorderColor == null) {
return Colors.white;
} else {
return widget.daysBorderColor;
}
Color _handleBorderColorOfDays(bool onSelect) {
return selectedUnselectedLogic(
onSelect: onSelect,
selectedColor: widget.selectedDaysBorderColor,
unSelectedColor: widget.unselectedDaysBorderColor,
defaultSelectedColor: Colors.white,
defaultUnselectedColor: Colors.white,
);
}

// Handler to change the text color when the button is pressed and not pressed.
Color? _handleTextColor(bool onSelect) {
Color? textColor = Colors.black;
if (onSelect == true) {
if (widget.selectedDayTextColor == null) {
textColor = Colors.black;
} else {
textColor = widget.selectedDayTextColor;
}
} else if (onSelect == false) {
if (widget.unSelectedDayTextColor == null) {
textColor = Colors.white;
} else {
textColor = widget.unSelectedDayTextColor;
}
return selectedUnselectedLogic(
onSelect: onSelect,
selectedColor: widget.selectedDayTextColor,
unSelectedColor: widget.unSelectedDayTextColor,
defaultSelectedColor: Colors.black,
defaultUnselectedColor: Colors.white,
);
}

Color selectedUnselectedLogic({
required bool onSelect,
required Color? selectedColor,
required Color? unSelectedColor,
required Color defaultSelectedColor,
required Color defaultUnselectedColor,
}) {
if (onSelect) {
return selectedColor != null ? selectedColor : defaultSelectedColor;
}
return textColor;
return unSelectedColor != null ? unSelectedColor : defaultUnselectedColor;
}

@override
Expand All @@ -175,11 +196,11 @@ class SelectWeekDaysState extends State<SelectWeekDays> {
(day) {
return Expanded(
child: RawMaterialButton(
fillColor: day.isSelected ? _handleDaysFillColor : null,
fillColor: _handleDaysFillColor(day.isSelected),
shape: CircleBorder(
side: widget.border
? BorderSide(
color: _handleBorderColorOfDays!,
color: _handleBorderColorOfDays(day.isSelected),
width: 2.0,
)
: BorderSide.none,
Expand Down
34 changes: 17 additions & 17 deletions 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 @@ -21,10 +21,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 @@ -37,10 +37,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
version: "1.17.1"
fake_async:
dependency: transitive
description:
Expand All @@ -63,18 +63,18 @@ packages:
dependency: transitive
description:
name: js
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.5"
version: "0.6.7"
matcher:
dependency: transitive
description:
name: matcher
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted
version: "0.12.13"
version: "0.12.15"
material_color_utilities:
dependency: transitive
description:
Expand All @@ -87,18 +87,18 @@ packages:
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"
sky_engine:
dependency: transitive
description: flutter
Expand Down Expand Up @@ -148,10 +148,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted
version: "0.4.16"
version: "0.5.1"
vector_math:
dependency: transitive
description:
Expand All @@ -161,5 +161,5 @@ packages:
source: hosted
version: "2.1.4"
sdks:
dart: ">=2.18.0 <3.0.0"
dart: ">=3.0.0-0 <4.0.0"
flutter: ">=1.17.0"