Files
Eric FELIXINE e30ae8ed09 feat(smart-app): implement complete mobile app MVP
- 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
2026-06-01 18:00:35 -04:00

138 lines
4.2 KiB
Objective-C

/**
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
*
* Do not edit this file as changes may cause incorrect behavior and will be lost
* once the code is regenerated.
*
* @generated by codegen project: GenerateModuleObjCpp
*
* We create an umbrella header (and corresponding implementation) here since
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
* must have a single output. More files => more genrule()s => slower builds.
*/
#ifndef __cplusplus
#error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
#endif
// Avoid multiple includes of RNMapsSpecs symbols
#ifndef RNMapsSpecs_H
#define RNMapsSpecs_H
#import <Foundation/Foundation.h>
#import <RCTRequired/RCTRequired.h>
#import <RCTTypeSafety/RCTConvertHelpers.h>
#import <RCTTypeSafety/RCTTypedModuleConstants.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTCxxConvert.h>
#import <React/RCTManagedPointer.h>
#import <ReactCommon/RCTTurboModule.h>
#import <optional>
#import <vector>
NS_ASSUME_NONNULL_BEGIN
namespace JS {
namespace NativeAirMapsModule {
struct LatLng {
double latitude() const;
double longitude() const;
LatLng(NSDictionary *const v) : _v(v) {}
private:
NSDictionary *_v;
};
}
}
@interface RCTCxxConvert (NativeAirMapsModule_LatLng)
+ (RCTManagedPointer *)JS_NativeAirMapsModule_LatLng:(id)json;
@end
namespace JS {
namespace NativeAirMapsModule {
struct Point {
double x() const;
double y() const;
Point(NSDictionary *const v) : _v(v) {}
private:
NSDictionary *_v;
};
}
}
@interface RCTCxxConvert (NativeAirMapsModule_Point)
+ (RCTManagedPointer *)JS_NativeAirMapsModule_Point:(id)json;
@end
@protocol NativeAirMapsModuleSpec <RCTBridgeModule, RCTTurboModule>
- (void)getCamera:(double)tag
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject;
- (void)getMarkersFrames:(double)tag
onlyVisible:(BOOL)onlyVisible
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject;
- (void)getMapBoundaries:(double)tag
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject;
- (void)takeSnapshot:(double)tag
config:(NSString *)config
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject;
- (void)getAddressFromCoordinates:(double)tag
coordinate:(JS::NativeAirMapsModule::LatLng &)coordinate
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject;
- (void)getPointForCoordinate:(double)tag
coordinate:(JS::NativeAirMapsModule::LatLng &)coordinate
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject;
- (void)getCoordinateForPoint:(double)tag
point:(JS::NativeAirMapsModule::Point &)point
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject;
@end
@interface NativeAirMapsModuleSpecBase : NSObject {
@protected
facebook::react::EventEmitterCallback _eventEmitterCallback;
}
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;
@end
namespace facebook::react {
/**
* ObjC++ class for module 'NativeAirMapsModule'
*/
class JSI_EXPORT NativeAirMapsModuleSpecJSI : public ObjCTurboModule {
public:
NativeAirMapsModuleSpecJSI(const ObjCTurboModule::InitParams &params);
};
} // namespace facebook::react
inline double JS::NativeAirMapsModule::LatLng::latitude() const
{
id const p = _v[@"latitude"];
return RCTBridgingToDouble(p);
}
inline double JS::NativeAirMapsModule::LatLng::longitude() const
{
id const p = _v[@"longitude"];
return RCTBridgingToDouble(p);
}
inline double JS::NativeAirMapsModule::Point::x() const
{
id const p = _v[@"x"];
return RCTBridgingToDouble(p);
}
inline double JS::NativeAirMapsModule::Point::y() const
{
id const p = _v[@"y"];
return RCTBridgingToDouble(p);
}
NS_ASSUME_NONNULL_END
#endif // RNMapsSpecs_H