Untitled

mail@pastecode.io avatar
unknown
plain_text
6 months ago
2.9 kB
4
Indexable
Never
import React from 'react';
import { Text, TouchableOpacity, View } from 'react-native-ui-lib';
import { useTranslation } from 'react-i18next';
import { Icon } from '../ui';
import { Dimensions, PermissionsAndroid } from 'react-native';
import * as AddCalendarEvent from 'react-native-add-calendar-event';
import ModalController from './ModalController';

export function AddPhoneCalendar({ title, startDate }: any) {
  const { t } = useTranslation();
  const height = Dimensions.get('screen').height;

  const addEventToCalendar = async () => {
    try {
      const permission = PermissionsAndroid.PERMISSIONS.WRITE_CALENDAR;
      const granted = await PermissionsAndroid.request(permission, {
        title: 'Calendar Permission',
        message: 'This app needs calendar access to add events',
        buttonNegative: 'Cancel',
        buttonPositive: 'OK',
      });
      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        const calendarEvent = {
          title: title,
          startDate: startDate,
          notes: title,
        };

        AddCalendarEvent.presentEventCreatingDialog(calendarEvent)
          .then(() => {
            ModalController.showModal({
              type: 'success',
              externalHeight: height - 350,
              props: {
                title: t('addEventCalendar', {
                  type: t('Buy'),
                }),
              },
            });
          })
          .catch(() => {
            ModalController.showModal({
              type: 'errorEvent',
              externalHeight: height - 300,
              props: {},
            });
          });
      } else {
        ModalController.showModal({
          type: 'errorEvent',
          externalHeight: height - 300,
          props: {},
        });
      }
    } catch (error) {
      ModalController.showModal({
        type: 'errorEvent',
        externalHeight: height - 300,
        props: {},
      });
    }
  };
  const handleFirstTouchableOpacityPress = () => {
    addEventToCalendar();
  };

  return (
    <View marginL-20 marginT-10>
      <Text heading3 primaryText>
        {t('addPhoneCalendar')}
      </Text>
      <View marginT-20>
        <TouchableOpacity onPress={handleFirstTouchableOpacityPress}>
          <View row>
            <Icon name="email" width={20} height={25} />
            <Text centerV marginL-4 primaryText>
              {t('mailAdress')}
            </Text>
          </View>
        </TouchableOpacity>
        <View marginT-20 />
        <TouchableOpacity onPress={handleFirstTouchableOpacityPress}>
          <View row>
            <View>
              <Icon name="email" width={20} height={25} />
            </View>
            <Text marginL-4 primaryText>
              {t('work')}
            </Text>
          </View>
        </TouchableOpacity>
      </View>
    </View>
  );
}
Leave a Comment