fix: evaluate status add lock state

This commit is contained in:
jialin
2025-06-12 09:57:25 +08:00
parent 281d8bddc1
commit 1b6cfdbdc4
6 changed files with 71 additions and 22 deletions
+1 -1
View File
@@ -128,7 +128,7 @@ const MixLineBarChart: React.FC<
...options.xAxis,
data: xAxisData
},
series: [...linedata, ...barData]
series: [...barData, ...linedata]
};
}, [seriesData, xAxisData, yAxisName, title, smooth, legendData, options]);
+12 -3
View File
@@ -84,7 +84,7 @@ const SearchModel: React.FC<SearchInputProps> = (props) => {
const [query, setQuery] = useState({
page: 1,
perPage: 10,
total: 100
total: 0
});
const modelFilesSortOptions = useRef<any[]>([
{
@@ -120,7 +120,8 @@ const SearchModel: React.FC<SearchInputProps> = (props) => {
return isGGUF || isGGUFFromMs;
};
const handleOnSelectModel = (item: any, evaluate?: boolean) => {
const handleOnSelectModel = (model: any, evaluate?: boolean) => {
const item = model || {};
onSelectModel(item, evaluate);
setCurrent(item.id);
currentRef.current = item.id;
@@ -207,6 +208,13 @@ const SearchModel: React.FC<SearchInputProps> = (props) => {
});
return list;
} catch (error) {
setQuery((prev) => {
return {
...prev,
page: queryParams.page,
total: 0
};
});
return [];
}
};
@@ -367,7 +375,7 @@ const SearchModel: React.FC<SearchInputProps> = (props) => {
displayEvaluateStatus?.({
show: true,
flag: {
model: true
model: list.length > 0
}
});
handleOnSelectModel(list[0]);
@@ -375,6 +383,7 @@ const SearchModel: React.FC<SearchInputProps> = (props) => {
handleEvaluate(list);
} catch (error: any) {
console.log('error:', error);
setDataSource({
repoOptions: [],
loading: false,
+40 -3
View File
@@ -36,6 +36,11 @@ type MessageStatus = {
evaluateResult?: EvaluateResult;
};
type WarningStausOptions = {
lockAfterUpdate?: boolean;
override?: boolean;
};
export const useGenerateFormEditInitialValues = () => {
const gpuDeviceList = useRef<any[]>([]);
const workerList = useRef<any[]>([]);
@@ -268,6 +273,7 @@ export const useCheckCompatibility = () => {
const submitAnyway = useRef<boolean>(false);
const requestIdRef = useRef(0);
const updateStatusTimer = useRef<any>(null);
const isLockWarningStatus = useRef<boolean>(false);
const [warningStatus, setWarningStatus] = useState<MessageStatus>({
show: false,
title: '',
@@ -279,6 +285,33 @@ export const useCheckCompatibility = () => {
return requestIdRef.current;
};
const lockWarningStatus = () => {
isLockWarningStatus.current = true;
};
const unlockWarningStatus = () => {
isLockWarningStatus.current = false;
};
const updateWarningStatus = (
params: MessageStatus,
options?: WarningStausOptions
) => {
const { lockAfterUpdate = false, override = false } = options || {};
setWarningStatus((prev: MessageStatus) => {
if (isLockWarningStatus.current && !override) {
return prev;
}
if (lockAfterUpdate) {
lockWarningStatus();
}
return params;
});
};
const handleEvaluate = async (data: any) => {
try {
checkTokenRef.current?.cancel();
@@ -374,13 +407,16 @@ export const useCheckCompatibility = () => {
};
};
const handleShowCompatibleAlert = (evaluateResult: EvaluateResult | null) => {
const handleShowCompatibleAlert = (
evaluateResult: EvaluateResult | null,
options?: WarningStausOptions
) => {
const result = handleCheckCompatibility(evaluateResult);
if (updateStatusTimer.current) {
clearTimeout(updateStatusTimer.current);
}
updateStatusTimer.current = setTimeout(() => {
setWarningStatus(result);
updateWarningStatus(result, options);
}, 300);
};
@@ -562,7 +598,8 @@ export const useCheckCompatibility = () => {
handleDoEvalute,
generateGPUIds,
handleEvaluate,
setWarningStatus,
setWarningStatus: updateWarningStatus,
unlockWarningStatus,
cancelEvaluate,
handleBackendChangeBefore,
handleOnValuesChange: debounceHandleValuesChange,