Provider
Overview
The ServiceMessageProvider
component is a React context provider that integrates with a real-time messaging system (presumably SignalR) to manage and distribute service messages within the application. It utilizes the useServiceMessageQuery
hook to fetch initial service messages and the useSignalR
hook to subscribe to real-time updates.
Props
PropsWithChildren
- Type:
PropsWithChildren
- Description: React prop type that includes the
children
prop, allowing the rendering of child components.
State
apps
- Type:
string[] | undefined
- Description: State variable holding an array of app keys. Used to filter service messages based on relevant apps.
Methods
registerCurrentApps(apps?: string[]): void
- Parameters:
apps
: (Optional) An array of app keys. If provided, service messages will be filtered based on these app keys.
- Description: Sets the
apps
state variable, enabling the filtering of service messages based on relevant apps.
Hooks
useEffect
Dependencies:
data
: The result of theuseServiceMessageQuery
hook.apps
: The current array of app keys.
Description: Handles the initial setup of service messages based on fetched data. If
apps
are provided, it filters and updates service messages accordingly.
useLayoutEffect
Dependencies:
topic
: The result of theuseSignalR
hook.apps
: The current array of app keys.
Description: Listens for real-time updates from the SignalR
topic
. Filters and updates service messages based on relevant apps ifapps
are provided.
Context Provider
ServiceMessageContext.Provider
Type:
React.Provider<{ serviceMessages: ServiceMessages; registerCurrentApps: (apps?: string[]) => void }>
Value:
serviceMessages
: An instance of theServiceMessages
class.registerCurrentApps
: A function to set the current array of app keys for filtering.
Description: Provides the
ServiceMessageContext
with theserviceMessages
instance and theregisterCurrentApps
function to its descendants.
Usage Example
import { ServiceMessageProvider } from 'path-to-ServiceMessageProvider';
const App = () => {
return (
<ServiceMessageProvider>
{/* Other components and content */}
</ServiceMessageProvider>
);
};
This documentation provides a clear overview of the ServiceMessageProvider
component, including its props, state, methods, hooks, and usage example.