Skip to content

Commit

Permalink
Example: clean up popup page (#321)
Browse files Browse the repository at this point in the history
  • Loading branch information
Feichtmeier committed Oct 23, 2022
1 parent c227e22 commit f381a2d
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 99 deletions.
165 changes: 67 additions & 98 deletions example/lib/pages/popup_page.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:yaru_widgets/yaru_widgets.dart';

class PopupPage extends StatefulWidget {
Expand All @@ -15,105 +14,75 @@ class _PopupPageState extends State<PopupPage> {

@override
Widget build(BuildContext context) {
return Column(
children: [
Expanded(
child: Padding(
padding: const EdgeInsets.all(kYaruPagePadding),
child: Wrap(
spacing: 10,
runSpacing: 10,
children: [
YaruPopupMenuButton<MyEnum>(
initialValue: myEnum,
onSelected: (v) {
setState(() {
myEnum = v;
});
},
child: Text(myEnum.name),
itemBuilder: (context) {
return [
for (final value in MyEnum.values)
PopupMenuItem(
value: value,
child: Text(
value.name,
),
)
];
},
),
YaruPopupMenuButton<MyEnum>(
onSelected: (value) {
if (enumSet.contains(value)) {
enumSet.remove(value);
} else {
enumSet.add(value);
}
},
child: const Text('Multi Select'),
itemBuilder: (context) {
return [
for (final value in MyEnum.values)
YaruCheckedPopupMenuItem<MyEnum>(
padding: EdgeInsets.zero,
value: value,
checked: enumSet.contains(value),
child: Text(value.name),
)
];
},
),
YaruPopupMenuButton<MyEnum>(
child: const Text('Multi Select Without close'),
itemBuilder: (context) {
return [
for (final value in MyEnum.values)
YaruMultiSelectPopupMenuItem<MyEnum>(
padding: EdgeInsets.zero,
value: value,
child: Text(value.name),
checked: enumSet.contains(value),
onChanged: (checked) {
// Handle model changes here
setState(() {
checked
? enumSet.add(value)
: enumSet.remove(value);
});
},
)
];
},
)
],
),
return Padding(
padding: const EdgeInsets.all(kYaruPagePadding),
child: Wrap(
spacing: 10,
runSpacing: 10,
children: [
YaruPopupMenuButton<MyEnum>(
initialValue: myEnum,
onSelected: (v) {
setState(() {
myEnum = v;
});
},
child: Text(myEnum.name),
itemBuilder: (context) {
return [
for (final value in MyEnum.values)
PopupMenuItem(
value: value,
child: Text(
value.name,
),
)
];
},
),
),
const SizedBox(
height: 500,
width: 500,
child: Markdown(
data: '''
YaruMultiSelectPopupMenuItem<MyEnum>(
padding: EdgeInsets.zero,
value: value,
child: Text(value.name),
checked: enumSet.contains(value),
onChanged: (checked) {
// Handle model changes here
setState(() {
checked
? enumSet.add(value)
: enumSet.remove(value);
});
},
)
''',
YaruPopupMenuButton<MyEnum>(
onSelected: (value) {
if (enumSet.contains(value)) {
enumSet.remove(value);
} else {
enumSet.add(value);
}
},
child: const Text('Multi Select'),
itemBuilder: (context) {
return [
for (final value in MyEnum.values)
YaruCheckedPopupMenuItem<MyEnum>(
padding: EdgeInsets.zero,
value: value,
checked: enumSet.contains(value),
child: Text(value.name),
)
];
},
),
),
],
YaruPopupMenuButton<MyEnum>(
child: const Text('Multi Select Without close'),
itemBuilder: (context) {
return [
for (final value in MyEnum.values)
YaruMultiSelectPopupMenuItem<MyEnum>(
padding: EdgeInsets.zero,
value: value,
child: Text(value.name),
checked: enumSet.contains(value),
onChanged: (checked) {
// Handle model changes here
setState(() {
checked ? enumSet.add(value) : enumSet.remove(value);
});
},
)
];
},
)
],
),
);
}
}
Expand Down
1 change: 0 additions & 1 deletion example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ environment:
dependencies:
flutter:
sdk: flutter
flutter_markdown: ^0.6.12
handy_window: ^0.1.2
provider: ^6.0.2
yaru: ^0.4.1
Expand Down

0 comments on commit f381a2d

Please sign in to comment.