Convert getModelingStatus to take ModeledMethod[]

This commit is contained in:
Robert
2023-10-04 14:27:59 +01:00
parent e75eccb416
commit a704cd7bae
4 changed files with 13 additions and 6 deletions

View File

@@ -102,7 +102,10 @@ export class MethodsUsageDataProvider
const modeledMethod = this.modeledMethods[method.signature];
const modifiedMethod = this.modifiedMethodSignatures.has(method.signature);
const status = getModelingStatus(modeledMethod, modifiedMethod);
const status = getModelingStatus(
modeledMethod ? [modeledMethod] : [],
modifiedMethod,
);
switch (status) {
case "unmodeled":
return new ThemeIcon("error", new ThemeColor("errorForeground"));

View File

@@ -3,13 +3,13 @@ import { ModeledMethod } from "../modeled-method";
export type ModelingStatus = "unmodeled" | "unsaved" | "saved";
export function getModelingStatus(
modeledMethod: ModeledMethod | undefined,
modeledMethods: ModeledMethod[],
methodIsUnsaved: boolean,
): ModelingStatus {
if (modeledMethod) {
if (modeledMethods.length > 0) {
if (methodIsUnsaved) {
return "unsaved";
} else if (modeledMethod.type !== "none") {
} else if (modeledMethods.some((m) => m.type !== "none")) {
return "saved";
}
}

View File

@@ -18,7 +18,8 @@ export function MethodModelingView(): JSX.Element {
const [isMethodModified, setIsMethodModified] = useState<boolean>(false);
const modelingStatus = useMemo(
() => getModelingStatus(modeledMethod, isMethodModified),
() =>
getModelingStatus(modeledMethod ? [modeledMethod] : [], isMethodModified),
[modeledMethod, isMethodModified],
);

View File

@@ -101,7 +101,10 @@ const ModelableMethodRow = forwardRef<HTMLElement | undefined, MethodRowProps>(
[method],
);
const modelingStatus = getModelingStatus(modeledMethod, methodIsUnsaved);
const modelingStatus = getModelingStatus(
modeledMethod ? [modeledMethod] : [],
methodIsUnsaved,
);
return (
<DataGridRow