import 'dart:convert'; import 'dart:math' as math; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:intl/intl.dart'; import 'package:timeago/timeago.dart' as timeago; import 'lat_lng.dart'; import 'place.dart'; import 'uploaded_file.dart'; import '/backend/schema/structs/index.dart'; import '/auth/custom_auth/auth_util.dart'; String? kortDatum(String? rawDatum) { if (rawDatum == null || rawDatum.trim().isEmpty) { return rawDatum; } const weekdagen = { 'maandag': 'ma', 'dinsdag': 'di', 'woensdag': 'wo', 'donderdag': 'do', 'vrijdag': 'vr', 'zaterdag': 'za', 'zondag': 'zo', }; const maandVolledig = { 'januari': 'jan', 'februari': 'feb', 'maart': 'mrt', 'april': 'apr', 'mei': 'mei', 'juni': 'jun', 'juli': 'jul', 'augustus': 'aug', 'september': 'sep', 'oktober': 'okt', 'november': 'nov', 'december': 'dec', }; const maandKort = { 'jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec', }; // Alles vanaf de komma (bv. ", 15:00") negeren. final zonderTijd = rawDatum.split(',').first.trim().toLowerCase(); final delen = zonderTijd.split(RegExp(r'\s+')); if (delen.length < 3) { return rawDatum; } final weekdag = weekdagen[delen[0]]; final dag = delen[1]; final maandRuw = delen[2].replaceAll('.', ''); final maand = maandVolledig[maandRuw] ?? (maandKort.contains(maandRuw) ? maandRuw : null); if (weekdag == null || maand == null) { return rawDatum; } final tijdDelen = rawDatum.split(','); final tijd = tijdDelen.length > 1 ? tijdDelen.sublist(1).join(',').trim() : ''; return tijd.isNotEmpty ? '$weekdag $dag $maand $tijd' : '$weekdag $dag $maand'; } String? provincieNaamById( List? lijst, String? id, ) { return lijst ?.firstWhere((e) => e.provincieid == id, orElse: () => ProvincieModelStruct()) .provinciename; } /// id String? gemeenteNaamById( List? lijst, String? id, ) { return lijst ?.firstWhere((e) => e.gemeenteid == id, orElse: () => GemeenteModelStruct()) .gemeentename; }