- 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
210 lines
6.7 KiB
C++
210 lines
6.7 KiB
C++
#include "NativeReanimatedModuleSpec.h"
|
|
|
|
#include <utility>
|
|
|
|
#define SPEC_PREFIX(FN_NAME) __hostFunction_NativeReanimatedModuleSpec_##FN_NAME
|
|
|
|
namespace reanimated {
|
|
|
|
// SharedValue
|
|
|
|
static jsi::Value SPEC_PREFIX(makeShareableClone)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->makeShareableClone(
|
|
rt, std::move(args[0]), std::move(args[1]), std::move(args[2]));
|
|
}
|
|
|
|
// scheduler
|
|
|
|
static jsi::Value SPEC_PREFIX(scheduleOnUI)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->scheduleOnUI(rt, std::move(args[0]));
|
|
return jsi::Value::undefined();
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(executeOnUIRuntimeSync)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->executeOnUIRuntimeSync(rt, std::move(args[0]));
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(createWorkletRuntime)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->createWorkletRuntime(rt, std::move(args[0]), std::move(args[1]));
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(scheduleOnRuntime)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->scheduleOnRuntime(rt, std::move(args[0]), std::move(args[1]));
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(registerEventHandler)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->registerEventHandler(
|
|
rt, std::move(args[0]), std::move(args[1]), std::move(args[2]));
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(unregisterEventHandler)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->unregisterEventHandler(rt, std::move(args[0]));
|
|
return jsi::Value::undefined();
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(getViewProp)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->getViewProp(
|
|
rt, std::move(args[0]), std::move(args[1]), std::move(args[2]));
|
|
return jsi::Value::undefined();
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(enableLayoutAnimations)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->enableLayoutAnimations(rt, std::move(args[0]));
|
|
return jsi::Value::undefined();
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(registerSensor)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->registerSensor(
|
|
rt,
|
|
std::move(args[0]),
|
|
std::move(args[1]),
|
|
std::move(args[2]),
|
|
std::move(args[3]));
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(unregisterSensor)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->unregisterSensor(rt, std::move(args[0]));
|
|
return jsi::Value::undefined();
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(configureProps)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->configureProps(rt, std::move(args[0]), std::move(args[1]));
|
|
return jsi::Value::undefined();
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(subscribeForKeyboardEvents)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->subscribeForKeyboardEvents(rt, std::move(args[0]), std::move(args[1]));
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(unsubscribeFromKeyboardEvents)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->unsubscribeFromKeyboardEvents(rt, std::move(args[0]));
|
|
return jsi::Value::undefined();
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(configureLayoutAnimationBatch)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->configureLayoutAnimationBatch(rt, std::move(args[0]));
|
|
}
|
|
|
|
static jsi::Value SPEC_PREFIX(setShouldAnimateExiting)(
|
|
jsi::Runtime &rt,
|
|
TurboModule &turboModule,
|
|
const jsi::Value *args,
|
|
size_t) {
|
|
static_cast<NativeReanimatedModuleSpec *>(&turboModule)
|
|
->setShouldAnimateExiting(rt, std::move(args[0]), std::move(args[1]));
|
|
return jsi::Value::undefined();
|
|
}
|
|
|
|
NativeReanimatedModuleSpec::NativeReanimatedModuleSpec(
|
|
const std::shared_ptr<CallInvoker> &jsInvoker)
|
|
: TurboModule("NativeReanimated", jsInvoker) {
|
|
methodMap_["makeShareableClone"] =
|
|
MethodMetadata{2, SPEC_PREFIX(makeShareableClone)};
|
|
|
|
methodMap_["scheduleOnUI"] = MethodMetadata{1, SPEC_PREFIX(scheduleOnUI)};
|
|
methodMap_["executeOnUIRuntimeSync"] =
|
|
MethodMetadata{1, SPEC_PREFIX(executeOnUIRuntimeSync)};
|
|
methodMap_["createWorkletRuntime"] =
|
|
MethodMetadata{2, SPEC_PREFIX(createWorkletRuntime)};
|
|
methodMap_["scheduleOnRuntime"] =
|
|
MethodMetadata{2, SPEC_PREFIX(scheduleOnRuntime)};
|
|
|
|
methodMap_["registerEventHandler"] =
|
|
MethodMetadata{3, SPEC_PREFIX(registerEventHandler)};
|
|
methodMap_["unregisterEventHandler"] =
|
|
MethodMetadata{1, SPEC_PREFIX(unregisterEventHandler)};
|
|
|
|
methodMap_["getViewProp"] = MethodMetadata{3, SPEC_PREFIX(getViewProp)};
|
|
methodMap_["enableLayoutAnimations"] =
|
|
MethodMetadata{2, SPEC_PREFIX(enableLayoutAnimations)};
|
|
methodMap_["registerSensor"] = MethodMetadata{4, SPEC_PREFIX(registerSensor)};
|
|
methodMap_["unregisterSensor"] =
|
|
MethodMetadata{1, SPEC_PREFIX(unregisterSensor)};
|
|
methodMap_["configureProps"] = MethodMetadata{2, SPEC_PREFIX(configureProps)};
|
|
methodMap_["subscribeForKeyboardEvents"] =
|
|
MethodMetadata{2, SPEC_PREFIX(subscribeForKeyboardEvents)};
|
|
methodMap_["unsubscribeFromKeyboardEvents"] =
|
|
MethodMetadata{1, SPEC_PREFIX(unsubscribeFromKeyboardEvents)};
|
|
|
|
methodMap_["configureLayoutAnimationBatch"] =
|
|
MethodMetadata{1, SPEC_PREFIX(configureLayoutAnimationBatch)};
|
|
methodMap_["setShouldAnimateExitingForTag"] =
|
|
MethodMetadata{2, SPEC_PREFIX(setShouldAnimateExiting)};
|
|
}
|
|
} // namespace reanimated
|