element-call-Github/src/useLatest.ts

23 lines
471 B
TypeScript
Raw Normal View History

2023-02-16 05:20:58 +08:00
/*
Copyright 2024 New Vector Ltd.
2023-02-16 05:20:58 +08:00
SPDX-License-Identifier: AGPL-3.0-only
Please see LICENSE in the repository root for full details.
2023-02-16 05:20:58 +08:00
*/
import { RefObject, useRef } from "react";
export interface LatestRef<T> extends RefObject<T> {
current: T;
}
/**
* React hook that returns a ref containing the value given on the latest
* render.
*/
export function useLatest<T>(value: T): LatestRef<T> {
const ref = useRef<T>(value);
ref.current = value;
return ref;
2023-01-30 10:56:07 +08:00
}