diff --git a/README.md b/README.md index f625bd2..35565d7 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,15 @@ yarn add @rehooks/online-status ## Usage ```js -import useOnlineStatus from '@rehooks/online-status'; +import useOnlineStatus from "@rehooks/online-status"; function MyComponent() { - let onlineStatus = useOnlineStatus(); + let onlineStatus = useOnlineStatus({ + onStatusChange: online => + online + ? MyToaster.success("You are now online") + : MyToaster.danger("You are now offline") + }); return (

You are {onlineStatus ? "Online" : "Offline"}

@@ -27,3 +32,13 @@ function MyComponent() { ); } ``` + +## API + +```js +useOnlineStatus({ + onStatusChange: function, + onOnline: function, + onOffline: function, +}) +``` diff --git a/example.js b/example.js index 0451259..c602c72 100644 --- a/example.js +++ b/example.js @@ -1,9 +1,15 @@ import React from "react"; import { render } from "react-dom"; + import useOnlineStatus from "./"; function App() { - let onlineStatus = useOnlineStatus(); + let onlineStatus = useOnlineStatus({ + onStatusChange: online => + online + ? console.log("You are now online") + : console.log("you are now offline") + }); return (

You are {onlineStatus ? "Online" : "Offline"}

diff --git a/index.js b/index.js index e69535a..e61d48a 100644 --- a/index.js +++ b/index.js @@ -8,12 +8,22 @@ function getOnlineStatus() { : true; } -function useOnlineStatus() { +function noop() {} + +function useOnlineStatus({ + onStatusChange = noop, + onOnline = noop, + onOffline = noop +}) { let [onlineStatus, setOnlineStatus] = useState(getOnlineStatus()); function goOnline() { + onStatusChange(true); + onOnline(); setOnlineStatus(true); } function goOffline() { + onStatusChange(false); + onOffline(); setOnlineStatus(false); } useEffect(() => {