update
This commit is contained in:
parent
aa816f8893
commit
df69e56d95
3 changed files with 40 additions and 13 deletions
|
@ -2,6 +2,8 @@ import 'dart:convert';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
|
||||||
|
// todo : api errors
|
||||||
|
|
||||||
class API {
|
class API {
|
||||||
late SharedPreferences pref;
|
late SharedPreferences pref;
|
||||||
static final API _instance = API._internal();
|
static final API _instance = API._internal();
|
||||||
|
|
|
@ -4,10 +4,24 @@ import 'package:flutter/material.dart';
|
||||||
class FlowsPage extends StatelessWidget {
|
class FlowsPage extends StatelessWidget {
|
||||||
const FlowsPage({super.key});
|
const FlowsPage({super.key});
|
||||||
|
|
||||||
|
Widget listAllFlowInfos(
|
||||||
|
BuildContext context, Map<String, API.FlowInfo> infos) {
|
||||||
|
return ListView(
|
||||||
|
children: infos.values.map((x) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text(x.name),
|
||||||
|
onTap: () {
|
||||||
|
Navigator.of(context).push(MaterialPageRoute(
|
||||||
|
builder: (context) => FlowPage(x),
|
||||||
|
));
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}).toList());
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
// todo : flows by item produced
|
// todo : flows (info) by item produced
|
||||||
// todo : list all flow kinds
|
|
||||||
// todo : list currently active
|
// todo : list currently active
|
||||||
// todo : flows by item needed (show only avail)
|
// todo : flows by item needed (show only avail)
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
@ -21,17 +35,7 @@ class FlowsPage extends StatelessWidget {
|
||||||
|
|
||||||
var data = snap.data!;
|
var data = snap.data!;
|
||||||
|
|
||||||
return ListView(
|
return listAllFlowInfos(context, data);
|
||||||
children: data.values.map((x) {
|
|
||||||
return ListTile(
|
|
||||||
title: Text(x.name),
|
|
||||||
onTap: () {
|
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
|
||||||
builder: (context) => FlowPage(x),
|
|
||||||
));
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}).toList());
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import 'package:cdb_ui/api.dart';
|
import 'package:cdb_ui/api.dart';
|
||||||
import 'package:cdb_ui/pages/itemview.dart';
|
import 'package:cdb_ui/pages/itemview.dart';
|
||||||
|
import 'package:cdb_ui/pages/transaction.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:qr_bar_code_scanner_dialog/qr_bar_code_scanner_dialog.dart';
|
||||||
|
|
||||||
class ItemsPage extends StatelessWidget {
|
class ItemsPage extends StatelessWidget {
|
||||||
const ItemsPage({super.key});
|
const ItemsPage({super.key});
|
||||||
|
@ -25,6 +27,25 @@ class ItemsPage extends StatelessWidget {
|
||||||
return ItemTile(x);
|
return ItemTile(x);
|
||||||
}).toList());
|
}).toList());
|
||||||
}),
|
}),
|
||||||
|
floatingActionButton: FloatingActionButton(
|
||||||
|
onPressed: () {
|
||||||
|
// scan transaction code
|
||||||
|
QrBarCodeScannerDialog().getScannedQrBarCode(
|
||||||
|
context: context,
|
||||||
|
onCode: (code) {
|
||||||
|
// library is retarded
|
||||||
|
code = code!.replaceFirst("Code scanned = ", "");
|
||||||
|
|
||||||
|
API().getTransaction(code).then((t) {
|
||||||
|
Navigator.of(context).push(MaterialPageRoute(
|
||||||
|
builder: (context) => TransactionPage(t),
|
||||||
|
));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
child: const Icon(Icons.qr_code),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue