Skip to content

Commit

Permalink
Prioritize dialog insetPadding over preferred maxWidth
Browse files Browse the repository at this point in the history
  • Loading branch information
AhmedLSayed9 committed Nov 17, 2023
1 parent 5f63b2e commit 0df5bbc
Showing 1 changed file with 32 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:math';

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

Expand Down Expand Up @@ -39,29 +41,36 @@ Future<T?> showPlatformAlertDialog<T extends Object?>({
onWillPop: () => Future.value(barrierDismissible),
child: Opacity(
opacity: a1.value,
child: UnconstrainedBox(
constrainedAxis: Axis.vertical,
child: ConstrainedBox(
// A workaround until https://github.com/flutter/flutter/issues/44570 is fixed.
constraints: BoxConstraints(
maxWidth:
materialDialogData.maxWidth + materialDialogData.insetPadding.horizontal,
),
child: AlertDialog(
scrollable: true,
title: title,
titlePadding: titlePadding,
content: content != null ? content(context) : null,
contentPadding: reformedContentPadding,
actions: materialDialogData.actions?.call(context),
actionsPadding: reformedActionsPadding,
buttonPadding: EdgeInsets.symmetric(horizontal: horizontalActionPadding / 2),
actionsAlignment: MainAxisAlignment.center,
insetPadding: materialDialogData.insetPadding,
shape: materialDialogData.shape,
backgroundColor: materialDialogData.backgroundColor,
),
),
child: LayoutBuilder(
builder: (context, constraints) {
// This prioritizes insetPadding over preferred maxWidth.
// It's A workaround until https://github.com/flutter/flutter/issues/44570 is fixed.
final hInsetPadding = materialDialogData.insetPadding.horizontal;
final maxWidth = min(
constraints.maxWidth - hInsetPadding,
materialDialogData.maxWidth + hInsetPadding,
);
return UnconstrainedBox(
constrainedAxis: Axis.vertical,
child: ConstrainedBox(
constraints: BoxConstraints(maxWidth: maxWidth),
child: AlertDialog(
scrollable: true,
title: title,
titlePadding: titlePadding,
content: content != null ? content(context) : null,
contentPadding: reformedContentPadding,
actions: materialDialogData.actions?.call(context),
actionsPadding: reformedActionsPadding,
buttonPadding: EdgeInsets.symmetric(horizontal: horizontalActionPadding / 2),
actionsAlignment: MainAxisAlignment.center,
insetPadding: materialDialogData.insetPadding,
shape: materialDialogData.shape,
backgroundColor: materialDialogData.backgroundColor,
),
),
);
},
),
),
),
Expand Down

0 comments on commit 0df5bbc

Please sign in to comment.