import React from 'react'; import { StyleSheet, Text, TouchableHighlight, View, } from 'react-native'; import { FamilyActivitySelection, ScreenTime } from 'react-native-screen-time-api'; const MyApp = () => { const [activitySelection, setActivitySelection] = React.useState(); const selectActivities = React.useCallback(async () => { try { await ScreenTime.requestAuthorization('individual'); const status = await ScreenTime.getAuthorizationStatus(); console.log('Authorization status:', status); // 'approved', 'denied', or 'notDetermined' if (status !== 'approved') { throw new Error('user denied screen time access'); } const selection = await ScreenTime.displayFamilyActivityPicker({}); console.log('Family activity selection:', selection); // selection will be `null` if user presses cancel if (selection) { setActivitySelection(selection); await ScreenTime.setActivitySelection(selection); // sets the shields } } catch (error) { console.error(error); } }, []); const getNames = React.useCallback(async () => { try { if (!activitySelection) { throw new Error('no activity selection'); } const applicationNames = await ScreenTime.getApplicationNames(activitySelection.applicationTokens); console.log('Applications:', applicationNames); const categoryNames = await ScreenTime.getCategoryNames(activitySelection.categoryTokens); console.log('Categories:', categoryNames); } catch (error) { console.error(error); } }, [activitySelection]); return ( selectActivities() }> Select Activities {activitySelection && ( getNames() }> Get Names )} ); }; const styles = StyleSheet.create({ view: { alignItems: 'center', flexDirection: 'column', flexGrow: 1, backgroundColor: 'white', gap: 6, justifyContent: 'center', }, }); export default MyApp;