89 lines
3.1 KiB
Dart
89 lines
3.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:manager_api_new/api.dart';
|
|
import 'package:manager_app/Components/common_loader.dart';
|
|
import 'package:manager_app/Models/managerContext.dart';
|
|
import 'package:manager_app/Models/menu.dart';
|
|
import 'package:manager_app/Models/menuSection.dart';
|
|
import 'package:manager_app/Screens/Main/components/body.dart';
|
|
import 'package:manager_app/app_context.dart';
|
|
import 'package:manager_app/client.dart';
|
|
import 'package:manager_app/constants.dart';
|
|
import 'package:manager_app/main.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:responsive_framework/responsive_framework.dart';
|
|
|
|
class MainScreen extends StatefulWidget {
|
|
MainScreen({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
_MainScreenState createState() => _MainScreenState();
|
|
}
|
|
|
|
class _MainScreenState extends State<MainScreen> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final GlobalKey<_MainScreenState> key = GlobalKey();
|
|
final appContext = Provider.of<AppContext>(context);
|
|
Size size = MediaQuery.of(context).size;
|
|
|
|
//var isFortSt = managerAppContext.instanceId == "633ee379d9405f32f166f047";
|
|
|
|
return FutureBuilder(
|
|
future: getInstanceInfo(appContext),
|
|
builder: (context, AsyncSnapshot<InstanceDTO?> snapshot) {
|
|
if (snapshot.connectionState == ConnectionState.done) {
|
|
if (snapshot.data != null) {
|
|
var instanceDTO = snapshot.data;
|
|
return Scaffold(
|
|
key: key,
|
|
body: Body(instance: instanceDTO!),
|
|
);
|
|
} else {
|
|
return Text("No data");
|
|
}
|
|
} else if (snapshot.connectionState == ConnectionState.none) {
|
|
return Text("No data");
|
|
} else {
|
|
return Center(
|
|
child: Container(
|
|
height: size.height * 0.1,
|
|
child: CommonLoader()
|
|
)
|
|
);
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
Future<InstanceDTO?> getInstanceInfo(AppContext appContext) async {
|
|
|
|
var session = await loadJsonSessionFile();
|
|
|
|
try {
|
|
ManagerAppContext managerAppContext = appContext.getContext() as ManagerAppContext;
|
|
managerAppContext.instanceId = managerAppContext.instanceId ?? session.instanceId;
|
|
managerAppContext.host = managerAppContext.host ?? session.host;
|
|
managerAppContext.accessToken = managerAppContext.accessToken ?? session.token;
|
|
managerAppContext.email = managerAppContext.email ?? session.email;
|
|
|
|
if(managerAppContext.clientAPI == null) {
|
|
managerAppContext.clientAPI = Client(session.host!);
|
|
managerAppContext.clientAPI!.apiApi!.addDefaultHeader('authorization', 'Bearer '+ managerAppContext.accessToken!);
|
|
}
|
|
|
|
InstanceDTO? instance = await managerAppContext.clientAPI!.instanceApi!.instanceGetDetail(managerAppContext.instanceId!);
|
|
managerAppContext.instanceDTO = instance;
|
|
return instance;
|
|
} catch(e) {
|
|
Navigator.pushNamedAndRemoveUntil(
|
|
context,
|
|
'/login',
|
|
(Route<dynamic> route) => false,
|
|
);
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
|