diff --git a/README.md b/README.md index cb1ec7e..fd4a39c 100644 --- a/README.md +++ b/README.md @@ -17,34 +17,33 @@ Take inspiration from the [example](./example/ios/LiveActivityDynamicIsland/Live ## Usage ```js -import { -startActivity, -listAllActivities, -endActivity, -updateActivity, -} from 'react-native-live-activity'; +import LiveActivity from 'react-native-live-activity'; -// Please be careful to use the same interface as the one you defined in your Swift module. -interface LiveActivityParams { +// Please be careful to use the same type as the one you defined in your Swift module. +type LiveActivityParams = { status: string; driverName: string; expectedDeliveryTime: string; } -await startActivity({ +const liveActivity = new LiveActivity() + +const activity = await liveActivity.startActivity({ status: "Packing", driveName: "John", expectedDeliveryTime: "12 PM" }) -await updateActivity(activity.id, { + +await liveActivity.updateActivity(activity.id, { status: "Driving", driveName: "John", expectedDeliveryTime: "12 PM" -}); -await endActivity(activity.id); +}) -const [activities, setActivities] = React.useState([]); -listAllActivities().then(setActivities); +await liveActivity.endActivity(activity.id) + +const [activities, setActivities] = React.useState([]) +liveActivity.listAllActivities().then(setActivities) ``` @@ -64,11 +63,8 @@ $ open ./example/ios/LiveActivityExample.xcworkspace After that build the xCode project. - - https://user-images.githubusercontent.com/3778297/192741742-9d3a9bc5-e26a-4197-b152-5f60796736eb.mp4 - ## License MIT diff --git a/example/src/ActivitiesList.tsx b/example/src/ActivitiesList.tsx index 5d51591..23553b4 100644 --- a/example/src/ActivitiesList.tsx +++ b/example/src/ActivitiesList.tsx @@ -34,7 +34,7 @@ const ActivitiesList = ({ ); }, - [activities] + [onPressEditActivity, onPressEndActivity] ); return ( diff --git a/example/src/App.tsx b/example/src/App.tsx index e9be9d8..7eb7a63 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -1,20 +1,17 @@ import * as React from 'react'; import { StyleSheet, View, Text, SafeAreaView, Button } from 'react-native'; -import { - startActivity, - listAllActivities, - endActivity, - updateActivity, -} from 'react-native-live-activity'; import ActivitiesList from './ActivitiesList'; import Row from './Row'; +import LiveActivity from 'react-native-live-activity'; -interface StartLiveActivityParams { +type StartLiveActivityParams = { status: string; driverName: string; expectedDeliveryTime: string; -} +}; + +const liveActivity = new LiveActivity(); export default function App() { const [status, setStatus] = React.useState('Packing'); @@ -41,24 +38,24 @@ export default function App() { }, [activity]); React.useEffect(() => { - listAllActivities().then(setActivities); + liveActivity.listAllActivities().then(setActivities); }, [setActivities]); const onPressCreate = React.useCallback(() => { - startActivity({ - status, - driverName, - expectedDeliveryTime, - }).then(() => - listAllActivities().then(setActivities) - ); + liveActivity + .startActivity({ + status, + driverName, + expectedDeliveryTime, + }) + .then(() => liveActivity.listAllActivities().then(setActivities)); }, [status, driverName, expectedDeliveryTime]); const onPressEdit = React.useCallback(() => { if (!activity?.id) { return; } - updateActivity(activity.id, { + liveActivity.updateActivity(activity.id, { status, driverName, expectedDeliveryTime, @@ -69,21 +66,18 @@ export default function App() { const onPressEndActivity = React.useCallback( (item) => { return () => { - endActivity(item.id); + liveActivity.endActivity(item.id); setActivities(activities.filter((value) => value.id !== item.id)); }; }, [activities] ); - const onPressEditActivity = React.useCallback( - (item) => { - return () => { - setActivity(item); - }; - }, - [activities] - ); + const onPressEditActivity = React.useCallback((item) => { + return () => { + setActivity(item); + }; + }, []); return ( @@ -98,8 +92,8 @@ export default function App() { />