Update from Vibe Studio

This commit is contained in:
Vibe Studio
2026-01-12 09:12:41 +00:00
parent a4605e311a
commit a6ae5199b0
29756 changed files with 2526222 additions and 278 deletions

View File

@@ -0,0 +1,6 @@
import type { MutableRefObject, RefObject } from 'react';
type Callback<T> = (currentRef: T) => void;
export declare function useRefCallback<T>(callback: Callback<MutableRefObject<T>>, initialValue: T): MutableRefObject<T>;
export declare function useRefCallback<T>(callback: Callback<RefObject<T>>, initialValue: T | null): RefObject<T>;
export declare function useRefCallback<T = undefined>(callback: Callback<MutableRefObject<T | undefined>>): MutableRefObject<T | undefined>;
export {};

View File

@@ -0,0 +1,18 @@
import { useMemo } from 'react';
export function useRefCallback(callback, initialValue) {
var ref = useMemo(function () {
var defaultValue = {
current: initialValue
};
return new Proxy(defaultValue, {
set: function set(target, prop, newValue) {
if (!Object.is(target[prop], newValue)) {
target[prop] = newValue;
callback(ref);
}
return true;
}
});
}, []);
return ref;
}