Fix imports

This commit is contained in:
unknown 2018-05-17 12:49:52 -07:00
parent cc83239321
commit 1811c15b82
24 changed files with 150 additions and 58 deletions

View File

@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
import '../data/models/models.dart';
import 'package:invoiceninja/data/models/models.dart';
//import 'package:built_redux_sample/models/serializers.dart';
/// Loads and saves a List of Products using a text file stored on the device.

View File

@ -2,10 +2,10 @@ import 'dart:async';
import 'dart:core';
import 'package:meta/meta.dart';
import '../../data/models/entities.dart';
import '../../data/repositories/repositories.dart';
import '../../data/file_storage.dart';
import '../../data/web_client.dart';
import 'package:invoiceninja/data/models/entities.dart';
import 'package:invoiceninja/data/repositories/repositories.dart';
import 'package:invoiceninja/data/file_storage.dart';
import 'package:invoiceninja/data/web_client.dart';
/// A class that glues together our local file storage and web client. It has a
/// clear responsibility: Load Products and Persist products.

View File

@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:core';
import '../../data/models/entities.dart';
import 'package:invoiceninja/data/models/entities.dart';
/// A class that Loads and Persists products. The data layer of the app.
///

View File

@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
import '../data/models/models.dart';
import 'package:invoiceninja/data/models/models.dart';
/// A class that is meant to represent a Web Service you would call to fetch
/// and persist Products to and from the cloud.

View File

@ -6,6 +6,7 @@ class NinjaKeys {
static Key snackbarAction(String id) => Key('__snackbar_action_${id}__');
static final dashboard = const Key('__dashboard__');
static final loginScreen = const Key('__login_screen__');
static final clientList = const Key('__client_list__');
static final productHome = const Key('__product_home__');

View File

@ -2,9 +2,10 @@ import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import 'redux/app/app_state.dart';
import 'ui/dashboard.dart';
import 'ui/client/client_list.dart';
import 'ui/product/product_home.dart';
import 'package:invoiceninja/ui/dashboard_screen.dart';
import 'package:invoiceninja/ui/client/client_list.dart';
import 'package:invoiceninja/ui/product/product_screen.dart';
import 'package:invoiceninja/ui/app/login_screen.dart';
import 'routes.dart';
import 'redux/product/product_actions.dart';
import 'redux/product/product_middleware.dart';
@ -39,6 +40,13 @@ class InvoiceNinjaApp extends StatelessWidget {
theme: new ThemeData.dark(),
title: 'Invoice Ninja',
routes: {
NinjaRoutes.login: (context) {
return StoreBuilder<AppState>(
builder: (context, store) {
return LoginScreen();
},
);
},
NinjaRoutes.dashboard: (context) {
return StoreBuilder<AppState>(
builder: (context, store) {

View File

@ -1,6 +1,6 @@
import '../../redux/app/app_state.dart';
import '../../redux/app/loading_reducer.dart';
import '../../redux/product/product_reducer.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
import 'package:invoiceninja/redux/app/loading_reducer.dart';
import 'package:invoiceninja/redux/product/product_reducer.dart';
// We create the State reducer by combining many smaller reducers into one!
AppState appReducer(AppState state, action) {

View File

@ -1,5 +1,5 @@
import 'package:meta/meta.dart';
import '../../data/models/models.dart';
import 'package:invoiceninja/data/models/models.dart';
@immutable
class AppState {

View File

@ -1,5 +1,5 @@
import 'package:redux/redux.dart';
import '../../redux/product/product_actions.dart';
import 'package:invoiceninja/redux/product/product_actions.dart';
final loadingReducer = combineReducers<bool>([
TypedReducer<bool, ProductsLoadedAction>(_setLoaded),

View File

@ -1,4 +1,4 @@
import '../../data/models/models.dart';
import 'package:invoiceninja/data/models/models.dart';
class LoadProductsAction {}

View File

@ -1,11 +1,11 @@
import 'package:path_provider/path_provider.dart';
import 'package:redux/redux.dart';
import '../../redux/product/product_actions.dart';
import '../../redux/app/app_state.dart';
import '../../data/repositories/repositories.dart';
import '../../data/repositories/product_repository.dart';
import '../../data/file_storage.dart';
import '../../redux/product/product_selectors.dart';
import 'package:invoiceninja/redux/product/product_actions.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
import 'package:invoiceninja/data/repositories/repositories.dart';
import 'package:invoiceninja/data/repositories/product_repository.dart';
import 'package:invoiceninja/data/file_storage.dart';
import 'package:invoiceninja/redux/product/product_selectors.dart';
List<Middleware<AppState>> createStoreProductsMiddleware([
ProductsRepository repository = const ProductsRepositoryFlutter(

View File

@ -1,7 +1,7 @@
import 'package:redux/redux.dart';
import '../../redux/product/product_actions.dart';
import '../../data/models/models.dart';
import '../../redux/product/product_selectors.dart';
import 'package:invoiceninja/redux/product/product_actions.dart';
import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/redux/product/product_selectors.dart';
final productsReducer = combineReducers<List<ProductEntity>>([
/*

View File

@ -1,6 +1,6 @@
import '../../data/models/models.dart';
import '../../redux/app/app_state.dart';
import '../../utils/optional.dart';
import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
import 'package:invoiceninja/utils/optional.dart';
bool isLoadingSelector(AppState state) => state.isLoading;

View File

@ -1,5 +1,6 @@
class NinjaRoutes {
static final dashboard = "/";
static final login = "/";
static final dashboard = "/dashboard";
static final clientList = "/clientList";
static final productList = "/productList";
}

View File

@ -2,8 +2,8 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import '../../redux/app/app_state.dart';
import '../../redux/product/product_selectors.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
import 'package:invoiceninja/redux/product/product_selectors.dart';
class AppLoading extends StatelessWidget {
final Function(BuildContext context, bool isLoading) builder;

View File

@ -0,0 +1,82 @@
import 'package:flutter/material.dart';
class LoginScreen extends StatefulWidget {
static String tag = 'login-page';
@override
_LoginScreenState createState() => new _LoginScreenState();
}
class _LoginScreenState extends State<LoginScreen> {
@override
Widget build(BuildContext context) {
final email = TextFormField(
keyboardType: TextInputType.emailAddress,
autofocus: false,
validator: (value) {
if (value.isEmpty) {
return 'This field is required';
}
},
decoration: InputDecoration(
labelText: 'Email',
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
),
);
final password = TextFormField(
autofocus: false,
obscureText: true,
decoration: InputDecoration(
labelText: 'Password',
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
),
);
final loginButton = Padding(
padding: EdgeInsets.symmetric(vertical: 16.0),
child: Material(
//borderRadius: BorderRadius.circular(30.0),
shadowColor: Colors.lightBlueAccent.shade100,
elevation: 5.0,
child: MaterialButton(
minWidth: 200.0,
height: 42.0,
onPressed: () {
//Navigator.of(context).pushNamed(HomeScreen.tag);
},
color: Colors.lightBlueAccent,
child: Text('Log In', style: TextStyle(color: Colors.white)),
),
),
);
/*
final forgotLabel = FlatButton(
child: Text(
'Forgot password?',
style: TextStyle(color: Colors.black54),
),
onPressed: () {},
);
*/
return Scaffold(
//backgroundColor: Colors.white,
body: Center(
child: ListView(
shrinkWrap: true,
padding: EdgeInsets.only(left: 24.0, right: 24.0),
children: <Widget>[
SizedBox(height: 48.0),
email,
SizedBox(height: 8.0),
password,
SizedBox(height: 24.0),
loginButton,
//forgotLabel
],
),
),
);
}
}

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import '../../keys.dart';
import '../../ui/app/sidebar.dart';
import 'package:invoiceninja/keys.dart';
import 'package:invoiceninja/ui/app/sidebar.dart';
class ClientList extends StatelessWidget {
ClientList() : super(key: NinjaKeys.clientList);

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import '../keys.dart';
import '../ui/app/sidebar.dart';
import 'package:invoiceninja/keys.dart';
import 'package:invoiceninja/ui/app/sidebar.dart';
class Dashboard extends StatelessWidget {
Dashboard() : super(key: NinjaKeys.dashboard);

View File

@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
//import '../../containers/edit_product.dart';
import '../../data/models/models.dart';
//import 'package:invoiceninja/containers/edit_product.dart';
import 'package:invoiceninja/data/models/models.dart';
class DetailsScreen extends StatelessWidget {
final ProductEntity product;

View File

@ -6,11 +6,11 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import '../../redux/product/product_actions.dart';
import '../../data/models/models.dart';
import '../../ui/product/product_details.dart';
import '../../redux/product/product_selectors.dart';
import '../../redux/app/app_state.dart';
import 'package:invoiceninja/redux/product/product_actions.dart';
import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/ui/product/product_details.dart';
import 'package:invoiceninja/redux/product/product_selectors.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
class ProductDetails extends StatelessWidget {
final int id;

View File

@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import '../../data/models/models.dart';
import '../../keys.dart';
import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/keys.dart';
class ProductItem extends StatelessWidget {
final DismissDirectionCallback onDismissed;

View File

@ -1,11 +1,11 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import '../../ui/app/app_loading.dart';
import '../../ui/product/product_details_vm.dart';
import '../../data/models/models.dart';
import '../../ui/app/loading_indicator.dart';
import '../../ui/product/product_item.dart';
import '../../keys.dart';
import 'package:invoiceninja/ui/app/app_loading.dart';
import 'package:invoiceninja/ui/product/product_details_vm.dart';
import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/ui/app/loading_indicator.dart';
import 'package:invoiceninja/ui/product/product_item.dart';
import 'package:invoiceninja/keys.dart';
class ProductList extends StatelessWidget {
final List<ProductEntity> products;

View File

@ -2,11 +2,11 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import '../../redux/product/product_actions.dart';
import '../../data/models/models.dart';
import '../../ui/product/product_list.dart';
import '../../redux/product/product_selectors.dart';
import '../../redux/app/app_state.dart';
import 'package:invoiceninja/redux/product/product_actions.dart';
import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/ui/product/product_list.dart';
import 'package:invoiceninja/redux/product/product_selectors.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
class FilteredProducts extends StatelessWidget {
FilteredProducts({Key key}) : super(key: key);

View File

@ -3,9 +3,9 @@
// in the LICENSE file.
import 'package:flutter/material.dart';
import '../../data/models/models.dart';
import '../../keys.dart';
import '../../ui/product/product_list_vm.dart';
import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/keys.dart';
import 'package:invoiceninja/ui/product/product_list_vm.dart';
class ProductHome extends StatelessWidget {
ProductHome() : super(key: NinjaKeys.productHome);