useTaskRunRunning
The useTaskRunRunning hook returns a boolean indicating whether a specific task run is currently running in the Manager provided by a Provider component.
useTaskRunRunning(taskRunId: string): boolean| Type | Description | |
|---|---|---|
taskRunId | string | The |
| returns | boolean | Whether the task run is running, or |
If the task run Id does not exist or if called from outside an active Provider, this method will return undefined.
Example
This example shows how to use the useTaskRunRunning hook within a component that's nested inside a Provider. Because the hook is reactive, a change to the task run's running status will rerender the component
import React from 'react';
import {createRoot} from 'react-dom/client';
import {createManager} from 'tinytick';
import {Provider, useTaskRunRunning} from 'tinytick/ui-react';
const Pane = ({taskRunId}) => (
<span>
Task run running: {useTaskRunRunning(taskRunId) ? 'true' : 'false'}
</span>
);
const App = ({manager, taskRunId}) => (
<Provider manager={manager}>
<Pane taskRunId={taskRunId} />
</Provider>
);
const manager = createManager();
manager.setTask('ping', async () => await fetch('https://example.org'));
const app = document.createElement('div');
const root = createRoot(app);
const taskRunId = manager.scheduleTaskRun('ping');
root.render(<App manager={manager} taskRunId={taskRunId} />);
console.log(app.innerHTML);
// -> '<span>Task run running: false</span>'
manager.start();
// ... wait 100ms for task to start running
console.log(app.innerHTML);
// -> '<span>Task run running: true</span>'
// ... wait 100ms for task to complete
console.log(app.innerHTML);
// -> '<span>Task run running: false</span>'
Since
v1.2.0