+
+
+
+
+ {rive === null ? (
+
Loading…
+ ) : (
+
+ {FONT_OPTIONS.map((font) => (
+
+ ))}
+
+
+
+ )}
- {rive === null ? (
-
Loading…
- ) : (
-
- {FONT_OPTIONS.map((font) => (
-
- ))}
-
-
-
- )}
-
- {currentFont && (
-
- Current font: {currentFont}
-
- )}
+ {currentFont && (
+
+ Current font: {currentFont}
- );
+ )}
+
+ );
};
// List Property Test
const TodoItemComponent = ({
- index,
- todoItem
+ index,
+ todoItem,
}: {
- index: number;
- todoItem: ViewModelInstance | null;
+ index: number;
+ todoItem: ViewModelInstance | null;
}) => {
- const { value: text, setValue: setText } = useViewModelInstanceString('text', todoItem);
- const { value: isDone, setValue: setIsDone } = useViewModelInstanceBoolean('isDone', todoItem);
+ const { value: text, setValue: setText } = useViewModelInstanceString(
+ 'text',
+ todoItem
+ );
+ const { value: isDone, setValue: setIsDone } = useViewModelInstanceBoolean(
+ 'isDone',
+ todoItem
+ );
+
+ if (!todoItem) {
+ return
+
setIsDone(e.target.checked)}
+ />
+
setText(e.target.value)}
+ style={{ flex: 1 }}
+ />
+
+ Text: {text}
+
+
+ Done: {isDone ? 'true' : 'false'}
+
+
+ );
+};
- if (!todoItem) {
- return
-
setIsDone(e.target.checked)}
- />
-
setText(e.target.value)}
- style={{ flex: 1 }}
- />
-
- Text: {text}
-
-
- Done: {isDone ? 'true' : 'false'}
-
-
- );
-};
+ const handleRemoveFirstInstance = () => {
+ const firstInstance = getInstanceAt(0);
+ if (firstInstance) {
+ removeInstance(firstInstance);
+ }
+ };
-export const TodoListTest = ({ src }: { src: string }) => {
- const { rive, RiveComponent } = useRive({
- src,
- autoplay: true,
- artboard: "Artboard",
- autoBind: false,
- stateMachines: "State Machine 1",
- });
-
- const viewModel = useViewModel(rive, { name: 'TodoList' });
- const viewModelInstance = useViewModelInstance(viewModel, { rive });
-
- const {
- length,
- addInstance,
- addInstanceAt,
- removeInstance,
- removeInstanceAt,
- getInstanceAt,
- swap
- } = useViewModelInstanceList('items', viewModelInstance);
-
- const handleAddItem = () => {
- const todoItemViewModel = rive?.viewModelByName?.('TodoItem');
- if (todoItemViewModel) {
- const newTodoItem = todoItemViewModel.instance?.();
- if (newTodoItem) {
- addInstance(newTodoItem);
- }
- }
- };
-
- const handleAddItemAt = () => {
- const todoItemViewModel = rive?.viewModelByName?.('TodoItem');
- if (todoItemViewModel && length > 0) {
- const newTodoItem = todoItemViewModel.instance?.();
- if (newTodoItem) {
- addInstanceAt(newTodoItem, 1);
- }
- }
- };
-
- const handleRemoveFirstInstance = () => {
- const firstInstance = getInstanceAt(0);
- if (firstInstance) {
- removeInstance(firstInstance);
- }
- };
-
- const handleRemoveFirstByIndex = () => {
- if (length > 0) {
- removeInstanceAt(0);
- }
- };
-
- const handleSwapItems = () => {
- if (length >= 2) {
- swap(0, 1);
- }
- };
-
- return (
+ const handleRemoveFirstByIndex = () => {
+ if (length > 0) {
+ removeInstanceAt(0);
+ }
+ };
+
+ const handleSwapItems = () => {
+ if (length >= 2) {
+ swap(0, 1);
+ }
+ };
+
+ return (
+