zioinfo-mail/app/node_modules/use-latest-callback/src/index.ts
DESKTOP-TKLFCPR\ython 11c670f2a0 refactor: 101.79.17.164 → zioinfo.co.kr 전체 도메인 변환 + Manager UI 배포
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 10:09:17 +09:00

35 lines
952 B
TypeScript

import * as React from 'react';
/**
* Use `useEffect` during SSR and `useLayoutEffect` in the Browser & React Native to avoid warnings.
*/
const useClientLayoutEffect =
typeof document !== 'undefined' ||
(typeof navigator !== 'undefined' && navigator.product === 'ReactNative')
? React.useLayoutEffect
: React.useEffect;
/**
* React hook which returns the latest callback without changing the reference.
*/
// eslint-disable-next-line @typescript-eslint/ban-types
function useLatestCallback<T extends Function>(callback: T): T {
const ref = React.useRef<T>(callback);
const latestCallback = React.useRef(function latestCallback(
this: unknown,
...args: unknown[]
) {
return ref.current.apply(this, args);
} as unknown as T).current;
useClientLayoutEffect(() => {
ref.current = callback;
});
return latestCallback;
}
// Use export assignment to compile to module.exports =
export = useLatestCallback;