0.8.0 beta fixes (#2154)

* initial fixes

* 0.8.0 beta fixes

* run actions

* run fmt

* Fix windows build

* Add purge cache opt

* add must revalidate to project req

* lint + clippy

* fix processes, open folder

* Update migrator to use old launcher cache for perf

* fix empty dirs not moving

* fix lint + create natives dir if not exist

* fix large request batches

* finish

* Fix deep linking on mac

* fix comp err

* fix comp err (2)

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
This commit is contained in:
Geometrically
2024-08-16 23:20:11 -07:00
committed by GitHub
parent 3a4843fb46
commit 910e219c0e
66 changed files with 1961 additions and 1896 deletions

View File

@@ -174,9 +174,13 @@ const options = ref(null)
const startInstance = async (context) => {
loading.value = true
run(route.params.id).catch(handleSevereError)
try {
await run(route.params.id)
playing.value = true
} catch (err) {
handleSevereError(err)
}
loading.value = false
playing.value = true
mixpanel_track('InstanceStart', {
loader: instance.value.loader,
@@ -194,13 +198,19 @@ const checkProcess = async () => {
// Get information on associated modrinth versions, if any
const modrinthVersions = ref([])
if (!offline.value && instance.value.linked_data && instance.value.linked_data.project_id) {
const project = await get_project(instance.value.linked_data.project_id).catch(handleError)
if (project && project.versions) {
modrinthVersions.value = (await get_version_many(project.versions).catch(handleError)).sort(
(a, b) => dayjs(b.date_published) - dayjs(a.date_published),
)
}
get_project(instance.value.linked_data.project_id, 'must_revalidate')
.catch(handleError)
.then((project) => {
if (project && project.versions) {
get_version_many(project.versions, 'must_revalidate')
.catch(handleError)
.then((versions) => {
modrinthVersions.value = versions.sort(
(a, b) => dayjs(b.date_published) - dayjs(a.date_published),
)
})
}
})
}
await checkProcess()

View File

@@ -25,13 +25,21 @@
</Button>
</div>
</div>
<Button
v-tooltip="'Refresh projects'"
icon-only
:disabled="refreshingProjects"
@click="refreshProjects"
>
<UpdatedIcon />
</Button>
<Button
v-if="canUpdatePack"
:disabled="installing"
color="secondary"
@click="modpackVersionModal.show()"
>
<UpdatedIcon />
<DownloadIcon />
{{ installing ? 'Updating' : 'Update modpack' }}
</Button>
<Button v-else-if="!isPackLocked" @click="exportModal.show()">
@@ -39,7 +47,7 @@
Export modpack
</Button>
<Button v-if="!isPackLocked && projects.some((m) => m.outdated)" @click="updateAll">
<UpdatedIcon />
<DownloadIcon />
Update all
</Button>
<AddContentButton v-if="!isPackLocked" :instance="instance" />
@@ -347,6 +355,7 @@ import {
EyeIcon,
EyeOffIcon,
CodeIcon,
DownloadIcon,
} from '@modrinth/assets'
import {
Pagination,
@@ -438,10 +447,10 @@ const exportModal = ref(null)
const projects = ref([])
const selectionMap = ref(new Map())
const initProjects = async () => {
const initProjects = async (cacheBehaviour) => {
const newProjects = []
const profileProjects = await get_projects(props.instance.path)
const profileProjects = await get_projects(props.instance.path, cacheBehaviour)
const fetchProjects = []
const fetchVersions = []
@@ -536,7 +545,7 @@ const ascending = ref(true)
const sortColumn = ref('Name')
const currentPage = ref(1)
watch(searchFilter, () => (currentPage.value = 1))
watch([searchFilter, selectedProjectType], () => (currentPage.value = 1))
const selected = computed(() =>
Array.from(selectionMap.value)
@@ -846,18 +855,25 @@ watch(selectAll, () => {
}
})
const switchPage = (page) => {
currentPage.value = page
}
const refreshingProjects = ref(false)
async function refreshProjects() {
refreshingProjects.value = true
await initProjects('bypass')
refreshingProjects.value = false
}
const unlisten = await listen('tauri://file-drop', async (event) => {
for (const file of event.payload) {
if (file.endsWith('.mrpack')) continue
await add_project_from_path(props.instance.path, file).catch(handleError)
}
initProjects(await get(props.instance.path).catch(handleError))
await initProjects()
})
const switchPage = (page) => {
currentPage.value = page
}
onUnmounted(() => {
unlisten()
})