Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async function addIOS(event: Event) {
let status = await CalendarEventsIOS.authorizationStatus();
if (status === 'undetermined') {
try {
// TODO(localization)
await OkCancelAlert(
'Add to Calendar',
'To add this event to your calendar, you need to allow access to your calendar.'
);
status = await CalendarEventsIOS.authorizeEventStore();
} catch (error) {
console.log('Canceled: Add to Calendar');
return false;
}
}
if (status !== 'authorized') {
export async function addToCalendar(event: EventType): Promise {
try {
let authCode = await RNCalendarEvents.authorizationStatus()
let authStatus =
authCode === 'authorized' ? true : await requestCalendarAccess()
if (!authStatus) {
return false
}
return await saveEventToCalendar(event)
} catch (error) {
Sentry.captureException(error)
console.error(error)
return false
}
}
async checkPermission() {
const authStatus = await RNCalendarEvents.authorizationStatus();
if (authStatus === 'undetermined') {
const authResult = await RNCalendarEvents.authorizeEventStore();
if (authResult !== 'authorized') await this.requestPermission();
} else if (authStatus !== 'authorized') {
await this.requestPermission();
}
}
return new Promise((resolve, reject) => {
RNCalendarEvents.authorizationStatus()
.then(status => {
if (status === 'authorized') {
resolve(true);
} else if (promptForPermission) {
RNCalendarEvents.authorizeEventStore()
.then(result => {
dispatch(setCalendarAuthorization(result));
resolve(result === 'authorized');
})
.catch(reject);
} else {
resolve(false);
}
})
.catch(reject);
});