fet: Reservas
This commit is contained in:
parent
f883326f79
commit
ee973ad749
|
@ -3,6 +3,7 @@ import 'dart:developer';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:hub/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart';
|
||||
import 'package:hub/flutter_flow/nav/nav.dart';
|
||||
import 'package:hub/pages/reservation_page/reservation_page_widget.dart';
|
||||
|
||||
import '/components/molecular_components/option_selection_modal/option_selection_modal_widget.dart';
|
||||
import '/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart';
|
||||
|
@ -163,6 +164,10 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
).then((value) => true);
|
||||
}
|
||||
|
||||
Future reservation(BuildContext context) async {
|
||||
Navigator.push(context, MaterialPageRoute(builder: (context) => ReservationPageWidget()));
|
||||
}
|
||||
|
||||
Future liberationHistoryOptAction(BuildContext context) async {
|
||||
await showAdaptiveDialog(
|
||||
// isScrollControlled: true,
|
||||
|
|
|
@ -122,6 +122,17 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
|
|||
ptText: 'Encomendas',
|
||||
),
|
||||
),
|
||||
MenuButtonWidget(
|
||||
icon: Icons.event_available,
|
||||
action: () async {
|
||||
await _model.reservation(context);
|
||||
setState(() {});
|
||||
},
|
||||
title: FFLocalizations.of(context).getVariableText(
|
||||
enText: 'Reservations',
|
||||
ptText: 'Reservas',
|
||||
),
|
||||
),
|
||||
MenuButtonWidget(
|
||||
icon: Icons.settings,
|
||||
action: () async {
|
||||
|
@ -204,6 +215,17 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
|
|||
ptText: 'Encomendas',
|
||||
),
|
||||
),
|
||||
MenuCardItem(
|
||||
icon: Icons.event_available,
|
||||
action: () async {
|
||||
await _model.reservation(context);
|
||||
setState(() {});
|
||||
},
|
||||
title: FFLocalizations.of(context).getVariableText(
|
||||
enText: 'Reservations',
|
||||
ptText: 'Reservas',
|
||||
),
|
||||
),
|
||||
MenuCardItem(
|
||||
icon: Icons.settings,
|
||||
action: () async {
|
||||
|
@ -296,6 +318,17 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
|
|||
ptText: 'Encomendas',
|
||||
),
|
||||
),
|
||||
MenuCardItem(
|
||||
icon: Icons.event_available,
|
||||
action: () async {
|
||||
await _model.reservation(context);
|
||||
setState(() {});
|
||||
},
|
||||
title: FFLocalizations.of(context).getVariableText(
|
||||
enText: 'Reservations',
|
||||
ptText: 'Reservas',
|
||||
),
|
||||
),
|
||||
MenuCardItem(
|
||||
icon: Icons.settings,
|
||||
action: () async {
|
||||
|
|
|
@ -6,6 +6,7 @@ import 'package:hub/pages/fast_pass_page/fast_pass_page_widget.dart';
|
|||
import 'package:hub/pages/message_history_page/message_history_page_widget.dart';
|
||||
import 'package:hub/pages/no_connection_page/no_connection_page.dart';
|
||||
import 'package:hub/pages/package_order_page/package_order_page.dart';
|
||||
import 'package:hub/pages/reservation_page/reservation_page_widget.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '/backend/schema/structs/index.dart';
|
||||
|
@ -177,6 +178,11 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) => GoRouter(
|
|||
path: '/packageOrder',
|
||||
builder: (context, params) => const PackageOrderPage(),
|
||||
),
|
||||
FFRoute(
|
||||
name: 'reservation',
|
||||
path: '/reservation',
|
||||
builder: (context, params) => ReservationPageWidget(),
|
||||
),
|
||||
// FFRoute(
|
||||
// name: 'settingsPage',
|
||||
// path: '/settingsPage',
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
import 'dart:developer';
|
||||
|
||||
import 'package:hub/app_state.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
||||
import 'package:url_launcher/url_launcher_string.dart';
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
import 'package:hub/app_state.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
||||
import 'package:url_launcher/url_launcher_string.dart';
|
||||
import 'package:webview_flutter/webview_flutter.dart';
|
||||
import 'dart:io' show Platform;
|
||||
|
||||
class ReservationPageWidget extends StatefulWidget {
|
||||
final String freToken = AppState().userUUID;
|
||||
final String freUserData = "{\"name\": \"${AppState().name}\", " +
|
||||
"\"email\": \"${AppState().email}\"," +
|
||||
"\"dev_id\": \"${AppState().devUUID}\"," +
|
||||
"\"created_at\": \"${AppState().createdAt}\"," +
|
||||
"\"updated_at\": \"0000-00-00 00:00:00\"," +
|
||||
"\"status\": \"A\" }";
|
||||
|
||||
final String clientId = AppState().cliUUID;
|
||||
|
||||
@override
|
||||
_ReservationPageWidgetState createState() => _ReservationPageWidgetState();
|
||||
}
|
||||
|
||||
class _ReservationPageWidgetState extends State<ReservationPageWidget> {
|
||||
late InAppWebViewController _controllerIOS;
|
||||
late WebViewController _controllerAll;
|
||||
late String url;
|
||||
late String name;
|
||||
late String email;
|
||||
late String userUUID;
|
||||
late String created_at;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
name = AppState().name;
|
||||
email = AppState().email;
|
||||
userUUID = AppState().userUUID;
|
||||
created_at = AppState().createdAt;
|
||||
url = 'https://hub.freaccess.com.br/hub/reservation/${widget.clientId}';
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SafeArea(
|
||||
child: Scaffold(
|
||||
body: Platform.isIOS
|
||||
? InAppWebView(
|
||||
initialUrlRequest: URLRequest(url: WebUri(url)),
|
||||
initialSettings: InAppWebViewSettings(
|
||||
allowsBackForwardNavigationGestures: true,
|
||||
javaScriptEnabled: true,
|
||||
),
|
||||
onWebViewCreated: (controller) async {
|
||||
_controllerIOS = controller;
|
||||
},
|
||||
onLoadStop: (controller, url) async {
|
||||
await controller.evaluateJavascript(
|
||||
source:
|
||||
"window.localStorage.setItem('fre-token', '\"${widget.freToken}\"')");
|
||||
await controller.evaluateJavascript(
|
||||
source:
|
||||
"window.localStorage.setItem('fre-user-data', '${widget.freUserData}')");
|
||||
},
|
||||
|
||||
)
|
||||
: WebViewWidget(
|
||||
controller: _controllerAll = WebViewController()
|
||||
..clearCache()
|
||||
..clearLocalStorage()
|
||||
..setJavaScriptMode(JavaScriptMode.unrestricted)
|
||||
..setBackgroundColor(const Color(0x00000000))
|
||||
..setNavigationDelegate(
|
||||
NavigationDelegate(
|
||||
onProgress: (int progress) {},
|
||||
onPageStarted: (String url) {
|
||||
final String token =
|
||||
"localStorage.setItem('fre-token', '\"${widget.freToken}\"');";
|
||||
final String data =
|
||||
"localStorage.setItem('fre-user-data', '${widget.freUserData}');";
|
||||
|
||||
_controllerAll.runJavaScript(token);
|
||||
_controllerAll.runJavaScript(data);
|
||||
},
|
||||
onNavigationRequest: (NavigationRequest request) {
|
||||
if (request.url.startsWith('http') ||
|
||||
request.url
|
||||
.startsWith('https://api.whatsapp.com/send') ||
|
||||
request.url.startsWith('https://wa.me')) {
|
||||
launchUrlString(request.url);
|
||||
return NavigationDecision.prevent;
|
||||
}
|
||||
return NavigationDecision.prevent;
|
||||
},
|
||||
),
|
||||
)
|
||||
..loadRequest(Uri.parse(url)),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue