(0);
useAsyncEffect(async () => {
await wait(1000);
setState1(v => v + 1);
await wait(1000);
return () => {
console.log('run cleanup1');
};
}, [state1]);
useAsyncEffect(async () => {
await wait(1000);
setState2(v => v + 1);
await wait(1000);
return () => {
console.log('run cleanup2');
};
}, []);
return (
{JSON.stringify({ state1, state2 }, null, 4)}
);
});
stories.add('useCountdown', () => {
const [CountdownComponent, { reset, pause, resume }] = useCountdown();
const reseted = button('reset', reset);
const paused = button('pause', pause);
const resumes = button('resume', resume);
const render = boolean('render?', true);
const seconds = number('seconds', 120);
const format = select('format', ['s', 'ss', 'mm ss', 'm:s', 'm', 'mm'], 'm:s');
const locale = select('locale', ['en', 'ru', 'ru-passive'], 'en');
return (
{render ? (
) : null}
);
});