UNPKG

expo-calendar

Version:

Provides an API for interacting with the device's system calendars, events, reminders, and associated records.

36 lines (35 loc) 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const config_plugins_1 = require("expo/config-plugins"); const pkg = require('../../package.json'); const CALENDARS_USAGE = 'Allow $(PRODUCT_NAME) to access your calendars'; const CALENDARS_WRITE_ONLY_USAGE = 'Allow $(PRODUCT_NAME) to add events to your calendars'; const REMINDERS_USAGE = 'Allow $(PRODUCT_NAME) to access your reminders'; const withCalendar = (config, { calendarPermission, writeOnlyCalendarPermission, remindersPermission, writeOnlyAccess } = {}) => { const defaultDescriptions = { NSCalendarsUsageDescription: CALENDARS_USAGE, NSRemindersUsageDescription: REMINDERS_USAGE, NSRemindersFullAccessUsageDescription: REMINDERS_USAGE, ...(writeOnlyAccess ? { NSCalendarsWriteOnlyAccessUsageDescription: CALENDARS_WRITE_ONLY_USAGE } : { NSCalendarsFullAccessUsageDescription: CALENDARS_USAGE, }), }; const customDescriptions = { NSCalendarsUsageDescription: calendarPermission, NSRemindersUsageDescription: remindersPermission, NSRemindersFullAccessUsageDescription: remindersPermission, ...(writeOnlyAccess ? { NSCalendarsWriteOnlyAccessUsageDescription: writeOnlyCalendarPermission } : { NSCalendarsFullAccessUsageDescription: calendarPermission, }), }; config_plugins_1.IOSConfig.Permissions.createPermissionsPlugin(defaultDescriptions)(config, customDescriptions); return config_plugins_1.AndroidConfig.Permissions.withPermissions(config, [ 'android.permission.READ_CALENDAR', 'android.permission.WRITE_CALENDAR', ]); }; exports.default = (0, config_plugins_1.createRunOncePlugin)(withCalendar, pkg.name, pkg.version);