Skip to content

Commit 323e262

Browse files
author
Akos Bontovics
committed
fix(web): validate stored language model
1 parent 3578370 commit 323e262

1 file changed

Lines changed: 13 additions & 8 deletions

File tree

packages/web/src/features/chat/useSelectedLanguageModel.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,18 @@ const getStoredSelectedLanguageModel = (): LanguageModelInfo | undefined => {
1616
return undefined;
1717
}
1818

19-
return JSON.parse(storedValue) as LanguageModelInfo;
19+
const parsedValue = JSON.parse(storedValue);
20+
if (
21+
typeof parsedValue === "object" &&
22+
parsedValue !== null &&
23+
typeof parsedValue.provider === "string" &&
24+
typeof parsedValue.model === "string" &&
25+
typeof parsedValue.displayName === "string"
26+
) {
27+
return parsedValue as LanguageModelInfo;
28+
}
29+
30+
return undefined;
2031
} catch {
2132
return undefined;
2233
}
@@ -48,7 +59,7 @@ export const useSelectedLanguageModel = ({
4859
}
4960

5061
if (selectedLanguageModel && !availableSelectedLanguageModel) {
51-
setSelectedLanguageModel((currentSelectedLanguageModel) => {
62+
setSelectedLanguageModel(() => {
5263
const storedSelectedLanguageModel = getStoredSelectedLanguageModel();
5364
const availableStoredSelectedLanguageModel = storedSelectedLanguageModel && languageModels.find(
5465
(model) => getLanguageModelKey(model) === getLanguageModelKey(storedSelectedLanguageModel)
@@ -58,12 +69,6 @@ export const useSelectedLanguageModel = ({
5869
return availableStoredSelectedLanguageModel;
5970
}
6071

61-
if (currentSelectedLanguageModel && languageModels.find(
62-
(model) => getLanguageModelKey(model) === getLanguageModelKey(currentSelectedLanguageModel)
63-
)) {
64-
return currentSelectedLanguageModel;
65-
}
66-
6772
return fallbackLanguageModel;
6873
});
6974
}

0 commit comments

Comments
 (0)