Skip to main content

TimerProvider()

Hooks/useTimer()/Context(Optional) 이 프로바이더는 타이머 상태를 컨텍스트를 통해 지역/전역적으로 관리할 수 있도록 해줍니다.

Signature

TimerProvider: ({
children,
params
}: {
children: react.ReactNode;
params?: TimerProps | undefined;
}) => JSX.Element

Parameters

Parameter

Type

Description

{ children, params}

{ children: react.ReactNode; params?: TimerProps | undefined; }

Returns

JSX.Element

Remarks

컨텍스트를 사용하지 않아도 타이머 훅을 직접 사용할 수 있으며, 컨텍스트가 필요한 경우에만 사용하시기 바랍니다. 예를 들어, 다수의 컴포넌트에서 타이머 상태를 공유하거나, 전역적으로 타이머 상태를 관리해야 하는 경우에 유용합니다.

Example

// TimerContainer.tsx
import React from 'react';
import { TimerProvider } from '@toktokhan-dev/react-universal';
import TimerDisplay from './TimerDisplay';

const TimerContainer = () => {
return (
<TimerProvider
params={{
autoStart: false,
timeLimit: 1000 * 5,
}}
>
<TimerDisplay />
</TimerProvider>
);
};

export default TimerContainer;

// TimerDisplay.tsx
const TimerDisplay = () => {
// 불필요한 리랜더링 방지를 위해 selector로 가져오시는 것을 권장합니다.
const time = useTimerContext((ctx) => ctx?.time)
const start = useTimerContext((ctx) => ctx?.start)

return (
<div>
<button onClick={start}>Start Timer</button>
<p>Remaining Time: {time}</p>
</div>
);
};