- 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
111 lines
2.9 KiB
C++
111 lines
2.9 KiB
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#ifdef ANDROID
|
|
#include "TurboModule.h"
|
|
#else
|
|
#include <ReactCommon/TurboModule.h>
|
|
#endif
|
|
|
|
#include <ReactCommon/CallInvoker.h>
|
|
|
|
using namespace facebook;
|
|
using namespace react;
|
|
|
|
namespace reanimated {
|
|
|
|
class JSI_EXPORT NativeReanimatedModuleSpec : public TurboModule {
|
|
protected:
|
|
explicit NativeReanimatedModuleSpec(
|
|
const std::shared_ptr<CallInvoker> &jsInvoker);
|
|
|
|
public:
|
|
// SharedValue
|
|
virtual jsi::Value makeShareableClone(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &value,
|
|
const jsi::Value &shouldRetainRemote,
|
|
const jsi::Value &nativeStateSource) = 0;
|
|
|
|
// Scheduling
|
|
virtual void scheduleOnUI(jsi::Runtime &rt, const jsi::Value &worklet) = 0;
|
|
virtual jsi::Value executeOnUIRuntimeSync(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &worklet) = 0;
|
|
|
|
// Worklet runtime
|
|
virtual jsi::Value createWorkletRuntime(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &name,
|
|
const jsi::Value &initializer) = 0;
|
|
virtual jsi::Value scheduleOnRuntime(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &workletRuntimeValue,
|
|
const jsi::Value &shareableWorkletValue) = 0;
|
|
|
|
// events
|
|
virtual jsi::Value registerEventHandler(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &worklet,
|
|
const jsi::Value &eventName,
|
|
const jsi::Value &emitterReactTag) = 0;
|
|
virtual void unregisterEventHandler(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value ®istrationId) = 0;
|
|
|
|
// views
|
|
virtual jsi::Value getViewProp(
|
|
jsi::Runtime &rt,
|
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
const jsi::Value &shadowNodeWrapper,
|
|
#else
|
|
const jsi::Value &viewTag,
|
|
#endif
|
|
const jsi::Value &propName,
|
|
const jsi::Value &callback) = 0;
|
|
|
|
// sensors
|
|
virtual jsi::Value registerSensor(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &sensorType,
|
|
const jsi::Value &interval,
|
|
const jsi::Value &iosReferenceFrame,
|
|
const jsi::Value &sensorDataContainer) = 0;
|
|
virtual void unregisterSensor(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &sensorId) = 0;
|
|
|
|
// keyboard
|
|
virtual jsi::Value subscribeForKeyboardEvents(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &keyboardEventContainer,
|
|
const jsi::Value &isStatusBarTranslucent) = 0;
|
|
virtual void unsubscribeFromKeyboardEvents(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &listenerId) = 0;
|
|
|
|
// other
|
|
virtual jsi::Value enableLayoutAnimations(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &config) = 0;
|
|
virtual jsi::Value configureProps(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &uiProps,
|
|
const jsi::Value &nativeProps) = 0;
|
|
|
|
// layout animations
|
|
virtual jsi::Value configureLayoutAnimationBatch(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &layoutAnimationsBatch) = 0;
|
|
|
|
virtual void setShouldAnimateExiting(
|
|
jsi::Runtime &rt,
|
|
const jsi::Value &viewTag,
|
|
const jsi::Value &shouldAnimate) = 0;
|
|
};
|
|
|
|
} // namespace reanimated
|