PollingSubscription
Will dispatch a fetch action at the minimum interval of all subscriptions to this
resource.
- Pauses when offline.
- Immediately fetches when online status returns.
- Immediately fetches any new subscriptions.
implements
PollingSubscription implements Subscription
- Web
- React Native
- NextJS
- Expo
index.tsx
import {
DataProvider,
NetworkManager,
SubscriptionManager,
PollingSubscription,
} from '@data-client/react';
import { createRoot } from 'react-dom/client';
const managers = [
new NetworkManager(),
new SubscriptionManager(PollingSubscription),
];
createRoot(document.body).render(
<DataProvider managers={managers}>
<App />
</DataProvider>,
);
index.tsx
import {
DataProvider,
NetworkManager,
SubscriptionManager,
PollingSubscription,
} from '@data-client/react';
import { AppRegistry } from 'react-native';
const managers = [
new NetworkManager(),
new SubscriptionManager(PollingSubscription),
];
const Root = () => (
<DataProvider managers={managers}>
<App />
</DataProvider>
);
AppRegistry.registerComponent('MyApp', () => Root);
app/Provider.tsx
'use client';
import {
NetworkManager,
SubscriptionManager,
PollingSubscription,
} from '@data-client/react';
import { DataProvider } from '@data-client/react/nextjs';
const managers = [
new NetworkManager(),
new SubscriptionManager(PollingSubscription),
];
export default function Provider({
children,
}: {
children: React.ReactNode;
}) {
return <DataProvider managers={managers}>{children}</DataProvider>;
}
app/layout.tsx
import Provider from './Provider';
export default function RootLayout({ children }) {
return (
<html>
<body>
<Provider>{children}</Provider>
</body>
</html>
);
}
app/_layout.tsx
import { Stack } from 'expo-router';
import {
DataProvider,
NetworkManager,
SubscriptionManager,
PollingSubscription,
} from '@data-client/react';
const managers = [
new NetworkManager(),
new SubscriptionManager(PollingSubscription),
];
export default function RootLayout() {
return (
<DataProvider managers={managers}>
<Stack>
<Stack.Screen name="index" />
</Stack>
</DataProvider>
);
}
Dispatched Actions
- 'rdc/fetch'
Note:
This is already used by
DataProviderby default.