fix ssr
This commit is contained in:
parent
2e67f911c1
commit
0f610d3c18
11 changed files with 408 additions and 288 deletions
|
@ -173,60 +173,72 @@ const ModelSection: React.FC = () => {
|
|||
const [radioSelection, setRadioSelection] = useState<string | null>("")
|
||||
const [activeSelectedAIFunction, setActiveSelectedAIFunction] = useState('');
|
||||
const [currentSelectedAIFunction, setCurrentSelectedAIFunction] = useState<string | null>("");
|
||||
const [isOpenSourceMode] = useState(localStorage.getItem('openSourceMode') || "false")
|
||||
const [isOpenSourceMode, setIsOpenSourceMode] = useState<string|null>("false")
|
||||
|
||||
useEffect(() => {
|
||||
const temp = localStorage.getItem("activeSelectedAIFunction") || ""
|
||||
setActiveSelectedAIFunction(temp)
|
||||
if (!localStorage.getItem('selectedModelDropdown')) {
|
||||
localStorage.setItem("selectedModelDropdown", "Offline Fast")
|
||||
}
|
||||
|
||||
if (!localStorage.getItem("activeSelectedAIFunction")) {
|
||||
setActiveSelectedAIFunction('Code')
|
||||
localStorage.setItem('activeSelectedAIFunction', 'Code')
|
||||
}
|
||||
|
||||
if (!localStorage.getItem("model")) {
|
||||
localStorage.setItem("model", 'starcoder2')
|
||||
}
|
||||
|
||||
if (!localStorage.getItem("radioSelection")) {
|
||||
localStorage.setItem("radioSelection", 'None')
|
||||
}
|
||||
|
||||
if (!localStorage.getItem("type")) {
|
||||
localStorage.setItem("type", 'local')
|
||||
}
|
||||
|
||||
const handleStorageChange = () => {
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
|
||||
setIsOpenSourceMode(localStorage.getItem("openSourceMode"))
|
||||
const temp = localStorage.getItem("activeSelectedAIFunction") || ""
|
||||
setActiveSelectedAIFunction(temp)
|
||||
if (!localStorage.getItem('selectedModelDropdown')) {
|
||||
localStorage.setItem("selectedModelDropdown", "Offline Fast")
|
||||
}
|
||||
|
||||
if (!localStorage.getItem("activeSelectedAIFunction")) {
|
||||
setActiveSelectedAIFunction('Code')
|
||||
localStorage.setItem('activeSelectedAIFunction', 'Code')
|
||||
}
|
||||
|
||||
if (!localStorage.getItem("model")) {
|
||||
localStorage.setItem("model", 'starcoder2')
|
||||
}
|
||||
|
||||
if (!localStorage.getItem("radioSelection")) {
|
||||
localStorage.setItem("radioSelection", 'None')
|
||||
}
|
||||
|
||||
if (!localStorage.getItem("type")) {
|
||||
localStorage.setItem("type", 'local')
|
||||
}
|
||||
|
||||
const handleStorageChange = () => {
|
||||
setSelectedModelDropdown(localStorage.getItem('selectedModelDropdown') || '');
|
||||
};
|
||||
|
||||
// Update immediately when localStorage changes
|
||||
if (typeof window !== 'undefined') {
|
||||
window.addEventListener('storage', handleStorageChange);
|
||||
}
|
||||
|
||||
setRadioSelection(localStorage.getItem('radioSelection') || '');
|
||||
setSelectedModelDropdown(localStorage.getItem('selectedModelDropdown') || '');
|
||||
};
|
||||
|
||||
// Update immediately when localStorage changes
|
||||
window.addEventListener('storage', handleStorageChange);
|
||||
|
||||
setRadioSelection(localStorage.getItem('radioSelection') || '');
|
||||
setSelectedModelDropdown(localStorage.getItem('selectedModelDropdown') || '');
|
||||
// Cleanup listener on component unmount
|
||||
return () => {
|
||||
window.removeEventListener('storage', handleStorageChange);
|
||||
};
|
||||
// Cleanup listener on component unmount
|
||||
return () => {
|
||||
if (typeof window !== 'undefined') {
|
||||
window.removeEventListener('storage', handleStorageChange);
|
||||
}
|
||||
};
|
||||
}
|
||||
}, []); // Dependency array can remain empty if you only want this to run on mount
|
||||
|
||||
useEffect(() => {
|
||||
const storedActiveSelectedAIFunction = localStorage.getItem("activeSelectedAIFunction") || "";
|
||||
if (storedActiveSelectedAIFunction !== currentSelectedAIFunction) {
|
||||
setCurrentSelectedAIFunction(storedActiveSelectedAIFunction);
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
const storedActiveSelectedAIFunction = localStorage.getItem("activeSelectedAIFunction") || "";
|
||||
if (storedActiveSelectedAIFunction !== currentSelectedAIFunction) {
|
||||
setCurrentSelectedAIFunction(storedActiveSelectedAIFunction);
|
||||
}
|
||||
}
|
||||
}, [activeSelectedAIFunction]);
|
||||
|
||||
const handleModelChange = (event: React.ChangeEvent<HTMLSelectElement>) => {
|
||||
const newModel = event.target.value;
|
||||
setSelectedModelDropdown(newModel);
|
||||
localStorage.setItem('selectedModelDropdown', newModel); // Update localStorage directly
|
||||
const model = localStorage.getItem('activeSelectedAIFunction') || "Code"
|
||||
modelClicked(model)
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
localStorage.setItem('selectedModelDropdown', newModel); // Update localStorage directly
|
||||
const model = localStorage.getItem('activeSelectedAIFunction') || "Code"
|
||||
modelClicked(model)
|
||||
}
|
||||
};
|
||||
|
||||
// Determine the filtered models based on current radioSelection
|
||||
|
@ -285,12 +297,14 @@ const ModelSection: React.FC = () => {
|
|||
modelDropdown.offlineNonFoss.includes(model) || modelDropdown.offlineFoss.includes(model);
|
||||
|
||||
const modelClicked = (model: string) => {
|
||||
localStorage.setItem('activeSelectedAIFunction', model)
|
||||
setActiveSelectedAIFunction(model)
|
||||
const modelDropdown = localStorage.getItem('selectedModelDropdown') || 'Offline Fast'
|
||||
const selectedAIFunction = modelDropdown as keyof typeof modelList;
|
||||
localStorage.setItem("model", modelList[selectedAIFunction][model as keyof typeof modelList[typeof selectedAIFunction]])
|
||||
localStorage.setItem("type", modelList[selectedAIFunction]['model_type' as keyof typeof modelList[typeof selectedAIFunction]])
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
localStorage.setItem('activeSelectedAIFunction', model)
|
||||
setActiveSelectedAIFunction(model)
|
||||
const modelDropdown = localStorage.getItem('selectedModelDropdown') || 'Offline Fast'
|
||||
const selectedAIFunction = modelDropdown as keyof typeof modelList;
|
||||
localStorage.setItem("model", modelList[selectedAIFunction][model as keyof typeof modelList[typeof selectedAIFunction]])
|
||||
localStorage.setItem("type", modelList[selectedAIFunction]['model_type' as keyof typeof modelList[typeof selectedAIFunction]])
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue