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

88 lines
2.2 KiB
JavaScript

/**
* 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.
*
* @flow strict
* @format
*/
/**
* `global` is a object containing all the global variables for React Native.
*
* NOTE: Consider cross-platform as well as JS environments compatibility
* when defining the types here. Consider both presence (`?`) as well as
* writeability (`+`) when defining types.
*/
declare var global: {
// setUpGlobals
+window: typeof global,
+self: typeof global,
+process: {
+env: {
+NODE_ENV: 'development' | 'production',
},
+argv?: $ReadOnlyArray<string>,
},
// setUpPerformance
+performance: Performance,
// setUpXHR
+XMLHttpRequest: typeof XMLHttpRequest,
+FormData: typeof FormData,
+fetch: typeof fetch,
+Headers: typeof Headers,
+Request: typeof Request,
+Response: typeof Response,
+WebSocket: typeof WebSocket,
+Blob: typeof Blob,
+File: typeof File,
+FileReader: typeof FileReader,
+URL: typeof URL,
+URLSearchParams: typeof URLSearchParams,
+AbortController: typeof AbortController,
+AbortSignal: typeof AbortSignal,
// setUpAlert
+alert: typeof alert,
// setUpNavigator
+navigator: {
+product: 'ReactNative',
+appName?: ?string,
...
},
// setUpTimers
+setInterval: typeof setInterval,
+clearInterval: typeof clearInterval,
+setTimeout: typeof setTimeout,
+clearTimeout: typeof clearTimeout,
+requestAnimationFrame: typeof requestAnimationFrame,
+cancelAnimationFrame: typeof cancelAnimationFrame,
+requestIdleCallback: typeof requestIdleCallback,
+cancelIdleCallback: typeof cancelIdleCallback,
+queueMicrotask: typeof queueMicrotask,
+setImmediate: typeof setImmediate,
+clearImmediate: typeof clearImmediate,
// Polyfills
+console: typeof console,
// JavaScript environments specific
+HermesInternal: ?$HermesInternalType,
// Internal-specific
+__DEV__?: boolean,
+RN$Bridgeless?: boolean,
// setupDOM
+DOMRect: typeof DOMRect,
+DOMRectReadOnly: typeof DOMRectReadOnly,
// Undeclared properties are implicitly `any`.
[string | symbol]: any,
};