Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejs
import React, { useState, useEffect } from 'react';
import { SafeAreaView, StyleSheet, ScrollView, Button, View, ActivityIndicator, Platform } from 'react-native';
 
import { 
  addEventListener, 
  removeEventListener, 
  requestPermissions, 
  EuroMessageApi, 
  VisilabsApi 
} from 'react-native-related-digital'
 
const App = () => {
  const [loading, setLoading] = useState(false)
 
  const appAlias = 'alias'
 
  const siteId = "SID";
  const organizationId = "OID";
  const dataSource = "datasource";
 
  const euroMessageApi = new EuroMessageApi(appAlias)
  const visilabsApi = new VisilabsApi(appAlias, siteId, organizationId, dataSource)
 
  useEffect(() => {
    addExtra()
    addListeners()
 
    return () => removeListeners()
  }, [])
 
  const addListeners = () => {
 
    addEventListener('register', async (token) => {
      const subscribeResult = await euroMessageApi.subscribe(token)
 
      visilabsApi.register(token, (result) => {
        
      })
    }, (notificationPayload) => {
      console.log('notification payload', notificationPayload)
    }, euroMessageApi, visilabsApi)
 
    addEventListener('registrationError', async (registrationError) => {
      console.log('registrationError is ', registrationError)
    }, euroMessageApi)
  }
 
  const addExtra = async () => {
    await euroMessageApi.setUserProperty('extra', 1)
  }
 
  const removeListeners = () => {
    removeEventListener('register')
    removeEventListener('registrationError')
  }
 
  return (
    <>
      <SafeAreaView>
        {
          loading ?
          <ActivityIndicator 
            size='large'
            animating={loading} /> :
          <ScrollView
            contentInsetAdjustmentBehavior="automatic"
            style={styles.scrollView}>
            <Button 
              title='REQUEST PERMISSONS'
              onPress={() => {
                requestPermissions()
              }} 
            />
          </ScrollView>
        }
      </SafeAreaView>
    </>
  );
};
 
const styles = StyleSheet.create({
  scrollView: {
    backgroundColor: '#FFF',
    padding: 20
  },
  divider: {
    height: 20
  }
});
 
export default App;

...