You've already forked AstralRinth
forked from didirus/AstralRinth
refactor: align files tab with content tab design (#5621)
* fix: files.vue bugs before styling changes * feat: move files tab to shared layout structure * fix: qa * fix: qa * fix: bugs * fix: lint * fix: admonition cleanup with progress + actions * fix: cleanup * fix: modals * fix: admon title * fix: i18n standard * fix: lint + i18n pass * fix: remove transition * fix: type errors * feat: files tab in app * fix: qa * fix: backup item minmax * fix: use ContentPageHeader for server panel * fix: lint * fix: lint * fix: lint * feat: page leave safety * fix: lint * fix: cargo fmt fix * fix: blank in prod * fix: content card table stuff * Revert "fix: blank in prod" This reverts commit 74758fe185cf85a4a20355857f889cb091b97ace. * fix: import * feat: browse worlds/servers flow * fix: worlds tab parity with content tab * fix: perf bug + shader filter pill copy * feat: singleplayer filter * fix: ordering * fix: breadcrumbs * fix: lint * fix: qa * feat: store server proj id when adding to a non-linked instance * fix: lint * fix: i18n + qa * fix: conflict * qa: already installed modal + placeholders not server-specific * fix: qa * fix: add + edit server modals * fix: qa * fix: security * fix: devin flags * fix: lint * chore: change file to break build cache * fix: admon * fix: import path stuff * feat: qa * fix: fmt fmt idiot --------- Signed-off-by: Calum H. <calum@modrinth.com>
This commit is contained in:
@@ -68,10 +68,23 @@ pub async fn get_importable_instances(
|
||||
.await
|
||||
.unwrap_or_else(|| "instances".to_string()),
|
||||
ImportLauncherType::Unknown => {
|
||||
return Err(crate::ErrorKind::InputError(
|
||||
"Launcher type Unknown".to_string(),
|
||||
)
|
||||
.into());
|
||||
let types = [
|
||||
ImportLauncherType::MultiMC,
|
||||
ImportLauncherType::PrismLauncher,
|
||||
ImportLauncherType::ATLauncher,
|
||||
ImportLauncherType::GDLauncher,
|
||||
ImportLauncherType::Curseforge,
|
||||
];
|
||||
for lt in types {
|
||||
if let Ok(instances) =
|
||||
Box::pin(get_importable_instances(lt, base_path.clone()))
|
||||
.await
|
||||
&& !instances.is_empty()
|
||||
{
|
||||
return Ok(instances);
|
||||
}
|
||||
}
|
||||
return Ok(Vec::new());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -144,10 +157,39 @@ pub async fn import_instance(
|
||||
.await
|
||||
}
|
||||
ImportLauncherType::Unknown => {
|
||||
return Err(crate::ErrorKind::InputError(
|
||||
"Launcher type Unknown".to_string(),
|
||||
)
|
||||
.into());
|
||||
let types = [
|
||||
ImportLauncherType::MultiMC,
|
||||
ImportLauncherType::PrismLauncher,
|
||||
ImportLauncherType::ATLauncher,
|
||||
ImportLauncherType::GDLauncher,
|
||||
ImportLauncherType::Curseforge,
|
||||
];
|
||||
let mut matched = false;
|
||||
for lt in types {
|
||||
if let Ok(instances) =
|
||||
Box::pin(get_importable_instances(lt, base_path.clone()))
|
||||
.await
|
||||
&& instances.contains(&instance_folder)
|
||||
{
|
||||
matched = true;
|
||||
Box::pin(import_instance(
|
||||
profile_path,
|
||||
lt,
|
||||
base_path,
|
||||
instance_folder,
|
||||
))
|
||||
.await?;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if !matched {
|
||||
return Err(crate::ErrorKind::InputError(
|
||||
"Could not determine launcher type for the given path"
|
||||
.to_string(),
|
||||
)
|
||||
.into());
|
||||
}
|
||||
return Ok(());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user