From 91c453088b4773a96efc78b5cf8738391439d4e1 Mon Sep 17 00:00:00 2001 From: Joaquin Aguirre Date: Wed, 12 Mar 2025 18:33:16 -0300 Subject: [PATCH] chore: add activity indicator to the example app operations --- example/app/(app)/home.tsx | 65 ++++++++++----------- example/app/(app)/login.tsx | 18 ++++-- example/components/ActivityBanner/index.tsx | 42 +++++++++++++ example/constants/Colors.ts | 1 + 4 files changed, 89 insertions(+), 37 deletions(-) create mode 100644 example/components/ActivityBanner/index.tsx diff --git a/example/app/(app)/home.tsx b/example/app/(app)/home.tsx index df972f0..7dc639c 100644 --- a/example/app/(app)/home.tsx +++ b/example/app/(app)/home.tsx @@ -1,18 +1,13 @@ import Line, { AccessToken, UserProfile } from '@xmartlabs/react-native-line' import { useRouter } from 'expo-router' -import { useEffect, useState } from 'react' -import { - ActivityIndicator, - Alert, - Dimensions, - Image, - StyleSheet, -} from 'react-native' +import { Fragment, useEffect, useState } from 'react' +import { Alert, Dimensions, Image, StyleSheet } from 'react-native' import { removeLocalStorageItem, setLocalStorageItem, } from '@/common/localStorage' +import { ActivityBanner } from '@/components/ActivityBanner' import { Bullet } from '@/components/Bullet' import { Button } from '@/components/Button' import { ThemedView } from '@/components/ThemedView' @@ -39,56 +34,60 @@ export default function () { }, []) function logOut() { - return Line.logout().then(() => { - removeLocalStorageItem('accessToken') - router.replace('/login') - }) + setLoading(true) + return Line.logout() + .then(() => { + removeLocalStorageItem('accessToken') + router.replace('/login') + }) + .finally(() => setLoading(false)) } function getFriendshipStatus() { + setLoading(true) return Line.getFriendshipStatus() .then(result => Alert.alert(strings.isFriend, String(result.friendFlag))) .catch(handleError) + .finally(() => setLoading(false)) } function refreshAccessToken() { + setLoading(true) return Line.refreshAccessToken() .then(accessToken => { setLocalStorageItem('accessToken', accessToken.accessToken) setToken(accessToken) }) .catch(handleError) + .finally(() => setLoading(false)) } function verifyAccessToken() { + setLoading(true) return Line.verifyAccessToken() .then(result => Alert.alert(result.clientId, result.expiresIn.toString())) .catch(handleError) - } - - if (loading) { - return ( - - - - ) + .finally(() => setLoading(false)) } return ( - - - - - - - -