137 lines
4.1 KiB
JavaScript
137 lines
4.1 KiB
JavaScript
// Metro module 3961 (f3962).
|
|
import { useMemo, useRef } from "react";
|
|
import { ArtboardByName } from "./Module3950";
|
|
import { useDisposableMemo } from "./Module3954";
|
|
import { callDispose } from "./Module3942";
|
|
export function useViewModelInstance(a0, a1) {
|
|
let c13757_0 = a0;
|
|
let r12 = a1?.instanceName;
|
|
const name2 = a1?.name;
|
|
if (r12 == null) {
|
|
r12 = name2;
|
|
}
|
|
const name = r12;
|
|
const artboardName = a1?.artboardName;
|
|
const viewModelName = a1?.viewModelName;
|
|
let r6 = a1?.useNew;
|
|
if (r6 == null) {
|
|
r6 = false;
|
|
}
|
|
let c13757_4 = r6;
|
|
let r23 = a1?.required;
|
|
if (r23 == null) {
|
|
r23 = false;
|
|
}
|
|
const onInit = a1?.onInit;
|
|
const ref = useRef(onInit);
|
|
ref.current = onInit;
|
|
const disposableMemo = useDisposableMemo(() => {
|
|
let r3, r35, r60, instance;
|
|
L41: {
|
|
if (c13757_0) {
|
|
if (c13757_0 != null && "getViewModelInstance" in c13757_0) {
|
|
let instance3 = c13757_0.getViewModelInstance();
|
|
if (instance3 == null) {
|
|
instance3 = null;
|
|
}
|
|
r3 = {
|
|
instance: instance3,
|
|
needsDispose: false
|
|
};
|
|
} else if (c13757_0 != null && "defaultArtboardViewModel" in c13757_0) {
|
|
if (viewModelName) {
|
|
r35 = c13757_0.viewModelByName(viewModelName);
|
|
if (!r35) {
|
|
r3 = {
|
|
instance: null,
|
|
needsDispose: false,
|
|
error: `ViewModel '${viewModelName}' not found`
|
|
};
|
|
break L41;
|
|
}
|
|
} else {
|
|
r35 = c13757_0.defaultArtboardViewModel(artboardName ? ArtboardByName(artboardName) : void 0);
|
|
if (!r35) {
|
|
r3 = artboardName ? {
|
|
instance: null,
|
|
needsDispose: false,
|
|
error: `Artboard '${artboardName}' not found or has no ViewModel`
|
|
} : {
|
|
instance: null,
|
|
needsDispose: false
|
|
};
|
|
break L41;
|
|
}
|
|
}
|
|
let instance2 = name ? r35.createInstanceByName(name) : r35.createDefaultInstance();
|
|
if (!instance2 && name) {
|
|
r60 = {
|
|
instance: null,
|
|
needsDispose: false,
|
|
error: `ViewModel instance '${name}' not found`
|
|
};
|
|
} else {
|
|
if (instance2 == null) {
|
|
instance2 = null;
|
|
}
|
|
r60 = {
|
|
instance: instance2,
|
|
needsDispose: true
|
|
};
|
|
}
|
|
r3 = r60;
|
|
} else {
|
|
if (name) {
|
|
instance = c13757_0.createInstanceByName(name);
|
|
if (!instance) {
|
|
r3 = {
|
|
instance: null,
|
|
needsDispose: false,
|
|
error: `ViewModel instance '${name}' not found`
|
|
};
|
|
break L41;
|
|
}
|
|
} else {
|
|
instance = c13757_4 ? c13757_0.createInstance() : c13757_0.createDefaultInstance();
|
|
}
|
|
if (instance == null) {
|
|
instance = null;
|
|
}
|
|
r3 = {
|
|
instance,
|
|
needsDispose: true
|
|
};
|
|
}
|
|
} else {
|
|
r3 = {
|
|
instance: void 0,
|
|
needsDispose: false
|
|
};
|
|
}
|
|
}
|
|
if (r3.instance && ref.current) {
|
|
ref.current(r3.instance);
|
|
}
|
|
return r3;
|
|
}, (a0) => {
|
|
if (a0.needsDispose && a0.instance) {
|
|
callDispose(a0.instance);
|
|
}
|
|
}, [a0, name, artboardName, viewModelName, r6]);
|
|
const memo = useMemo(() => disposableMemo.error ? new Error(disposableMemo.error) : null, [disposableMemo.error]);
|
|
if (r23 && disposableMemo.instance === null) {
|
|
throw new Error(disposableMemo.error ? `useViewModelInstance: ${disposableMemo.error}` : "useViewModelInstance: Failed to get ViewModelInstance. Ensure the source has a valid ViewModel and instance available.");
|
|
}
|
|
const { instance, instance: instance2 } = disposableMemo;
|
|
return instance ? {
|
|
instance: instance2,
|
|
error: null
|
|
} : instance2 === void 0 ? {
|
|
instance: void 0,
|
|
error: null
|
|
} : {
|
|
instance: null,
|
|
error: memo
|
|
};
|
|
}
|