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

74 lines
2.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = addCallSuperHelper;
var _core = require("@babel/core");
const helper = _core.template.statement`
function CALL_SUPER(
_this,
derived,
args,
) {
function isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
// core-js@3
if (Reflect.construct.sham) return false;
// Proxy can't be polyfilled. Every browser implemented
// proxies before or at the same time as Reflect.construct,
// so if they support Proxy they also support Reflect.construct.
if (typeof Proxy === "function") return true;
// Since Reflect.construct can't be properly polyfilled, some
// implementations (e.g. core-js@2) don't set the correct internal slots.
// Those polyfills don't allow us to subclass built-ins, so we need to
// use our fallback implementation.
try {
// If the internal slots aren't set, this throws an error similar to
// TypeError: this is not a Boolean object.
return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}),);
} catch (e) {
return false;
}
}
// Super
derived = GET_PROTOTYPE_OF(derived);
return POSSIBLE_CONSTRUCTOR_RETURN(
_this,
isNativeReflectConstruct()
? // NOTE: This doesn't work if this.__proto__.constructor has been modified.
Reflect.construct(
derived,
args || [],
GET_PROTOTYPE_OF(_this).constructor,
)
: derived.apply(_this, args),
);
}
`;
const helperIDs = new WeakMap();
function addCallSuperHelper(file) {
if (helperIDs.has(file)) {
return (_core.types.cloneNode || _core.types.clone)(helperIDs.get(file));
}
try {
return file.addHelper("callSuper");
} catch (_unused) {}
const id = file.scope.generateUidIdentifier("callSuper");
helperIDs.set(file, id);
const fn = helper({
CALL_SUPER: id,
GET_PROTOTYPE_OF: file.addHelper("getPrototypeOf"),
POSSIBLE_CONSTRUCTOR_RETURN: file.addHelper("possibleConstructorReturn")
});
const [fnPath] = file.path.unshiftContainer("body", [fn]);
file.scope.registerDeclaration(fnPath);
return _core.types.cloneNode(id);
}
//# sourceMappingURL=inline-callSuper-helpers.js.map