87 lines
1.7 KiB
Dart
87 lines
1.7 KiB
Dart
import 'package:file_picker/file_picker.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:maxdash/controller/my_controller.dart';
|
|
import 'package:maxdash/helpers/widgets/my_form_validator.dart';
|
|
|
|
enum Status {
|
|
online,
|
|
offline,
|
|
draft;
|
|
|
|
const Status();
|
|
}
|
|
|
|
enum Category {
|
|
fashion,
|
|
grocery,
|
|
vegetables,
|
|
fruits,
|
|
electronics,
|
|
kids;
|
|
|
|
const Category();
|
|
}
|
|
|
|
class AddProductController extends MyController {
|
|
List<PlatformFile> files = [];
|
|
MyFormValidator basicValidator = MyFormValidator();
|
|
Status selectedGender = Status.online;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
basicValidator.addField(
|
|
'name',
|
|
label: "Product Name",
|
|
required: true,
|
|
controller: TextEditingController(),
|
|
);
|
|
basicValidator.addField(
|
|
'shop_name',
|
|
label: "shop_name",
|
|
required: true,
|
|
controller: TextEditingController(),
|
|
);
|
|
basicValidator.addField(
|
|
'description',
|
|
label: "description",
|
|
required: true,
|
|
controller: TextEditingController(),
|
|
);
|
|
basicValidator.addField(
|
|
'tags',
|
|
label: "Tags",
|
|
required: true,
|
|
controller: TextEditingController(),
|
|
);
|
|
}
|
|
|
|
bool showOnline = true;
|
|
|
|
void setOnlineType(bool value) {
|
|
showOnline = value;
|
|
update();
|
|
}
|
|
|
|
final List<String> categories = [];
|
|
|
|
void onChangeGender(Status? value) {
|
|
selectedGender = value ?? selectedGender;
|
|
update();
|
|
}
|
|
|
|
Future<void> pickFile() async {
|
|
var result = await FilePicker.platform.pickFiles();
|
|
if (result?.files[0] != null) {
|
|
files.add(result!.files[0]);
|
|
}
|
|
update();
|
|
}
|
|
|
|
void removeFile(PlatformFile file) {
|
|
files.remove(file);
|
|
|
|
update();
|
|
}
|
|
}
|