1010</template >
1111
1212<script setup lang="ts">
13+ definePageMeta ({
14+ alias: [' /projects-staging/:org/:repo/:parts*' ],
15+ })
16+
1317const route = useRoute (' projects-org-repo-parts' )
1418const org = route .params .org
1519const repo = route .params .repo
16- const subpageId = route .params .parts ! .join (' ::' )
20+ const subpageId = route .params .parts ? .join ?. (' ::' )
1721
1822const id = [org , repo ].join (' ::' )
1923
2024const env = route .path .includes (' -staging' ) ? Env .STAGING : Env .PROD
25+ const isStaging = env === Env .STAGING
26+
27+ if (isStaging ) {
28+ useHead ({
29+ meta: [
30+ { ' http-equiv' : ' Cache-Control' , ' content' : ' no-store' },
31+ { name: ' robots' , content: ' noindex, nofollow' },
32+ ],
33+ })
34+ onMounted (() => {
35+ refreshConfig ()
36+ refreshContent ()
37+ })
38+ }
2139
22- const [{ data : config }, { data : content }] = await Promise .all ([
23- useAsyncData (` projects/${org }/${repo } ` , () => getProjectConfig (id , env )),
24- useAsyncData (` projects/${org }/${repo }/${route .params .parts ! .join (' /' )} ` , () => getSubpage (id , env , subpageId )),
40+ const [
41+ { data : config, refresh : refreshConfig },
42+ { data : content, refresh : refreshContent },
43+ ] = await Promise .all ([
44+ useAsyncData (` projects${isStaging ? ' -staging' : ' ' }/${org }/${repo } ` , () => getProjectConfig (id , env )),
45+ useAsyncData (` projects${isStaging ? ' -staging' : ' ' }/${org }/${repo }/${subpageId || ' :README' } ` , () =>
46+ subpageId ? getSubpage (id , env , subpageId ) : getProjectContent (id , env ),
47+ ),
2548])
2649
2750let pageTitle = ' '
@@ -31,6 +54,7 @@ if (config.value && content.value) {
3154 pageTitle = calculatePageTitle (content .value , config .value , repo )
3255}
3356else {
57+ // TODO do something better
3458 redirectTo = ` http://github.com/${org }/${repo } `
3559 navigateTo (redirectTo , { external: true })
3660}
0 commit comments