Updating to latest FlutterFlow output.

This commit is contained in:
FlutterFlow 2024-06-11 13:23:56 +00:00
parent 5241206a6a
commit 0790a7c99f
75 changed files with 69 additions and 471 deletions

View File

@ -28,7 +28,6 @@ require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelpe
flutter_ios_podfile_setup
target 'Runner' do
pod 'GoogleUtilities'
use_frameworks! :linkage => :static
use_modular_headers!
@ -44,9 +43,3 @@ post_install do |installer|
end
end
end
target 'ImageNotification' do
use_frameworks! :linkage => :static
pod 'Firebase/Messaging'
pod 'GoogleUtilities'
end

View File

@ -44,8 +44,8 @@
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
6436409C27A31CD800820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409327A31CD800820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409C27A31CDC00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409A27A31CDA00820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -225,8 +225,8 @@
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
6436409C27A31CD800820AF7 /* pt */,
6436409327A31CD800820AF7 /* en */,
6436409C27A31CDC00820AF7 /* pt */,
6436409A27A31CDA00820AF7 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";

View File

@ -52,11 +52,6 @@
<key>NSPhotoLibraryUsageDescription</key>
<string>In order to upload data, this app requires permission to access the photo library.</string>
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>remote-notification</string>
</array>
<key>UILaunchStoryboardName</key>

View File

@ -2,7 +2,5 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>development</string>
</dict>
</plist>

View File

@ -1,5 +1,5 @@
import '/application_components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/custom_code/actions/index.dart' as actions;
@ -115,6 +115,9 @@ Future singInActionApp(
FFAppState().userUUID = PhpGroup.loginCall.userUUID(
(loginCall.jsonBody ?? ''),
)!;
FFAppState().token = PhpGroup.loginCall.userDeviceId(
(loginCall.jsonBody ?? ''),
)!;
if (PhpGroup.loginCall.error(
(loginCall.jsonBody ?? ''),
) ==

View File

@ -43,6 +43,9 @@ class FFAppState extends ChangeNotifier {
_safeInit(() {
_local = prefs.getString('ff_local') ?? _local;
});
_safeInit(() {
_token = prefs.getString('ff_token') ?? _token;
});
}
void update(VoidCallback callback) {
@ -114,6 +117,13 @@ class FFAppState extends ChangeNotifier {
_local = value;
prefs.setString('ff_local', value);
}
String _token = '';
String get token => _token;
set token(String value) {
_token = value;
prefs.setString('ff_token', value);
}
}
void _safeInit(Function() initializeField) {

View File

@ -1,23 +0,0 @@
import 'package:cloud_functions/cloud_functions.dart';
Future<Map<String, dynamic>> makeCloudCall(
String callName,
Map<String, dynamic> input,
) async {
try {
final response = await FirebaseFunctions.instance
.httpsCallable(callName, options: HttpsCallableOptions())
.call(input);
return response.data is Map
? Map<String, dynamic>.from(response.data as Map)
: {};
} on FirebaseFunctionsException catch (e) {
print(
'Cloud call error!\n'
'Code: ${e.code}\n'
'Details: ${e.details}\n'
'Message: ${e.message}',
);
return {};
}
}

View File

@ -1,148 +0,0 @@
import 'dart:async';
import 'serialization_util.dart';
import '../backend.dart';
import '../../flutter_flow/flutter_flow_theme.dart';
import '../../flutter_flow/flutter_flow_util.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
final _handledMessageIds = <String?>{};
class PushNotificationsHandler extends StatefulWidget {
const PushNotificationsHandler({super.key, required this.child});
final Widget child;
@override
_PushNotificationsHandlerState createState() =>
_PushNotificationsHandlerState();
}
class _PushNotificationsHandlerState extends State<PushNotificationsHandler> {
bool _loading = false;
Future handleOpenedPushNotification() async {
if (isWeb) {
return;
}
final notification = await FirebaseMessaging.instance.getInitialMessage();
if (notification != null) {
await _handlePushNotification(notification);
}
FirebaseMessaging.onMessageOpenedApp.listen(_handlePushNotification);
}
Future _handlePushNotification(RemoteMessage message) async {
if (_handledMessageIds.contains(message.messageId)) {
return;
}
_handledMessageIds.add(message.messageId);
if (mounted) {
setState(() => _loading = true);
}
try {
final initialPageName = message.data['initialPageName'] as String;
final initialParameterData = getInitialParameterData(message.data);
final parametersBuilder = parametersBuilderMap[initialPageName];
if (parametersBuilder != null) {
final parameterData = await parametersBuilder(initialParameterData);
context.pushNamed(
initialPageName,
pathParameters: parameterData.pathParameters,
extra: parameterData.extra,
);
}
} catch (e) {
print('Error: $e');
} finally {
if (mounted) {
setState(() => _loading = false);
}
}
}
@override
void initState() {
super.initState();
handleOpenedPushNotification();
}
@override
Widget build(BuildContext context) => _loading
? Container(
color: FlutterFlowTheme.of(context).primary,
child: Image.asset(
'assets/images/logo.svg',
fit: BoxFit.cover,
),
)
: widget.child;
}
class ParameterData {
const ParameterData(
{this.requiredParams = const {}, this.allParams = const {}});
final Map<String, String?> requiredParams;
final Map<String, dynamic> allParams;
Map<String, String> get pathParameters => Map.fromEntries(
requiredParams.entries
.where((e) => e.value != null)
.map((e) => MapEntry(e.key, e.value!)),
);
Map<String, dynamic> get extra => Map.fromEntries(
allParams.entries.where((e) => e.value != null),
);
static Future<ParameterData> Function(Map<String, dynamic>) none() =>
(data) async => const ParameterData();
}
final parametersBuilderMap =
<String, Future<ParameterData> Function(Map<String, dynamic>)>{
'LoginPage': (data) async => ParameterData(
allParams: {
'device': getParameter<String>(data, 'device'),
},
),
'ForgotPasswordPage': ParameterData.none(),
'homePage': ParameterData.none(),
'RegisterPage': ParameterData.none(),
'WelcomePage': ParameterData.none(),
'registerVisitorPage': ParameterData.none(),
'scheduleCompleteVisitPage': (data) async => ParameterData(
allParams: {
'visitorStrList': getParameter<String>(data, 'visitorStrList'),
'visitStartDateStr': getParameter<String>(data, 'visitStartDateStr'),
'visitEndDateStr': getParameter<String>(data, 'visitEndDateStr'),
'visitReasonStr': getParameter<String>(data, 'visitReasonStr'),
'visitLevelStr': getParameter<String>(data, 'visitLevelStr'),
'visitTempBol': getParameter<bool>(data, 'visitTempBol'),
'visitObsStr': getParameter<String>(data, 'visitObsStr'),
},
),
'scheduleProvisionalVisitPage': ParameterData.none(),
'onBoardingPage': ParameterData.none(),
'fastPassPage': ParameterData.none(),
'test': ParameterData.none(),
'peopleOnThePropertyPage': ParameterData.none(),
};
Map<String, dynamic> getInitialParameterData(Map<String, dynamic> data) {
try {
final parameterDataStr = data['parameterData'];
if (parameterDataStr == null ||
parameterDataStr is! String ||
parameterDataStr.isEmpty) {
return {};
}
return jsonDecode(parameterDataStr) as Map<String, dynamic>;
} catch (e) {
print('Error parsing parameter data: $e');
return {};
}
}

View File

@ -1,49 +0,0 @@
import 'dart:io' show Platform;
import 'package:cloud_firestore/cloud_firestore.dart';
import '../../auth/firebase_auth/auth_util.dart';
import '../cloud_functions/cloud_functions.dart';
import 'package:flutter/foundation.dart';
import 'package:stream_transform/stream_transform.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
export 'push_notifications_handler.dart';
export 'serialization_util.dart';
class UserTokenInfo {
const UserTokenInfo(this.userPath, this.fcmToken);
final String userPath;
final String fcmToken;
}
Stream<UserTokenInfo> getFcmTokenStream(String userPath) =>
Stream.value(!kIsWeb && (Platform.isIOS || Platform.isAndroid))
.where((shouldGetToken) => shouldGetToken)
.asyncMap<String?>(
(_) => FirebaseMessaging.instance.requestPermission().then(
(settings) => settings.authorizationStatus ==
AuthorizationStatus.authorized
? FirebaseMessaging.instance.getToken()
: null,
))
.switchMap((fcmToken) => Stream.value(fcmToken)
.merge(FirebaseMessaging.instance.onTokenRefresh))
.where((fcmToken) => fcmToken != null && fcmToken.isNotEmpty)
.map((token) => UserTokenInfo(userPath, token!));
final fcmTokenUserStream = authenticatedUserStream
.where((user) => user != null)
.map((user) => user!.reference.path)
.distinct()
.switchMap(getFcmTokenStream)
.map(
(userTokenInfo) => makeCloudCall(
'addFcmToken',
{
'userDocPath': userTokenInfo.userPath,
'fcmToken': userTokenInfo.fcmToken,
'deviceType': Platform.isIOS ? 'iOS' : 'Android',
},
),
);

View File

@ -1,172 +0,0 @@
import 'dart:convert';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import '/backend/backend.dart';
import '/backend/schema/structs/index.dart';
import '../../flutter_flow/lat_lng.dart';
import '../../flutter_flow/place.dart';
import '../../flutter_flow/uploaded_file.dart';
/// SERIALIZATION HELPERS
String dateTimeRangeToString(DateTimeRange dateTimeRange) {
final startStr = dateTimeRange.start.millisecondsSinceEpoch.toString();
final endStr = dateTimeRange.end.millisecondsSinceEpoch.toString();
return '$startStr|$endStr';
}
String placeToString(FFPlace place) => jsonEncode({
'latLng': place.latLng.serialize(),
'name': place.name,
'address': place.address,
'city': place.city,
'state': place.state,
'country': place.country,
'zipCode': place.zipCode,
});
String uploadedFileToString(FFUploadedFile uploadedFile) =>
uploadedFile.serialize();
/// Converts the input value into a value that can be JSON encoded.
dynamic serializeParameter(dynamic value) {
switch (value.runtimeType) {
case DateTime:
return (value as DateTime).millisecondsSinceEpoch;
case DateTimeRange:
return dateTimeRangeToString(value as DateTimeRange);
case LatLng:
return (value as LatLng).serialize();
case Color:
return (value as Color).toCssString();
case FFPlace:
return placeToString(value as FFPlace);
case FFUploadedFile:
return uploadedFileToString(value as FFUploadedFile);
}
if (value is DocumentReference) {
return value.path;
}
if (value is FirestoreRecord) {
return (value as dynamic).reference.path;
}
return value;
}
String serializeParameterData(Map<String, dynamic> parameterData) => jsonEncode(
parameterData.map(
(key, value) => MapEntry(
key,
serializeParameter(value),
),
)..removeWhere((k, v) => v == null),
);
/// END SERIALIZATION HELPERS
/// DESERIALIZATION HELPERS
DateTimeRange? dateTimeRangeFromString(String dateTimeRangeStr) {
final pieces = dateTimeRangeStr.split('|');
if (pieces.length != 2) {
return null;
}
return DateTimeRange(
start: DateTime.fromMillisecondsSinceEpoch(int.parse(pieces.first)),
end: DateTime.fromMillisecondsSinceEpoch(int.parse(pieces.last)),
);
}
LatLng? latLngFromString(String? latLngStr) {
final pieces = latLngStr?.split(',');
if (pieces == null || pieces.length != 2) {
return null;
}
return LatLng(
double.parse(pieces.first.trim()),
double.parse(pieces.last.trim()),
);
}
FFPlace placeFromString(String placeStr) {
final serializedData = jsonDecode(placeStr) as Map<String, dynamic>;
final data = {
'latLng': serializedData.containsKey('latLng')
? latLngFromString(serializedData['latLng'] as String)
: const LatLng(0.0, 0.0),
'name': serializedData['name'] ?? '',
'address': serializedData['address'] ?? '',
'city': serializedData['city'] ?? '',
'state': serializedData['state'] ?? '',
'country': serializedData['country'] ?? '',
'zipCode': serializedData['zipCode'] ?? '',
};
return FFPlace(
latLng: data['latLng'] as LatLng,
name: data['name'] as String,
address: data['address'] as String,
city: data['city'] as String,
state: data['state'] as String,
country: data['country'] as String,
zipCode: data['zipCode'] as String,
);
}
FFUploadedFile uploadedFileFromString(String uploadedFileStr) =>
FFUploadedFile.deserialize(uploadedFileStr);
T? getParameter<T>(Map<String, dynamic> data, String paramName) {
try {
if (!data.containsKey(paramName)) {
return null;
}
final param = data[paramName];
switch (T) {
case String:
return param;
case double:
return param.toDouble();
case DateTime:
return DateTime.fromMillisecondsSinceEpoch(param) as T;
case DateTimeRange:
return dateTimeRangeFromString(param) as T;
case LatLng:
return latLngFromString(param) as T;
case Color:
return fromCssColor(param) as T;
case FFPlace:
return placeFromString(param) as T;
case FFUploadedFile:
return uploadedFileFromString(param) as T;
}
if (param is String) {
return FirebaseFirestore.instance.doc(param) as T;
}
return param;
} catch (e) {
print('Error parsing parameter "$paramName": $e');
return null;
}
}
Future<T?> getDocumentParameter<T>(
Map<String, dynamic> data,
String paramName,
RecordBuilder<T> recordBuilder,
) {
if (!data.containsKey(paramName)) {
return Future.value(null);
}
return FirebaseFirestore.instance
.doc(data[paramName])
.get()
.then((s) => recordBuilder(s));
}
/// END DESERIALIZATION HELPERS

View File

@ -1,4 +1,4 @@
import '/application_components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart';
import '/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -1,4 +1,4 @@
import '/application_components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/custom_functions.dart' as functions;

View File

@ -1,6 +1,6 @@
import '/application_components/molecular_components/option_selection_modal/option_selection_modal_widget.dart';
import '/application_components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart';
import '/application_components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart';
import '/components/molecular_components/option_selection_modal/option_selection_modal_widget.dart';
import '/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart';
import '/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'menu_component_widget.dart' show MenuComponentWidget;
import 'package:flutter/material.dart';

View File

@ -1,5 +1,5 @@
import '/application_components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart';
import '/application_components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart';
import '/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart';
import '/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'menu_component_model.dart';

View File

@ -1,6 +1,6 @@
import '/application_components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/application_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -1,6 +1,6 @@
import '/application_components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/application_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -1,5 +1,5 @@
import '/application_components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/flutter_flow/flutter_flow_drop_down.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -1,4 +1,4 @@
import '/application_components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart';
import '/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart';
import '/flutter_flow/flutter_flow_animations.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -1,5 +1,5 @@
import '/application_components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart';
import '/application_components/organism_components/view_visit_detail/view_visit_detail_widget.dart';
import '/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart';
import '/components/organism_components/view_visit_detail/view_visit_detail_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'visit_details_modal_template_component_widget.dart'
show VisitDetailsModalTemplateComponentWidget;

View File

@ -1,5 +1,5 @@
import '/application_components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart';
import '/application_components/organism_components/view_visit_detail/view_visit_detail_widget.dart';
import '/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart';
import '/components/organism_components/view_visit_detail/view_visit_detail_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'visit_details_modal_template_component_model.dart';

View File

@ -1,6 +1,6 @@
import '/application_components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart';
import '/application_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart';
import '/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -3,21 +3,21 @@ export '/legacy/on_boarding_legacy/login_page/login_page_widget.dart'
show LoginPageWidget;
export '/legacy/on_boarding_legacy/forgot_password_page/forgot_password_page_widget.dart'
show ForgotPasswordPageWidget;
export '/application_pages/home_page/home_page_widget.dart' show HomePageWidget;
export '/pages/home_page/home_page_widget.dart' show HomePageWidget;
export '/legacy/on_boarding_legacy/register_page/register_page_widget.dart'
show RegisterPageWidget;
export '/legacy/on_boarding_legacy/welcome_page/welcome_page_widget.dart'
show WelcomePageWidget;
export '/application_pages/register_visitor_page/register_visitor_page_widget.dart'
export '/pages/register_visitor_page/register_visitor_page_widget.dart'
show RegisterVisitorPageWidget;
export '/application_pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart'
export '/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart'
show ScheduleCompleteVisitPageWidget;
export '/application_pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart'
export '/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart'
show ScheduleProvisionalVisitPageWidget;
export '/application_pages/on_boarding_page/on_boarding_page_widget.dart'
export '/pages/on_boarding_page/on_boarding_page_widget.dart'
show OnBoardingPageWidget;
export '/application_pages/fast_pass_page/fast_pass_page_widget.dart'
export '/pages/fast_pass_page/fast_pass_page_widget.dart'
show FastPassPageWidget;
export '/legacy/test/test_widget.dart' show TestWidget;
export '/application_pages/people_on_the_property_page/people_on_the_property_page_widget.dart'
export '/pages/people_on_the_property_page/people_on_the_property_page_widget.dart'
show PeopleOnThePropertyPageWidget;

View File

@ -1,4 +1,4 @@
import '/application_components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/custom_functions.dart' as functions;

View File

@ -1,5 +1,5 @@
import '/application_components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/custom_code/actions/index.dart' as actions;
import 'login_page_widget.dart' show LoginPageWidget;

View File

@ -1,6 +1,6 @@
import '/application_components/molecular_components/opt_modal/opt_modal_widget.dart';
import '/application_components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/opt_modal/opt_modal_widget.dart';
import '/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -1,6 +1,6 @@
import '/application_components/organism_components/local_profile_component/local_profile_component_widget.dart';
import '/application_components/organism_components/menu_component/menu_component_widget.dart';
import '/application_components/organism_components/message_well_component/message_well_component_widget.dart';
import '/components/organism_components/local_profile_component/local_profile_component_widget.dart';
import '/components/organism_components/menu_component/menu_component_widget.dart';
import '/components/organism_components/message_well_component/message_well_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'home_page_widget.dart' show HomePageWidget;
import 'package:flutter/material.dart';

View File

@ -1,7 +1,7 @@
import '/application_components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/application_components/organism_components/local_profile_component/local_profile_component_widget.dart';
import '/application_components/organism_components/menu_component/menu_component_widget.dart';
import '/application_components/organism_components/message_well_component/message_well_component_widget.dart';
import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/components/organism_components/local_profile_component/local_profile_component_widget.dart';
import '/components/organism_components/menu_component/menu_component_widget.dart';
import '/components/organism_components/message_well_component/message_well_component_widget.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -1,6 +1,6 @@
import '/application_components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart';
import '/application_components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart';
import '/application_components/templates_components/welcome_template_component/welcome_template_component_widget.dart';
import '/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart';
import '/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart';
import '/components/templates_components/welcome_template_component/welcome_template_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'on_boarding_page_widget.dart' show OnBoardingPageWidget;
import 'package:flutter/material.dart';

View File

@ -1,6 +1,6 @@
import '/application_components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart';
import '/application_components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart';
import '/application_components/templates_components/welcome_template_component/welcome_template_component_widget.dart';
import '/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart';
import '/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart';
import '/components/templates_components/welcome_template_component/welcome_template_component_widget.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';

View File

@ -1,5 +1,5 @@
import '/application_components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/flutter_flow/flutter_flow_drop_down.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';

View File

@ -1,9 +1,9 @@
import '/application_components/molecular_components/opt_modal/opt_modal_widget.dart';
import '/application_components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/application_components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart';
import '/application_components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart';
import '/application_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/opt_modal/opt_modal_widget.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart';
import '/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart';
import '/flutter_flow/flutter_flow_drop_down.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';

View File

@ -1,6 +1,6 @@
import '/application_components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/application_components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';

View File

@ -27,9 +27,6 @@ dependencies:
sdk: flutter
auto_size_text: 3.0.0
cached_network_image: 3.3.1
cloud_functions: 4.6.7
cloud_functions_platform_interface: 5.5.18
cloud_functions_web: 4.7.1
collection: 1.18.0
crop_your_image: 1.0.0
data_table_2: 2.5.10
@ -38,12 +35,6 @@ dependencies:
easy_debounce: 2.0.1
equatable: 2.0.5
file_picker: 6.1.1
firebase_core: 2.26.0
firebase_core_platform_interface: 5.0.0
firebase_core_web: 2.11.5
firebase_messaging: 14.7.18
firebase_messaging_platform_interface: 4.5.26
firebase_messaging_web: 3.6.7
flutter_animate: 4.1.1+1
flutter_cache_manager: 3.3.1
flutter_plugin_android_lifecycle: 2.0.17