- 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
123 lines
4.7 KiB
JavaScript
123 lines
4.7 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.managePanProps = managePanProps;
|
|
exports.PanGestureHandler = exports.panHandlerName = exports.panGestureHandlerCustomNativeProps = exports.panGestureHandlerProps = void 0;
|
|
|
|
var _createHandler = _interopRequireDefault(require("./createHandler"));
|
|
|
|
var _gestureHandlerCommon = require("./gestureHandlerCommon");
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
const panGestureHandlerProps = ['activeOffsetY', 'activeOffsetX', 'failOffsetY', 'failOffsetX', 'minDist', 'minVelocity', 'minVelocityX', 'minVelocityY', 'minPointers', 'maxPointers', 'avgTouches', 'enableTrackpadTwoFingerGesture', 'activateAfterLongPress'];
|
|
exports.panGestureHandlerProps = panGestureHandlerProps;
|
|
const panGestureHandlerCustomNativeProps = ['activeOffsetYStart', 'activeOffsetYEnd', 'activeOffsetXStart', 'activeOffsetXEnd', 'failOffsetYStart', 'failOffsetYEnd', 'failOffsetXStart', 'failOffsetXEnd'];
|
|
exports.panGestureHandlerCustomNativeProps = panGestureHandlerCustomNativeProps;
|
|
const panHandlerName = 'PanGestureHandler';
|
|
exports.panHandlerName = panHandlerName;
|
|
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
|
|
const PanGestureHandler = (0, _createHandler.default)({
|
|
name: panHandlerName,
|
|
allowedProps: [..._gestureHandlerCommon.baseGestureHandlerProps, ...panGestureHandlerProps],
|
|
config: {},
|
|
transformProps: managePanProps,
|
|
customNativeProps: panGestureHandlerCustomNativeProps
|
|
});
|
|
exports.PanGestureHandler = PanGestureHandler;
|
|
|
|
function validatePanGestureHandlerProps(props) {
|
|
if (Array.isArray(props.activeOffsetX) && (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)) {
|
|
throw new Error(`First element of activeOffsetX should be negative, a the second one should be positive`);
|
|
}
|
|
|
|
if (Array.isArray(props.activeOffsetY) && (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)) {
|
|
throw new Error(`First element of activeOffsetY should be negative, a the second one should be positive`);
|
|
}
|
|
|
|
if (Array.isArray(props.failOffsetX) && (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)) {
|
|
throw new Error(`First element of failOffsetX should be negative, a the second one should be positive`);
|
|
}
|
|
|
|
if (Array.isArray(props.failOffsetY) && (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)) {
|
|
throw new Error(`First element of failOffsetY should be negative, a the second one should be positive`);
|
|
}
|
|
|
|
if (props.minDist && (props.failOffsetX || props.failOffsetY)) {
|
|
throw new Error(`It is not supported to use minDist with failOffsetX or failOffsetY, use activeOffsetX and activeOffsetY instead`);
|
|
}
|
|
|
|
if (props.minDist && (props.activeOffsetX || props.activeOffsetY)) {
|
|
throw new Error(`It is not supported to use minDist with activeOffsetX or activeOffsetY`);
|
|
}
|
|
}
|
|
|
|
function transformPanGestureHandlerProps(props) {
|
|
const res = { ...props
|
|
};
|
|
|
|
if (props.activeOffsetX !== undefined) {
|
|
delete res.activeOffsetX;
|
|
|
|
if (Array.isArray(props.activeOffsetX)) {
|
|
res.activeOffsetXStart = props.activeOffsetX[0];
|
|
res.activeOffsetXEnd = props.activeOffsetX[1];
|
|
} else if (props.activeOffsetX < 0) {
|
|
res.activeOffsetXStart = props.activeOffsetX;
|
|
} else {
|
|
res.activeOffsetXEnd = props.activeOffsetX;
|
|
}
|
|
}
|
|
|
|
if (props.activeOffsetY !== undefined) {
|
|
delete res.activeOffsetY;
|
|
|
|
if (Array.isArray(props.activeOffsetY)) {
|
|
res.activeOffsetYStart = props.activeOffsetY[0];
|
|
res.activeOffsetYEnd = props.activeOffsetY[1];
|
|
} else if (props.activeOffsetY < 0) {
|
|
res.activeOffsetYStart = props.activeOffsetY;
|
|
} else {
|
|
res.activeOffsetYEnd = props.activeOffsetY;
|
|
}
|
|
}
|
|
|
|
if (props.failOffsetX !== undefined) {
|
|
delete res.failOffsetX;
|
|
|
|
if (Array.isArray(props.failOffsetX)) {
|
|
res.failOffsetXStart = props.failOffsetX[0];
|
|
res.failOffsetXEnd = props.failOffsetX[1];
|
|
} else if (props.failOffsetX < 0) {
|
|
res.failOffsetXStart = props.failOffsetX;
|
|
} else {
|
|
res.failOffsetXEnd = props.failOffsetX;
|
|
}
|
|
}
|
|
|
|
if (props.failOffsetY !== undefined) {
|
|
delete res.failOffsetY;
|
|
|
|
if (Array.isArray(props.failOffsetY)) {
|
|
res.failOffsetYStart = props.failOffsetY[0];
|
|
res.failOffsetYEnd = props.failOffsetY[1];
|
|
} else if (props.failOffsetY < 0) {
|
|
res.failOffsetYStart = props.failOffsetY;
|
|
} else {
|
|
res.failOffsetYEnd = props.failOffsetY;
|
|
}
|
|
}
|
|
|
|
return res;
|
|
}
|
|
|
|
function managePanProps(props) {
|
|
if (__DEV__) {
|
|
validatePanGestureHandlerProps(props);
|
|
}
|
|
|
|
return transformPanGestureHandlerProps(props);
|
|
}
|
|
//# sourceMappingURL=PanGestureHandler.js.map
|