19 lines
576 B
TypeScript
19 lines
576 B
TypeScript
import { useEffect, useState } from 'react';
|
|
import { HtmlEvent } from '../App.types';
|
|
|
|
/**
|
|
* CAD 상태(state.ts)는 리액트 밖에 있다. UPDATE_STATE 이벤트가 올 때마다
|
|
* 카운터를 올려 컴포넌트가 getter를 다시 읽게 한다.
|
|
*/
|
|
export function useCadRefresh(): number {
|
|
const [tick, setTick] = useState(0);
|
|
|
|
useEffect(() => {
|
|
const handler = () => setTick((value) => value + 1);
|
|
window.addEventListener(HtmlEvent.UPDATE_STATE, handler);
|
|
return () => window.removeEventListener(HtmlEvent.UPDATE_STATE, handler);
|
|
}, []);
|
|
|
|
return tick;
|
|
}
|