fix: Settings desync between frontend and backend

This commit is contained in:
LynithDev 2024-12-15 18:47:12 +01:00
parent 4676ac2909
commit db55aaabfb
2 changed files with 6 additions and 2 deletions

View file

@ -17,6 +17,7 @@ interface SettingsControllerType {
settings: () => Settings; settings: () => Settings;
saveOnLeave: (settings: () => Partial<Settings>) => void; saveOnLeave: (settings: () => Partial<Settings>) => void;
save: (settings: Settings) => Promise<void>; save: (settings: Settings) => Promise<void>;
refetch: () => void;
} }
const SettingsContext = createContext() as Context<SettingsControllerType>; const SettingsContext = createContext() as Context<SettingsControllerType>;
@ -44,6 +45,7 @@ export function SettingsProvider(props: ParentProps) {
syncSettings(settings); syncSettings(settings);
await refetch(); await refetch();
}, },
refetch,
}; };
if (getProgramInfo().dev_build) if (getProgramInfo().dev_build)
@ -65,6 +67,8 @@ export function useSettings() {
if (!context) if (!context)
throw new Error('useSettingsContext should be called inside its SettingsProvider'); throw new Error('useSettingsContext should be called inside its SettingsProvider');
context.refetch();
return context; return context;
} }

View file

@ -54,7 +54,7 @@ pub async fn install_java_from_major(java_version: u32) -> crate::Result<PathBuf
let package = packages let package = packages
.into_iter() .into_iter()
.find(|p| p.java_version.contains(&java_version)) .find(|p| p.java_version.contains(&java_version))
.ok_or(anyhow::anyhow!( .ok_or_else(|| anyhow::anyhow!(
"Could not find a java package for version {}", "Could not find a java package for version {}",
java_version java_version
))?; ))?;
@ -65,7 +65,7 @@ pub async fn install_java_from_major(java_version: u32) -> crate::Result<PathBuf
#[onelauncher_macros::memory] #[onelauncher_macros::memory]
pub async fn install_java_from_package(download: JavaZuluPackage) -> crate::Result<PathBuf> { pub async fn install_java_from_package(download: JavaZuluPackage) -> crate::Result<PathBuf> {
let state = State::get().await?; let state = State::get().await?;
let java_version = *download.java_version.get(0).unwrap_or(&0); let java_version = *download.java_version.first().unwrap_or(&0);
let ingress = init_ingress( let ingress = init_ingress(
crate::IngressType::DownloadJava { crate::IngressType::DownloadJava {