Use 8 as border radius for multiple meneItems list

This commit is contained in:
Neeraj Gupta 2023-02-02 07:56:41 +05:30
parent 00bf2c4c6d
commit a11a86895a
No known key found for this signature in database
GPG key ID: 3C5A1684DC1729E1
7 changed files with 32 additions and 19 deletions

View file

@ -78,7 +78,7 @@ class _AdvancedSettingsScreenState extends State<AdvancedSettingsScreen> {
Icons.chevron_right_outlined,
color: colorScheme.strokeBase,
),
borderRadius: 8,
singleBorderRadius: 8,
alignCaptionedTextToLeft: true,
// isBottomBorderRadiusRemoved: true,
isGestureDetectorDisabled: true,
@ -96,7 +96,7 @@ class _AdvancedSettingsScreenState extends State<AdvancedSettingsScreen> {
Icons.chevron_right_outlined,
color: colorScheme.strokeBase,
),
borderRadius: 8,
singleBorderRadius: 8,
alignCaptionedTextToLeft: true,
onTap: () {
routeToPage(context, const AppStorageViewer());

View file

@ -65,7 +65,7 @@ class BackupSettingsScreen extends StatelessWidget {
);
},
),
borderRadius: 8,
singleBorderRadius: 8,
alignCaptionedTextToLeft: true,
isBottomBorderRadiusRemoved: true,
isGestureDetectorDisabled: true,
@ -87,7 +87,7 @@ class BackupSettingsScreen extends StatelessWidget {
!Configuration.instance.shouldBackupVideos(),
),
),
borderRadius: 8,
singleBorderRadius: 8,
alignCaptionedTextToLeft: true,
isTopBorderRadiusRemoved: true,
isGestureDetectorDisabled: true,
@ -115,7 +115,7 @@ class BackupSettingsScreen extends StatelessWidget {
);
},
),
borderRadius: 8,
singleBorderRadius: 8,
alignCaptionedTextToLeft: true,
isGestureDetectorDisabled: true,
),

View file

@ -13,6 +13,7 @@ class MenuItemWidget extends StatefulWidget {
final Color? leadingIconColor;
final Widget? leadingIconWidget;
// leadIconSize deafult value is 20.
final double leadingIconSize;
@ -29,7 +30,13 @@ class MenuItemWidget extends StatefulWidget {
final VoidCallback? onDoubleTap;
final Color? menuItemColor;
final bool alignCaptionedTextToLeft;
final double borderRadius;
// singleBorderRadius is applied to the border when it's a standalone menu item.
// Widget will apply singleBorderRadius if value of both isTopBorderRadiusRemoved
// and isBottomBorderRadiusRemoved is false. Otherwise, multipleBorderRadius will
// be applied
final double singleBorderRadius;
final double multipleBorderRadius;
final Color? pressedColor;
final ExpandableController? expandableController;
final bool isBottomBorderRadiusRemoved;
@ -54,7 +61,8 @@ class MenuItemWidget extends StatefulWidget {
this.onDoubleTap,
this.menuItemColor,
this.alignCaptionedTextToLeft = false,
this.borderRadius = 8.0,
this.singleBorderRadius = 4.0,
this.multipleBorderRadius = 8.0,
this.pressedColor,
this.expandableController,
this.isBottomBorderRadiusRemoved = false,
@ -69,10 +77,15 @@ class MenuItemWidget extends StatefulWidget {
class _MenuItemWidgetState extends State<MenuItemWidget> {
Color? menuItemColor;
late double borderRadius;
@override
void initState() {
menuItemColor = widget.menuItemColor;
borderRadius =
(widget.isBottomBorderRadiusRemoved || widget.isTopBorderRadiusRemoved)
? widget.multipleBorderRadius
: widget.singleBorderRadius;
if (widget.expandableController != null) {
widget.expandableController!.addListener(() {
setState(() {});
@ -111,15 +124,15 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
Widget menuItemWidget(BuildContext context) {
final enteColorScheme = Theme.of(context).colorScheme.enteTheme.colorScheme;
final borderRadius = Radius.circular(widget.borderRadius);
final circularRadius = Radius.circular(borderRadius);
final isExpanded = widget.expandableController?.value;
final bottomBorderRadius =
(isExpanded != null && isExpanded) || widget.isBottomBorderRadiusRemoved
? const Radius.circular(0)
: borderRadius;
: circularRadius;
final topBorderRadius = widget.isTopBorderRadiusRemoved
? const Radius.circular(0)
: borderRadius;
: circularRadius;
return AnimatedContainer(
duration: const Duration(milliseconds: 20),
width: double.infinity,

View file

@ -112,7 +112,7 @@ class _AlbumParticipantsPageState extends State<AlbumParticipantsPage> {
),
leadingIconSize: 24,
menuItemColor: colorScheme.fillFaint,
borderRadius: 8,
singleBorderRadius: 8,
isGestureDetectorDisabled: true,
),
],
@ -166,7 +166,7 @@ class _AlbumParticipantsPageState extends State<AlbumParticipantsPage> {
: null,
isTopBorderRadiusRemoved: listIndex > 0,
isBottomBorderRadiusRemoved: true,
borderRadius: 8,
singleBorderRadius: 8,
),
DividerWidget(
dividerType: DividerType.menu,
@ -188,7 +188,7 @@ class _AlbumParticipantsPageState extends State<AlbumParticipantsPage> {
await _navigateToAddUser(false);
},
isTopBorderRadiusRemoved: collaborators.isNotEmpty,
borderRadius: 8,
singleBorderRadius: 8,
);
}
return const SizedBox.shrink();
@ -240,7 +240,7 @@ class _AlbumParticipantsPageState extends State<AlbumParticipantsPage> {
: null,
isTopBorderRadiusRemoved: listIndex > 0,
isBottomBorderRadiusRemoved: !isLastItem,
borderRadius: 8,
singleBorderRadius: 8,
),
isLastItem
? const SizedBox.shrink()
@ -262,7 +262,7 @@ class _AlbumParticipantsPageState extends State<AlbumParticipantsPage> {
await _navigateToAddUser(true);
},
isTopBorderRadiusRemoved: viewers.isNotEmpty,
borderRadius: 8,
singleBorderRadius: 8,
);
}
return const SizedBox.shrink();

View file

@ -161,7 +161,7 @@ class _AppStorageViewerState extends State<AppStorageViewer> {
),
menuItemColor:
getEnteColorScheme(context).fillFaint,
borderRadius: 8,
singleBorderRadius: 8,
onTap: () async {
for (var pathItem in paths) {
if (pathItem.allowCacheClear) {

View file

@ -98,7 +98,7 @@ class _PathStorageViewerState extends State<PathStorageViewer> {
),
trailingIcon: err != null ? Icons.error_outline_outlined : null,
trailingIconIsMuted: err != null,
borderRadius: 8,
singleBorderRadius: 8,
menuItemColor: getEnteColorScheme(context).fillFaint,
isBottomBorderRadiusRemoved: widget.removeBottomRadius,
isTopBorderRadiusRemoved: widget.removeTopRadius,

View file

@ -113,7 +113,7 @@ class _BackupHeaderWidgetState extends State<BackupHeaderWidget> {
children: [
MenuItemWidget(
captionedTextWidget: const CaptionedTextWidget(title: "Backup"),
borderRadius: 8.0,
singleBorderRadius: 8.0,
menuItemColor: colorScheme.fillFaint,
alignCaptionedTextToLeft: true,
trailingWidget: ToggleSwitchWidget(
@ -235,7 +235,7 @@ class _ResetIgnoredFilesWidgetState extends State<ResetIgnoredFilesWidget> {
captionedTextWidget: const CaptionedTextWidget(
title: "Reset ignored files",
),
borderRadius: 8.0,
singleBorderRadius: 8.0,
menuItemColor: getEnteColorScheme(context).fillFaint,
leadingIcon: Icons.cloud_off_outlined,
onTap: () async {