- App.tsx: full navigation (Auth stack + Main tabs with 5 screens) - Auth: LoginScreen, RegisterScreen, ForgotPasswordScreen - HomeScreen: dashboard with IoT metrics, weather widget, alerts, quick actions, sensors - MapScreen: interactive map with layer toggles (6 layers) - MarketplaceScreen: categories (6), products (5), search - ChatScreen: AI chat with quick prompts (4), bot responses - ProfileScreen: user info, stats, menu (9 items), logout - AlertsScreen: alert list with severity, acknowledge - SensorsScreen: sensor list with type filters (6 types), search - ZonesScreen: zone cards with stats - SettingsScreen: language picker (FR/EN/ES/DE), privacy, about - Stores: iotStore (sensors, zones, alerts), notificationStore, uiStore + i18n - Hooks: useSensors, useAlerts, useNotifications, useLocation - Components: Card, Button, LoadingSpinner, ErrorBoundary, Header - Services: iotService, notificationService (with axios API client) - Utils: formatters (temp, AQI, noise, dates), validators (email, password, IBAN) - Theme: colors.ts with full design system (Blue Ocean palette) - Ditto: fixed MongoDB connection, new JWT secrets, official gateway image
84 lines
3.0 KiB
Objective-C
84 lines
3.0 KiB
Objective-C
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import <React/RCTJavaScriptLoader.h>
|
|
|
|
@class RCTBridge;
|
|
@protocol RCTBridgeModule;
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@protocol RCTBridgeDelegate <NSObject>
|
|
|
|
/**
|
|
* The location of the JavaScript source file. When running from the packager
|
|
* this should be an absolute URL, e.g. `http://localhost:8081/index.ios.bundle`.
|
|
* When running from a locally bundled JS file, this should be a `file://` url
|
|
* pointing to a path inside the app resources, e.g. `file://.../main.jsbundle`.
|
|
*/
|
|
- (NSURL *__nullable)sourceURLForBridge:(RCTBridge *)bridge;
|
|
|
|
@optional
|
|
|
|
/**
|
|
* The bridge initializes any registered RCTBridgeModules automatically, however
|
|
* if you wish to instantiate your own module instances, you can return them
|
|
* from this method.
|
|
*
|
|
* Note: You should always return a new instance for each call, rather than
|
|
* returning the same instance each time the bridge is reloaded. Module instances
|
|
* should not be shared between bridges, and this may cause unexpected behavior.
|
|
*
|
|
* It is also possible to override standard modules with your own implementations
|
|
* by returning a class with the same `moduleName` from this method, but this is
|
|
* not recommended in most cases - if the module methods and behavior do not
|
|
* match exactly, it may lead to bugs or crashes.
|
|
*/
|
|
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge;
|
|
|
|
/**
|
|
* Configure whether the JSCExecutor created should use the system JSC API or
|
|
* alternative hooks provided. When returning YES from this method, you must have
|
|
* previously called facebook::react::setCustomJSCWrapper.
|
|
*
|
|
* @experimental
|
|
*/
|
|
- (BOOL)shouldBridgeUseCustomJSC:(RCTBridge *)bridge;
|
|
|
|
/**
|
|
* The bridge will call this method when a module been called from JS
|
|
* cannot be found among registered modules.
|
|
* It should return YES if the module with name 'moduleName' was registered
|
|
* in the implementation, and the system must attempt to look for it again among registered.
|
|
* If the module was not registered, return NO to prevent further searches.
|
|
*/
|
|
- (BOOL)bridge:(RCTBridge *)bridge didNotFindModule:(NSString *)moduleName;
|
|
|
|
/**
|
|
* The bridge will automatically attempt to load the JS source code from the
|
|
* location specified by the `sourceURLForBridge:` method, however, if you want
|
|
* to handle loading the JS yourself, you can do so by implementing this method.
|
|
*/
|
|
- (void)loadSourceForBridge:(RCTBridge *)bridge
|
|
onProgress:(RCTSourceLoadProgressBlock)onProgress
|
|
onComplete:(RCTSourceLoadBlock)loadCallback;
|
|
|
|
/**
|
|
* Similar to loadSourceForBridge:onProgress:onComplete: but without progress
|
|
* reporting.
|
|
*/
|
|
- (void)loadSourceForBridge:(RCTBridge *)bridge withBlock:(RCTSourceLoadBlock)loadCallback;
|
|
|
|
/**
|
|
* Retrieve the list of lazy-native-modules names for the given bridge.
|
|
*/
|
|
- (NSDictionary<NSString *, Class> *)extraLazyModuleClassesForBridge:(RCTBridge *)bridge;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|