144 lines
4.0 KiB
Dart
144 lines
4.0 KiB
Dart
import 'package:built_collection/built_collection.dart';
|
|
import 'package:built_value/built_value.dart';
|
|
import 'package:built_value/serializer.dart';
|
|
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
|
import 'package:invoiceninja_flutter/redux/client/client_state.dart';
|
|
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_state.dart';
|
|
import 'package:invoiceninja_flutter/redux/invoice/invoice_state.dart';
|
|
import 'package:invoiceninja_flutter/redux/product/product_state.dart';
|
|
import 'package:invoiceninja_flutter/ui/auth/login_vm.dart';
|
|
|
|
// STARTER: import - do not remove comment
|
|
import 'package:invoiceninja_flutter/redux/document/document_state.dart';
|
|
|
|
import 'package:invoiceninja_flutter/redux/expense/expense_state.dart';
|
|
|
|
import 'package:invoiceninja_flutter/redux/vendor/vendor_state.dart';
|
|
|
|
import 'package:invoiceninja_flutter/redux/task/task_state.dart';
|
|
|
|
import 'package:invoiceninja_flutter/redux/project/project_state.dart';
|
|
|
|
import 'package:invoiceninja_flutter/redux/payment/payment_state.dart';
|
|
|
|
import 'package:invoiceninja_flutter/redux/quote/quote_state.dart';
|
|
|
|
part 'ui_state.g.dart';
|
|
|
|
abstract class UIState implements Built<UIState, UIStateBuilder> {
|
|
factory UIState(CompanyEntity company,
|
|
{bool enableDarkMode, bool requireAuthentication, AppLayout layout}) {
|
|
return _$UIState._(
|
|
selectedCompanyIndex: 0,
|
|
//layout: layout ?? AppLayout.mobile,
|
|
layout: layout ?? AppLayout.tablet,
|
|
isMenuVisible: true,
|
|
isHistoryVisible: false,
|
|
currentRoute: LoginScreen.route,
|
|
enableDarkMode: enableDarkMode ?? false,
|
|
requireAuthentication: requireAuthentication ?? false,
|
|
emailPayment: false,
|
|
autoStartTasks: false,
|
|
addDocumentsToInvoice: false,
|
|
dashboardUIState: DashboardUIState(),
|
|
productUIState: ProductUIState(),
|
|
clientUIState: ClientUIState(),
|
|
invoiceUIState: InvoiceUIState(),
|
|
// STARTER: constructor - do not remove comment
|
|
documentUIState: DocumentUIState(),
|
|
expenseUIState: ExpenseUIState(),
|
|
vendorUIState: VendorUIState(),
|
|
taskUIState: TaskUIState(),
|
|
projectUIState: ProjectUIState(),
|
|
paymentUIState: PaymentUIState(),
|
|
quoteUIState: QuoteUIState(),
|
|
);
|
|
}
|
|
|
|
UIState._();
|
|
|
|
AppLayout get layout;
|
|
|
|
bool get isMenuVisible;
|
|
|
|
bool get isHistoryVisible;
|
|
|
|
int get selectedCompanyIndex;
|
|
|
|
String get currentRoute;
|
|
|
|
bool get enableDarkMode;
|
|
|
|
bool get requireAuthentication;
|
|
|
|
bool get emailPayment;
|
|
|
|
bool get autoStartTasks;
|
|
|
|
bool get addDocumentsToInvoice;
|
|
|
|
@nullable
|
|
String get filter;
|
|
|
|
DashboardUIState get dashboardUIState;
|
|
|
|
ProductUIState get productUIState;
|
|
|
|
ClientUIState get clientUIState;
|
|
|
|
InvoiceUIState get invoiceUIState;
|
|
|
|
// STARTER: properties - do not remove comment
|
|
DocumentUIState get documentUIState;
|
|
|
|
ExpenseUIState get expenseUIState;
|
|
|
|
VendorUIState get vendorUIState;
|
|
|
|
TaskUIState get taskUIState;
|
|
|
|
ProjectUIState get projectUIState;
|
|
|
|
PaymentUIState get paymentUIState;
|
|
|
|
QuoteUIState get quoteUIState;
|
|
|
|
static Serializer<UIState> get serializer => _$uIStateSerializer;
|
|
|
|
bool containsRoute(String route) {
|
|
if (route == null || route.isEmpty) {
|
|
return false;
|
|
}
|
|
return currentRoute.contains(route);
|
|
}
|
|
|
|
bool get isEditing => currentRoute.contains('/edit');
|
|
}
|
|
|
|
class AppLayout extends EnumClass {
|
|
const AppLayout._(String name) : super(name);
|
|
|
|
static Serializer<AppLayout> get serializer => _$appLayoutSerializer;
|
|
|
|
static const AppLayout mobile = _$mobile;
|
|
static const AppLayout tablet = _$tablet;
|
|
static const AppLayout desktop = _$desktop;
|
|
|
|
static BuiltSet<AppLayout> get values => _$values;
|
|
|
|
static AppLayout valueOf(String name) => _$valueOf(name);
|
|
}
|
|
|
|
class AppSidebar extends EnumClass {
|
|
const AppSidebar._(String name) : super(name);
|
|
|
|
static Serializer<AppSidebar> get serializer => _$appSidebarSerializer;
|
|
static const AppSidebar menu = _$menu;
|
|
static const AppSidebar history = _$history;
|
|
|
|
static BuiltSet<AppSidebar> get values => _$valuesSidebar;
|
|
|
|
static AppSidebar valueOf(String name) => _$valueOfSidebar(name);
|
|
}
|
|
|