add shipments
This commit is contained in:
@@ -27,10 +27,12 @@ class DefaultDeliveryAddress extends StatelessWidget {
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: DisplayText(
|
||||
labelTextKey: this.labelKey ?? "delivery_address",
|
||||
iconData: iconData ?? MaterialCommunityIcons.truck_fast,
|
||||
),
|
||||
child: this.labelKey == null
|
||||
? Container()
|
||||
: DisplayText(
|
||||
labelTextKey: this.labelKey,
|
||||
iconData: iconData ?? MaterialCommunityIcons.truck_fast,
|
||||
),
|
||||
),
|
||||
onTap == null
|
||||
? Container()
|
||||
|
||||
@@ -9,9 +9,17 @@ class LocalDropdown<T> extends StatelessWidget {
|
||||
final IconData iconData;
|
||||
final T selectedValue;
|
||||
final List<T> values;
|
||||
final Function(T) display;
|
||||
final String labelKey;
|
||||
|
||||
const LocalDropdown(
|
||||
{Key key, this.callback, this.iconData, this.selectedValue, this.values})
|
||||
{Key key,
|
||||
this.callback,
|
||||
this.iconData,
|
||||
this.selectedValue,
|
||||
this.values,
|
||||
this.labelKey,
|
||||
this.display})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
@@ -32,7 +40,7 @@ class LocalDropdown<T> extends StatelessWidget {
|
||||
padding: const EdgeInsets.only(right: 18.0),
|
||||
child: LocalText(
|
||||
context,
|
||||
"shipment.type",
|
||||
labelKey,
|
||||
color: Colors.black54,
|
||||
fontSize: 16,
|
||||
),
|
||||
@@ -49,14 +57,21 @@ class LocalDropdown<T> extends StatelessWidget {
|
||||
callback(newValue);
|
||||
},
|
||||
isExpanded: true,
|
||||
items: values.map<DropdownMenuItem<T>>((T value) {
|
||||
return DropdownMenuItem<T>(
|
||||
value: value,
|
||||
child: Text(value==null? "":value.toString(),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(color: primaryColor)),
|
||||
);
|
||||
}).toList(),
|
||||
items: values == null
|
||||
? []
|
||||
: values.map<DropdownMenuItem<T>>((T value) {
|
||||
return DropdownMenuItem<T>(
|
||||
value: value,
|
||||
child: Text(
|
||||
value == null
|
||||
? ""
|
||||
: display != null
|
||||
? display(value)
|
||||
: value.toString(),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(color: primaryColor)),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -10,6 +10,7 @@ class LocalPopupMenuButton extends StatefulWidget {
|
||||
final PopupMenuCallback popupMenuCallback;
|
||||
final List<LocalPopupMenu> popmenus;
|
||||
final bool multiSelect;
|
||||
final bool selectable;
|
||||
final IconData buttonIcon;
|
||||
|
||||
const LocalPopupMenuButton(
|
||||
@@ -17,6 +18,7 @@ class LocalPopupMenuButton extends StatefulWidget {
|
||||
this.popupMenuCallback,
|
||||
this.popmenus,
|
||||
this.buttonIcon,
|
||||
this.selectable = true,
|
||||
this.multiSelect = false})
|
||||
: super(key: key);
|
||||
|
||||
@@ -39,25 +41,27 @@ class _LocalPopupMenuButtonState extends State<LocalPopupMenuButton> {
|
||||
return PopupMenuButton<LocalPopupMenu>(
|
||||
elevation: 3.2,
|
||||
onSelected: (selected) {
|
||||
if (!widget.multiSelect) {
|
||||
setState(() {
|
||||
popmenus.forEach((e) {
|
||||
if (e.id != selected.id)
|
||||
e.selected = false;
|
||||
else
|
||||
e.selected = true;
|
||||
if (widget.selectable) {
|
||||
if (!widget.multiSelect) {
|
||||
setState(() {
|
||||
popmenus.forEach((e) {
|
||||
if (e.id != selected.id)
|
||||
e.selected = false;
|
||||
else
|
||||
e.selected = true;
|
||||
});
|
||||
});
|
||||
});
|
||||
selected.selected = true;
|
||||
} else {
|
||||
setState(() {
|
||||
popmenus.forEach((e) {
|
||||
if (e.id == selected.id) e.selected = !e.selected;
|
||||
selected.selected = true;
|
||||
} else {
|
||||
setState(() {
|
||||
popmenus.forEach((e) {
|
||||
if (e.id == selected.id) e.selected = !e.selected;
|
||||
});
|
||||
});
|
||||
});
|
||||
selected.selected = !selected.selected;
|
||||
selected.selected = !selected.selected;
|
||||
}
|
||||
}
|
||||
if (widget.popupMenuCallback != null)
|
||||
if (selected.enabled && widget.popupMenuCallback != null)
|
||||
widget.popupMenuCallback(selected);
|
||||
},
|
||||
icon: Container(
|
||||
@@ -92,11 +96,14 @@ class _LocalPopupMenuButtonState extends State<LocalPopupMenuButton> {
|
||||
)),
|
||||
itemBuilder: (BuildContext context) {
|
||||
return popmenus.map((LocalPopupMenu choice) {
|
||||
if (choice == null) return null;
|
||||
return PopupMenuItem<LocalPopupMenu>(
|
||||
value: choice,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
LocalText(context, choice.textKey, color: primaryColor),
|
||||
LocalText(context, choice.textKey,
|
||||
color:
|
||||
choice?.enabled ?? true ? primaryColor : Colors.grey),
|
||||
SizedBox(
|
||||
width: 10,
|
||||
),
|
||||
@@ -115,6 +122,7 @@ class _LocalPopupMenuButtonState extends State<LocalPopupMenuButton> {
|
||||
|
||||
bool _needHighlight() {
|
||||
popmenus.forEach((e) {
|
||||
if (e == null) return false;
|
||||
if (e.selected && e.highlight) return true;
|
||||
});
|
||||
return false;
|
||||
|
||||
@@ -3,6 +3,11 @@ class LocalPopupMenu {
|
||||
String textKey;
|
||||
bool selected;
|
||||
bool highlight;
|
||||
bool enabled;
|
||||
LocalPopupMenu(
|
||||
{this.id, this.textKey, this.selected = false, this.highlight = false});
|
||||
{this.id,
|
||||
this.textKey,
|
||||
this.selected = false,
|
||||
this.highlight = false,
|
||||
this.enabled = true});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user