|
|
@@ -0,0 +1,135 @@
|
|
|
+import '/flutter_flow/flutter_flow_icon_button.dart';
|
|
|
+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 'header_buttons_component_model.dart';
|
|
|
+export 'header_buttons_component_model.dart';
|
|
|
+
|
|
|
+/// Standaard header-knoppen (drawer + terug) voor herbruik op alle pagina's
|
|
|
+class HeaderButtonsComponentWidget extends StatefulWidget {
|
|
|
+ const HeaderButtonsComponentWidget({super.key});
|
|
|
+
|
|
|
+ @override
|
|
|
+ State<HeaderButtonsComponentWidget> createState() =>
|
|
|
+ _HeaderButtonsComponentWidgetState();
|
|
|
+}
|
|
|
+
|
|
|
+class _HeaderButtonsComponentWidgetState
|
|
|
+ extends State<HeaderButtonsComponentWidget> with RouteAware {
|
|
|
+ late HeaderButtonsComponentModel _model;
|
|
|
+
|
|
|
+ @override
|
|
|
+ void setState(VoidCallback callback) {
|
|
|
+ super.setState(callback);
|
|
|
+ _model.onUpdate();
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void initState() {
|
|
|
+ super.initState();
|
|
|
+ _model = createModel(context, () => HeaderButtonsComponentModel());
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void dispose() {
|
|
|
+ routeObserver.unsubscribe(this);
|
|
|
+
|
|
|
+ _model.maybeDispose();
|
|
|
+
|
|
|
+ super.dispose();
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ void didUpdateWidget(HeaderButtonsComponentWidget 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 Align(
|
|
|
+ alignment: AlignmentDirectional(0.0, 0.0),
|
|
|
+ child: Row(
|
|
|
+ mainAxisSize: MainAxisSize.max,
|
|
|
+ children: [
|
|
|
+ FlutterFlowIconButton(
|
|
|
+ borderRadius: 8.0,
|
|
|
+ buttonSize: 40.0,
|
|
|
+ fillColor: Color(0xFFB50808),
|
|
|
+ icon: Icon(
|
|
|
+ Icons.dehaze_outlined,
|
|
|
+ color: FlutterFlowTheme.of(context).info,
|
|
|
+ size: 24.0,
|
|
|
+ ),
|
|
|
+ onPressed: () async {
|
|
|
+ Scaffold.of(context).openDrawer();
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ Padding(
|
|
|
+ padding: EdgeInsetsDirectional.fromSTEB(4.0, 0.0, 0.0, 0.0),
|
|
|
+ child: FlutterFlowIconButton(
|
|
|
+ borderColor: Color(0x00FF0000),
|
|
|
+ borderRadius: 30.0,
|
|
|
+ borderWidth: 1.0,
|
|
|
+ buttonSize: 50.0,
|
|
|
+ fillColor: Color(0xFFB50808),
|
|
|
+ icon: Icon(
|
|
|
+ Icons.arrow_back_outlined,
|
|
|
+ color: Colors.white,
|
|
|
+ size: 30.0,
|
|
|
+ ),
|
|
|
+ onPressed: () async {
|
|
|
+ context.pop();
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|