| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // 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!
- 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;
- }
- // Set your action name, define your arguments and return parameter,
- // and then add the boilerplate code using the `</>` button on the right!
|