chore: update view state when close the popover (#1251)

This commit is contained in:
Nathan.fooo 2022-10-08 20:48:14 +08:00 committed by GitHub
parent ca8be6ab10
commit 89d036158b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 7 deletions

View File

@ -175,7 +175,7 @@ class ShareActionList extends StatelessWidget {
actions: ShareAction.values
.map((action) => ShareActionWrapper(action))
.toList(),
withChild: (controller) {
buildChild: (controller) {
return RoundedTextButton(
title: LocaleKeys.shareAction_buttonText.tr(),
fontSize: 12,

View File

@ -157,7 +157,7 @@ class AppActionList extends StatelessWidget {
actions: AppDisclosureAction.values
.map((action) => DisclosureActionWrapper(action))
.toList(),
withChild: (controller) {
buildChild: (controller) {
return GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () => ExpandableController.of(context,

View File

@ -177,7 +177,7 @@ class ViewDisclosureButton extends StatelessWidget {
actions: ViewDisclosureAction.values
.map((action) => ViewDisclosureActionWrapper(action))
.toList(),
withChild: (controller) {
buildChild: (controller) {
return FlowyIconButton(
iconPadding: const EdgeInsets.all(5),
width: 26,
@ -193,6 +193,9 @@ class ViewDisclosureButton extends StatelessWidget {
onAction(action.inner);
controller.close();
},
onClosed: () {
onEdit(false);
},
);
}
}

View File

@ -45,7 +45,7 @@ class BubbleActionList extends StatelessWidget {
return PopoverActionList<PopoverAction>(
direction: PopoverDirection.topWithRightAligned,
actions: actions,
withChild: (controller) {
buildChild: (controller) {
return FlowyTextButton(
'?',
tooltip: LocaleKeys.questionBubble_help.tr(),

View File

@ -13,12 +13,14 @@ class PopoverActionList<T extends PopoverAction> extends StatefulWidget {
final Function(T, PopoverController) onSelected;
final BoxConstraints constraints;
final PopoverDirection direction;
final Widget Function(PopoverController) withChild;
final Widget Function(PopoverController) buildChild;
final VoidCallback? onClosed;
const PopoverActionList({
required this.actions,
required this.withChild,
required this.buildChild,
required this.onSelected,
this.onClosed,
this.direction = PopoverDirection.rightWithTopAligned,
this.constraints = const BoxConstraints(
minWidth: 120,
@ -44,13 +46,14 @@ class _PopoverActionListState<T extends PopoverAction>
@override
Widget build(BuildContext context) {
final child = widget.withChild(popoverController);
final child = widget.buildChild(popoverController);
return AppFlowyPopover(
controller: popoverController,
constraints: widget.constraints,
direction: widget.direction,
triggerActions: PopoverTriggerFlags.none,
onClose: widget.onClosed,
popupBuilder: (BuildContext popoverContext) {
final List<Widget> children = widget.actions.map((action) {
if (action is ActionCell) {