TinyTick logoTinyTick

useStopCallback

The useStopCallback hook returns a callback that can be used to stop the Manager provided by a Provider component.

useStopCallback(force?: boolean): () => Manager | undefined
TypeDescription
force?boolean

Whether to stop the Manager immediately instead of waiting for all scheduled task runs to complete.

returns() => Manager | undefined

A callback that stops the Manager.

Example

This example shows how to use the useStopCallback hook within a component that's nested inside a Provider. The callback is used to force-stop the Manager when the status is clicked.

import React from 'react';
import {createRoot} from 'react-dom/client';
import {createManager} from 'tinytick';
import {Provider, useStopCallback, useStatus} from 'tinytick/ui-react';

const Pane = () => {
  const handleClick = useStopCallback(true);
  return (
    <span id="span" onClick={handleClick}>
      Manager status: {useStatus()}
    </span>
  );
};

const App = ({manager}) => (
  <Provider manager={manager}>
    <Pane />
  </Provider>
);

const app = document.createElement('div');
const manager = createManager().start();
createRoot(app).render(<App manager={manager} />);
const span = app.querySelector('span');

console.log(span.innerHTML);
// -> 'Manager status: 1'

// User clicks the <span> element:
// -> span MouseEvent('click', {bubbles: true})

console.log(span.innerHTML);
// -> 'Manager status: 0'

Since

v1.2.0