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(() => {