feat: add instance property hooks

This commit is contained in:
Adam
2025-04-13 12:38:27 -07:00
parent 1f9fc84629
commit 7800cc041f
11 changed files with 462 additions and 102 deletions

View File

@@ -0,0 +1,32 @@
import { ViewModelInstanceBoolean } from '@rive-app/canvas';
import { UseViewModelInstanceBooleanParameters, UseViewModelInstanceBooleanResult } from '../types';
import { useViewModelInstancePropertyValues } from './useViewModelInstancePropertyValues';
/**
* Hook for interacting with boolean ViewModel instance properties.
*
* @param path Path to the property (e.g. "isVisible" or "nested/isVisible")
* @param userParameters Optional parameters including initial value
* @returns Object with value and setter function
*/
export default function useViewModelInstanceBoolean(
path: string,
userParameters?: UseViewModelInstanceBooleanParameters
): UseViewModelInstanceBooleanResult {
return useViewModelInstancePropertyValues<
boolean,
UseViewModelInstanceBooleanParameters,
ViewModelInstanceBoolean,
{ value: boolean; setValue: (value: boolean) => void }
>(
path,
userParameters,
false,
(instance, name) => instance.boolean(name),
(instance) => instance.value,
(_instance, value, setValue) => ({
value,
setValue
})
);
}