| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // Automatic FlutterFlow imports
- import '/backend/schema/structs/index.dart';
- import '/flutter_flow/flutter_flow_theme.dart';
- import '/flutter_flow/flutter_flow_util.dart';
- import 'index.dart'; // Imports other custom actions
- import '/flutter_flow/custom_functions.dart'; // Imports custom functions
- import 'package:flutter/material.dart';
- // Begin custom action code
- // DO NOT REMOVE OR MODIFY THE CODE ABOVE!
- // ⬇⬇⬇ PLAK VANAF HIER — deze importregel hoort erbij! ⬇⬇⬇
- // Zonder deze regel faalt de build met: Undefined name 'http'.
- import 'package:http/http.dart' as http;
- /// Kijkt of de server bereikbaar is en zet App State `geenVerbinding`.
- /// Geeft true terug als de verbinding in orde is.
- ///
- /// Bewust een HEAD-request op de site-root: die levert 0 bytes body op en
- /// antwoordt in ongeveer 60 ms, dus dit is verwaarloosbaar naast de gewone
- /// data-calls. We kijken alleen of de server antwoordt, niet wat hij zegt.
- Future<bool> checkVerbinding() async {
- final basis = FFAppState().apiBaseUrl.trim().isEmpty
- ? 'https://uitgaanskrant.com'
- : FFAppState().apiBaseUrl.trim();
- bool bereikbaar;
- try {
- final response = await http
- .head(Uri.parse(basis))
- .timeout(const Duration(seconds: 6));
- // Elke echte HTTP-reactie betekent dat we de server hebben bereikt.
- // Alleen een 5xx rekenen we als 'niet bruikbaar'.
- bereikbaar = response.statusCode < 500;
- } catch (_) {
- // Geen netwerk, DNS-fout, timeout, certificaatfout: allemaal 'geen verbinding'.
- bereikbaar = false;
- }
- final nieuweWaarde = !bereikbaar;
- if (FFAppState().geenVerbinding != nieuweWaarde) {
- // update() roept notifyListeners() aan; zonder dat merkt de banner niets.
- FFAppState().update(() {
- FFAppState().geenVerbinding = nieuweWaarde;
- });
- }
- return bereikbaar;
- }
|