Fix serverless crash + Version Filters on reload (#1050)

This commit is contained in:
Geometrically
2023-03-14 15:33:10 -07:00
committed by GitHub
parent 078e952f30
commit 437b2ab30a
7 changed files with 85 additions and 82 deletions

View File

@@ -7,15 +7,7 @@
<Meta name="apple-mobile-web-app-title" :content="`${props.project.title} - Changelog`" />
<Meta name="og:description" :content="metaDescription" />
</Head>
<VersionFilterControl
:versions="props.versions"
@update-versions="
(v) => {
filteredVersions = v
switchPage(1)
}
"
/>
<VersionFilterControl :versions="props.versions" />
<Pagination
:page="currentPage"
:count="Math.ceil(filteredVersions.length / 20)"
@@ -114,15 +106,32 @@ const metaDescription = computed(
const route = useRoute()
const currentPage = ref(Number(route.query.p ?? 1))
const filteredVersions = shallowRef(props.versions)
const filteredVersions = computed(() => {
const selectedGameVersions = getArrayOrString(route.query.g) ?? []
const selectedLoaders = getArrayOrString(route.query.l) ?? []
const selectedVersionTypes = getArrayOrString(route.query.c) ?? []
async function switchPage(page) {
currentPage.value = 1
return props.versions.filter(
(projectVersion) =>
(selectedGameVersions.length === 0 ||
selectedGameVersions.some((gameVersion) =>
projectVersion.game_versions.includes(gameVersion)
)) &&
(selectedLoaders.length === 0 ||
selectedLoaders.some((loader) => projectVersion.loaders.includes(loader))) &&
(selectedVersionTypes.length === 0 ||
selectedVersionTypes.includes(projectVersion.version_type))
)
})
function switchPage(page) {
currentPage.value = page
const router = useRouter()
const route = useRoute()
await router.replace({
router.replace({
query: {
...route.query,
p: currentPage.value !== 1 ? currentPage.value : undefined,

View File

@@ -22,15 +22,7 @@
</span>
<DropArea :accept="acceptFileFromProjectType(project.project_type)" @change="handleFiles" />
</div>
<VersionFilterControl
:versions="props.versions"
@update-versions="
(v) => {
filteredVersions = v
switchPage(1)
}
"
/>
<VersionFilterControl :versions="props.versions" />
<Pagination
:page="currentPage"
:count="Math.ceil(filteredVersions.length / 20)"
@@ -161,15 +153,32 @@ const metaDescription = computed(
const route = useRoute()
const currentPage = ref(Number(route.query.p ?? 1))
const filteredVersions = shallowRef(props.versions)
const filteredVersions = computed(() => {
const selectedGameVersions = getArrayOrString(route.query.g) ?? []
const selectedLoaders = getArrayOrString(route.query.l) ?? []
const selectedVersionTypes = getArrayOrString(route.query.c) ?? []
async function switchPage(page) {
currentPage.value = 1
return props.versions.filter(
(projectVersion) =>
(selectedGameVersions.length === 0 ||
selectedGameVersions.some((gameVersion) =>
projectVersion.game_versions.includes(gameVersion)
)) &&
(selectedLoaders.length === 0 ||
selectedLoaders.some((loader) => projectVersion.loaders.includes(loader))) &&
(selectedVersionTypes.length === 0 ||
selectedVersionTypes.includes(projectVersion.version_type))
)
})
function switchPage(page) {
currentPage.value = page
const router = useRouter()
const route = useRoute()
await router.replace({
router.replace({
query: {
...route.query,
p: currentPage.value !== 1 ? currentPage.value : undefined,

View File

@@ -406,14 +406,6 @@ export default defineNuxtComponent({
const currentPage = ref(1)
const projectType = ref({ id: 'mod', display: 'mod', actual: 'mod' })
function getArrayOrString(x) {
if (typeof x === 'string' || x instanceof String) {
return [x]
} else {
return x
}
}
if (route.query.q) {
query.value = route.query.q
}