- 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
73 lines
3.6 KiB
Objective-C
73 lines
3.6 KiB
Objective-C
#import <Foundation/Foundation.h>
|
|
#import <RNReanimated/LayoutAnimationType.h>
|
|
#import <RNReanimated/REANodesManager.h>
|
|
#import <RNReanimated/REASnapshot.h>
|
|
#import <RNReanimated/REAUIKit.h>
|
|
#import <React/RCTUIManager.h>
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
typedef NS_ENUM(NSInteger, ViewState) {
|
|
Inactive,
|
|
Appearing,
|
|
Disappearing,
|
|
Layout,
|
|
ToRemove,
|
|
};
|
|
|
|
typedef BOOL (^REAHasAnimationBlock)(NSNumber *_Nonnull tag, LayoutAnimationType type);
|
|
typedef BOOL (^REAShouldAnimateExitingBlock)(NSNumber *_Nonnull tag, BOOL shouldAnimate);
|
|
typedef void (
|
|
^REAAnimationStartingBlock)(NSNumber *_Nonnull tag, LayoutAnimationType type, NSDictionary *_Nonnull yogaValues);
|
|
typedef void (^REAAnimationRemovingBlock)(NSNumber *_Nonnull tag);
|
|
typedef void (^REASharedTransitionRemovingBlock)(NSNumber *_Nonnull tag);
|
|
#ifndef NDEBUG
|
|
typedef void (^REACheckDuplicateSharedTagBlock)(REAUIView *view, NSNumber *_Nonnull viewTag);
|
|
#endif
|
|
typedef void (^REACancelAnimationBlock)(NSNumber *_Nonnull tag);
|
|
typedef NSNumber *_Nullable (^REAFindPrecedingViewTagForTransitionBlock)(NSNumber *_Nonnull tag);
|
|
typedef int (^REATreeVisitor)(id<RCTComponent>);
|
|
BOOL REANodeFind(id<RCTComponent> view, int (^block)(id<RCTComponent>));
|
|
|
|
@interface REAAnimationsManager : NSObject
|
|
|
|
- (instancetype)initWithUIManager:(RCTUIManager *)uiManager;
|
|
- (void)setAnimationStartingBlock:(REAAnimationStartingBlock)startAnimation;
|
|
- (void)setHasAnimationBlock:(REAHasAnimationBlock)hasAnimation;
|
|
- (void)setShouldAnimateExitingBlock:(REAShouldAnimateExitingBlock)shouldAnimateExiting;
|
|
- (void)setAnimationRemovingBlock:(REAAnimationRemovingBlock)clearAnimation;
|
|
- (void)setSharedTransitionRemovingBlock:(REASharedTransitionRemovingBlock)clearSharedTransition;
|
|
#ifndef NDEBUG
|
|
- (void)setCheckDuplicateSharedTagBlock:(REACheckDuplicateSharedTagBlock)checkDuplicateSharedTag;
|
|
#endif
|
|
- (void)progressLayoutAnimationWithStyle:(NSDictionary *_Nonnull)newStyle
|
|
forTag:(NSNumber *_Nonnull)tag
|
|
isSharedTransition:(BOOL)isSharedTransition;
|
|
- (void)setFindPrecedingViewTagForTransitionBlock:
|
|
(REAFindPrecedingViewTagForTransitionBlock)findPrecedingViewTagForTransition;
|
|
- (void)setCancelAnimationBlock:(REACancelAnimationBlock)animationCancellingBlock;
|
|
- (void)endLayoutAnimationForTag:(NSNumber *_Nonnull)tag removeView:(BOOL)removeView;
|
|
- (void)endAnimationsRecursive:(REAUIView *)view;
|
|
- (void)invalidate;
|
|
- (void)viewDidMount:(REAUIView *)view withBeforeSnapshot:(REASnapshot *)snapshot withNewFrame:(CGRect)frame;
|
|
- (REASnapshot *)prepareSnapshotBeforeMountForView:(REAUIView *)view;
|
|
- (void)removeAnimationsFromSubtree:(REAUIView *)view;
|
|
- (void)reattachAnimatedChildren:(NSArray<id<RCTComponent>> *)children
|
|
toContainer:(id<RCTComponent>)container
|
|
atIndices:(NSArray<NSNumber *> *)indices;
|
|
- (void)onViewCreate:(REAUIView *)view after:(REASnapshot *)after;
|
|
- (void)onViewUpdate:(REAUIView *)view before:(REASnapshot *)before after:(REASnapshot *)after;
|
|
- (void)viewsDidLayout;
|
|
- (NSMutableDictionary *)prepareDataForLayoutAnimatingWorklet:(NSMutableDictionary *)currentValues
|
|
targetValues:(NSMutableDictionary *)targetValues;
|
|
- (REAUIView *)viewForTag:(NSNumber *)tag;
|
|
- (BOOL)hasAnimationForTag:(NSNumber *)tag type:(LayoutAnimationType)type;
|
|
- (void)clearAnimationConfigForTag:(NSNumber *)tag;
|
|
- (void)clearSharedTransitionConfigForTag:(NSNumber *)tag;
|
|
- (void)startAnimationForTag:(NSNumber *)tag type:(LayoutAnimationType)type yogaValues:(NSDictionary *)yogaValues;
|
|
- (void)onScreenRemoval:(REAUIView *)screen stack:(REAUIView *)stack;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|