|
@@ -0,0 +1,286 @@
|
|
|
|
|
+import '/flutter_flow/flutter_flow_theme.dart';
|
|
|
|
|
+import '/flutter_flow/flutter_flow_util.dart';
|
|
|
|
|
+import '/flutter_flow/flutter_flow_widgets.dart';
|
|
|
|
|
+import 'dart:ui';
|
|
|
|
|
+import 'package:flutter/material.dart';
|
|
|
|
|
+import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
|
|
|
+import 'package:google_fonts/google_fonts.dart';
|
|
|
|
|
+import 'package:provider/provider.dart';
|
|
|
|
|
+import 'favorieten_model.dart';
|
|
|
|
|
+export 'favorieten_model.dart';
|
|
|
|
|
+
|
|
|
|
|
+class FavorietenWidget extends StatefulWidget {
|
|
|
|
|
+ const FavorietenWidget({super.key});
|
|
|
|
|
+
|
|
|
|
|
+ static String routeName = 'favorieten';
|
|
|
|
|
+ static String routePath = '/favorieten';
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ State<FavorietenWidget> createState() => _FavorietenWidgetState();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+class _FavorietenWidgetState extends State<FavorietenWidget>
|
|
|
|
|
+ with TickerProviderStateMixin, RouteAware {
|
|
|
|
|
+ late FavorietenModel _model;
|
|
|
|
|
+
|
|
|
|
|
+ final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ void initState() {
|
|
|
|
|
+ super.initState();
|
|
|
|
|
+ _model = createModel(context, () => FavorietenModel());
|
|
|
|
|
+
|
|
|
|
|
+ _model.tabBarController = TabController(
|
|
|
|
|
+ vsync: this,
|
|
|
|
|
+ length: 3,
|
|
|
|
|
+ initialIndex: 0,
|
|
|
|
|
+ )
|
|
|
|
|
+ ..addListener(() => safeSetState(() {}))
|
|
|
|
|
+ ..addListener(() {
|
|
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ void dispose() {
|
|
|
|
|
+ routeObserver.unsubscribe(this);
|
|
|
|
|
+
|
|
|
|
|
+ _model.dispose();
|
|
|
|
|
+
|
|
|
|
|
+ super.dispose();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ void didUpdateWidget(FavorietenWidget oldWidget) {
|
|
|
|
|
+ super.didUpdateWidget(oldWidget);
|
|
|
|
|
+ _model.widget = widget;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ void didChangeDependencies() {
|
|
|
|
|
+ super.didChangeDependencies();
|
|
|
|
|
+ final route = DebugModalRoute.of(context);
|
|
|
|
|
+ if (route != null) {
|
|
|
|
|
+ routeObserver.subscribe(this, route);
|
|
|
|
|
+ }
|
|
|
|
|
+ debugLogGlobalProperty(context);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ void didPopNext() {
|
|
|
|
|
+ if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
|
|
|
|
|
+ setState(() => _model.isRouteVisible = true);
|
|
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ void didPush() {
|
|
|
|
|
+ if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
|
|
|
|
|
+ setState(() => _model.isRouteVisible = true);
|
|
|
|
|
+ debugLogWidgetClass(_model);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ void didPop() {
|
|
|
|
|
+ _model.isRouteVisible = false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ void didPushNext() {
|
|
|
|
|
+ _model.isRouteVisible = false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @override
|
|
|
|
|
+ Widget build(BuildContext context) {
|
|
|
|
|
+ DebugFlutterFlowModelContext.maybeOf(context)
|
|
|
|
|
+ ?.parentModelCallback
|
|
|
|
|
+ ?.call(_model);
|
|
|
|
|
+
|
|
|
|
|
+ return GestureDetector(
|
|
|
|
|
+ onTap: () {
|
|
|
|
|
+ FocusScope.of(context).unfocus();
|
|
|
|
|
+ FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
|
+ },
|
|
|
|
|
+ child: Scaffold(
|
|
|
|
|
+ key: scaffoldKey,
|
|
|
|
|
+ backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
|
|
|
+ body: SafeArea(
|
|
|
|
|
+ top: true,
|
|
|
|
|
+ child: Column(
|
|
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
|
|
+ children: [
|
|
|
|
|
+ Expanded(
|
|
|
|
|
+ child: Column(
|
|
|
|
|
+ children: [
|
|
|
|
|
+ Align(
|
|
|
|
|
+ alignment: Alignment(0.0, 0),
|
|
|
|
|
+ child: TabBar(
|
|
|
|
|
+ labelColor: FlutterFlowTheme.of(context).primaryText,
|
|
|
|
|
+ unselectedLabelColor:
|
|
|
|
|
+ FlutterFlowTheme.of(context).secondaryText,
|
|
|
|
|
+ labelStyle:
|
|
|
|
|
+ FlutterFlowTheme.of(context).titleMedium.override(
|
|
|
|
|
+ font: GoogleFonts.interTight(
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .titleMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .titleMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ letterSpacing: 0.0,
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .titleMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .titleMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ unselectedLabelStyle:
|
|
|
|
|
+ FlutterFlowTheme.of(context).titleMedium.override(
|
|
|
|
|
+ font: GoogleFonts.interTight(
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .titleMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .titleMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ letterSpacing: 0.0,
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .titleMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .titleMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ indicatorColor: FlutterFlowTheme.of(context).primary,
|
|
|
|
|
+ tabs: [
|
|
|
|
|
+ Tab(
|
|
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
|
|
+ 'txq7zl0f' /* Persoonlijke agenda */,
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ Tab(
|
|
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
|
|
+ '9wq117bv' /* Favoriete gemeenten */,
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ Tab(
|
|
|
|
|
+ text: FFLocalizations.of(context).getText(
|
|
|
|
|
+ 'ygk8aifq' /* Favoriete Gelegenheden */,
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ],
|
|
|
|
|
+ controller: _model.tabBarController,
|
|
|
|
|
+ onTap: (i) async {
|
|
|
|
|
+ [() async {}, () async {}, () async {}][i]();
|
|
|
|
|
+ },
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ Expanded(
|
|
|
|
|
+ child: TabBarView(
|
|
|
|
|
+ controller: _model.tabBarController,
|
|
|
|
|
+ children: [
|
|
|
|
|
+ Column(
|
|
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
|
|
+ children: [
|
|
|
|
|
+ Text(
|
|
|
|
|
+ FFLocalizations.of(context).getText(
|
|
|
|
|
+ '1y5w12fr' /* Je persoonlijke agenda met eve... */,
|
|
|
|
|
+ ),
|
|
|
|
|
+ style: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .override(
|
|
|
|
|
+ font: GoogleFonts.inter(
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ letterSpacing: 0.0,
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ],
|
|
|
|
|
+ ),
|
|
|
|
|
+ Column(
|
|
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
|
|
+ children: [
|
|
|
|
|
+ Text(
|
|
|
|
|
+ FFLocalizations.of(context).getText(
|
|
|
|
|
+ 'o7pt2vls' /* De gemeentes die je hebt gemar... */,
|
|
|
|
|
+ ),
|
|
|
|
|
+ style: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .override(
|
|
|
|
|
+ font: GoogleFonts.inter(
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ letterSpacing: 0.0,
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ],
|
|
|
|
|
+ ),
|
|
|
|
|
+ Column(
|
|
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
|
|
+ children: [
|
|
|
|
|
+ Text(
|
|
|
|
|
+ FFLocalizations.of(context).getText(
|
|
|
|
|
+ 'gyuds6ee' /* Hello World */,
|
|
|
|
|
+ ),
|
|
|
|
|
+ style: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .override(
|
|
|
|
|
+ font: GoogleFonts.inter(
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ letterSpacing: 0.0,
|
|
|
|
|
+ fontWeight: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontWeight,
|
|
|
|
|
+ fontStyle: FlutterFlowTheme.of(context)
|
|
|
|
|
+ .bodyMedium
|
|
|
|
|
+ .fontStyle,
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ],
|
|
|
|
|
+ ),
|
|
|
|
|
+ ],
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ],
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ],
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+}
|