header_buttons_component_widget.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import '/flutter_flow/flutter_flow_icon_button.dart';
  2. import '/flutter_flow/flutter_flow_theme.dart';
  3. import '/flutter_flow/flutter_flow_util.dart';
  4. import '/flutter_flow/flutter_flow_widgets.dart';
  5. import 'dart:ui';
  6. import 'package:flutter/material.dart';
  7. import 'package:flutter_spinkit/flutter_spinkit.dart';
  8. import 'package:google_fonts/google_fonts.dart';
  9. import 'package:provider/provider.dart';
  10. import 'header_buttons_component_model.dart';
  11. export 'header_buttons_component_model.dart';
  12. /// Standaard header-knoppen (drawer + terug) voor herbruik op alle pagina's
  13. class HeaderButtonsComponentWidget extends StatefulWidget {
  14. const HeaderButtonsComponentWidget({super.key});
  15. @override
  16. State<HeaderButtonsComponentWidget> createState() =>
  17. _HeaderButtonsComponentWidgetState();
  18. }
  19. class _HeaderButtonsComponentWidgetState
  20. extends State<HeaderButtonsComponentWidget> with RouteAware {
  21. late HeaderButtonsComponentModel _model;
  22. @override
  23. void setState(VoidCallback callback) {
  24. super.setState(callback);
  25. _model.onUpdate();
  26. }
  27. @override
  28. void initState() {
  29. super.initState();
  30. _model = createModel(context, () => HeaderButtonsComponentModel());
  31. }
  32. @override
  33. void dispose() {
  34. routeObserver.unsubscribe(this);
  35. _model.maybeDispose();
  36. super.dispose();
  37. }
  38. @override
  39. void didUpdateWidget(HeaderButtonsComponentWidget oldWidget) {
  40. super.didUpdateWidget(oldWidget);
  41. _model.widget = widget;
  42. }
  43. @override
  44. void didChangeDependencies() {
  45. super.didChangeDependencies();
  46. final route = DebugModalRoute.of(context);
  47. if (route != null) {
  48. routeObserver.subscribe(this, route);
  49. }
  50. debugLogGlobalProperty(context);
  51. }
  52. @override
  53. void didPopNext() {
  54. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  55. setState(() => _model.isRouteVisible = true);
  56. debugLogWidgetClass(_model);
  57. }
  58. }
  59. @override
  60. void didPush() {
  61. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  62. setState(() => _model.isRouteVisible = true);
  63. debugLogWidgetClass(_model);
  64. }
  65. }
  66. @override
  67. void didPop() {
  68. _model.isRouteVisible = false;
  69. }
  70. @override
  71. void didPushNext() {
  72. _model.isRouteVisible = false;
  73. }
  74. @override
  75. Widget build(BuildContext context) {
  76. DebugFlutterFlowModelContext.maybeOf(context)
  77. ?.parentModelCallback
  78. ?.call(_model);
  79. return Align(
  80. alignment: AlignmentDirectional(0.0, 0.0),
  81. child: Row(
  82. mainAxisSize: MainAxisSize.max,
  83. children: [
  84. FlutterFlowIconButton(
  85. borderRadius: 8.0,
  86. buttonSize: 40.0,
  87. fillColor: Color(0xFFB50808),
  88. icon: Icon(
  89. Icons.dehaze_outlined,
  90. color: FlutterFlowTheme.of(context).info,
  91. size: 24.0,
  92. ),
  93. onPressed: () async {
  94. Scaffold.of(context).openDrawer();
  95. },
  96. ),
  97. Padding(
  98. padding: EdgeInsetsDirectional.fromSTEB(4.0, 0.0, 0.0, 0.0),
  99. child: FlutterFlowIconButton(
  100. borderColor: Color(0x00FF0000),
  101. borderRadius: 30.0,
  102. borderWidth: 1.0,
  103. buttonSize: 50.0,
  104. fillColor: Color(0xFFB50808),
  105. icon: Icon(
  106. Icons.arrow_back_outlined,
  107. color: Colors.white,
  108. size: 30.0,
  109. ),
  110. onPressed: () async {
  111. context.pop();
  112. },
  113. ),
  114. ),
  115. ],
  116. ),
  117. );
  118. }
  119. }