Update from Vibe Studio

This commit is contained in:
Vibe Studio
2026-01-09 14:52:46 +00:00
parent 42a0efe70b
commit 47fa6d98b2
28661 changed files with 2421771 additions and 0 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;
}