Skip to content

Commit 28337c8

Browse files
authored
Fix redirect from project ID (#4298)
* Fix redirect from project ID * improve fix * lint
1 parent a6d08e9 commit 28337c8

File tree

1 file changed

+35
-27
lines changed

1 file changed

+35
-27
lines changed

apps/frontend/src/pages/[type]/[id].vue

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,6 @@ import { reportProject } from '~/utils/report-helpers.ts'
10051005
10061006
const data = useNuxtApp()
10071007
const route = useNativeRoute()
1008-
const router = useRouter()
10091008
const config = useRuntimeConfig()
10101009
const moderationStore = useModerationStore()
10111010
const notifications = injectNotificationManager()
@@ -1440,30 +1439,18 @@ try {
14401439
tags.value,
14411440
)
14421441
projectId.value = project.id
1443-
if (route.params.id !== project.slug) {
1444-
router.replace({
1445-
name: route.name,
1446-
params: {
1447-
...route.params,
1448-
id: project.slug,
1449-
},
1450-
query: route.query,
1451-
hash: route.hash,
1452-
})
1453-
}
14541442
}
1455-
14561443
return project
14571444
},
14581445
}),
1459-
useAsyncData(`projectV3/${route.params.id}`, () =>
1460-
useBaseFetch(`project/${route.params.id}`, {
1446+
useAsyncData(`projectV3/${projectId.value}`, () =>
1447+
useBaseFetch(`project/${projectId.value}`, {
14611448
apiVersion: 3,
14621449
}),
14631450
),
14641451
useAsyncData(
1465-
`project/${route.params.id}/members`,
1466-
() => useBaseFetch(`project/${route.params.id}/members`, { apiVersion: 3 }),
1452+
`project/${projectId.value}/members`,
1453+
() => useBaseFetch(`project/${projectId.value}/members`, { apiVersion: 3 }),
14671454
{
14681455
transform: (members) => {
14691456
members.forEach((it, index) => {
@@ -1475,20 +1462,22 @@ try {
14751462
},
14761463
},
14771464
),
1478-
useAsyncData(`project/${route.params.id}/dependencies`, () =>
1479-
useBaseFetch(`project/${route.params.id}/dependencies`, {}),
1465+
useAsyncData(`project/${projectId.value}/dependencies`, () =>
1466+
useBaseFetch(`project/${projectId.value}/dependencies`, {}),
14801467
),
1481-
useAsyncData(`project/${route.params.id}/version?featured=true`, () =>
1482-
useBaseFetch(`project/${route.params.id}/version?featured=true`),
1468+
useAsyncData(`project/${projectId.value}/version?featured=true`, () =>
1469+
useBaseFetch(`project/${projectId.value}/version?featured=true`),
14831470
),
1484-
useAsyncData(`project/${route.params.id}/version`, () =>
1485-
useBaseFetch(`project/${route.params.id}/version`),
1471+
useAsyncData(`project/${projectId.value}/version`, () =>
1472+
useBaseFetch(`project/${projectId.value}/version`),
14861473
),
1487-
useAsyncData(`project/${route.params.id}/organization`, () =>
1488-
useBaseFetch(`project/${route.params.id}/organization`, { apiVersion: 3 }),
1474+
useAsyncData(`project/${projectId.value}/organization`, () =>
1475+
useBaseFetch(`project/${projectId.value}/organization`, { apiVersion: 3 }),
14891476
),
14901477
])
14911478
1479+
await updateProjectRoute()
1480+
14921481
versions = shallowRef(toRaw(versions))
14931482
featuredVersions = shallowRef(toRaw(featuredVersions))
14941483
} catch (err) {
@@ -1501,6 +1490,23 @@ try {
15011490
})
15021491
}
15031492
1493+
async function updateProjectRoute() {
1494+
if (project.value && route.params.id !== project.value.slug) {
1495+
await navigateTo(
1496+
{
1497+
name: route.name,
1498+
params: {
1499+
...route.params,
1500+
id: project.value.slug,
1501+
},
1502+
query: route.query,
1503+
hash: route.hash,
1504+
},
1505+
{ replace: true },
1506+
)
1507+
}
1508+
}
1509+
15041510
async function resetProject() {
15051511
await resetProjectV2()
15061512
await resetProjectV3()
@@ -1714,6 +1720,8 @@ async function patchProject(resData, quiet = false) {
17141720
project.value[key] = resData[key]
17151721
}
17161722
1723+
await updateProjectRoute()
1724+
17171725
if (resData.license_id) {
17181726
project.value.license.id = resData.license_id
17191727
}
@@ -1781,8 +1789,8 @@ async function patchIcon(icon) {
17811789
17821790
async function updateMembers() {
17831791
allMembers.value = await useAsyncData(
1784-
`project/${route.params.id}/members`,
1785-
() => useBaseFetch(`project/${route.params.id}/members`),
1792+
`project/${projectId.value}/members`,
1793+
() => useBaseFetch(`project/${projectId.value}/members`),
17861794
{
17871795
transform: (members) => {
17881796
members.forEach((it, index) => {

0 commit comments

Comments
 (0)