Files
smart-city-digital-twin-mar…/smart-app-city/frontend/node_modules/expo-notifications/build/NotificationPermissions.js
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

79 lines
3.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { createPermissionHook, Platform, UnavailabilityError } from 'expo-modules-core';
import NotificationPermissionsModule from './NotificationPermissionsModule';
/**
* Calling this function checks current permissions settings related to notifications.
* It lets you verify whether the app is currently allowed to display alerts, play sounds, etc.
* There is no user-facing effect of calling this.
* @return It returns a `Promise` resolving to an object represents permission settings ([`NotificationPermissionsStatus`](#notificationpermissionsstatus)).
* On iOS, make sure you [properly interpret the permissions response](#interpret-the-ios-permissions-response).
* @example Check if the app is allowed to send any type of notifications (interrupting and non-interruptingprovisional on iOS).
* ```ts
* import * as Notifications from 'expo-notifications';
*
* export async function allowsNotificationsAsync() {
* const settings = await Notifications.getPermissionsAsync();
* return (
* settings.granted || settings.ios?.status === Notifications.IosAuthorizationStatus.PROVISIONAL
* );
* }
* ```
* @header permissions
*/
export async function getPermissionsAsync() {
if (!NotificationPermissionsModule.getPermissionsAsync) {
throw new UnavailabilityError('Notifications', 'getPermissionsAsync');
}
return await NotificationPermissionsModule.getPermissionsAsync();
}
/**
* Prompts the user for notification permissions according to request. **Request defaults to asking the user to allow displaying alerts,
* setting badge count and playing sounds**.
* @param permissions An object representing configuration for the request scope.
* @return It returns a Promise resolving to an object represents permission settings ([`NotificationPermissionsStatus`](#notificationpermissionsstatus)).
* On iOS, make sure you [properly interpret the permissions response](#interpret-the-ios-permissions-response).
* @example Prompts the user to allow the app to show alerts, play sounds, set badge count and let Siri read out messages through AirPods.
* ```ts
* import * as Notifications from 'expo-notifications';
*
* export function requestPermissionsAsync() {
* return await Notifications.requestPermissionsAsync({
* ios: {
* allowAlert: true,
* allowBadge: true,
* allowSound: true,
* allowAnnouncements: true,
* },
* });
* }
* ```
* @header permissions
*/
export async function requestPermissionsAsync(permissions) {
if (!NotificationPermissionsModule.requestPermissionsAsync) {
throw new UnavailabilityError('Notifications', 'requestPermissionsAsync');
}
const requestedPermissions = permissions ?? {
ios: {
allowAlert: true,
allowBadge: true,
allowSound: true,
},
};
const requestedPlatformPermissions = requestedPermissions[Platform.OS];
return await NotificationPermissionsModule.requestPermissionsAsync(requestedPlatformPermissions);
}
// @needsAudit
/**
* Check or request permissions to send and receive push notifications.
* This uses both `requestPermissionsAsync` and `getPermissionsAsync` to interact with the permissions.
* @example
* ```ts
* const [permissionResponse, requestPermission] = Notifications.usePermissions();
* ```
* @header permission
*/
export const usePermissions = createPermissionHook({
requestMethod: requestPermissionsAsync,
getMethod: getPermissionsAsync,
});
//# sourceMappingURL=NotificationPermissions.js.map