url-backward-compat
This commit is contained in:
parent
d003df96f2
commit
e03971193e
|
@ -1,6 +1,6 @@
|
||||||
import { RouteDefinition, RouteSectionProps, createAsync, useLocation } from '@solidjs/router'
|
import { RouteDefinition, RouteSectionProps, createAsync, useLocation } from '@solidjs/router'
|
||||||
import { HttpStatusCode } from '@solidjs/start'
|
import { HttpStatusCode } from '@solidjs/start'
|
||||||
import { ErrorBoundary, Show, Suspense, createEffect, createSignal, on, onMount } from 'solid-js'
|
import { ErrorBoundary, Show, Suspense, createEffect, on, onMount } from 'solid-js'
|
||||||
import { FourOuFourView } from '~/components/Views/FourOuFour'
|
import { FourOuFourView } from '~/components/Views/FourOuFour'
|
||||||
import { Loading } from '~/components/_shared/Loading'
|
import { Loading } from '~/components/_shared/Loading'
|
||||||
import { gaIdentity } from '~/config'
|
import { gaIdentity } from '~/config'
|
||||||
|
@ -28,9 +28,9 @@ export const route: RouteDefinition = {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
type ArticlePageProps = { article?: Shout; comments?: Reaction[]; votes?: Reaction[]; author?: Author }
|
export type ArticlePageProps = { article?: Shout; comments?: Reaction[]; votes?: Reaction[]; author?: Author }
|
||||||
|
|
||||||
type SlugPageProps = {
|
export type SlugPageProps = {
|
||||||
article?: Shout
|
article?: Shout
|
||||||
comments?: Reaction[]
|
comments?: Reaction[]
|
||||||
votes?: Reaction[]
|
votes?: Reaction[]
|
||||||
|
@ -38,7 +38,7 @@ type SlugPageProps = {
|
||||||
topics: Topic[]
|
topics: Topic[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export default (props: RouteSectionProps<SlugPageProps>) => {
|
export default function ArticlePage(props: RouteSectionProps<SlugPageProps>) {
|
||||||
if (props.params.slug.startsWith('@')) {
|
if (props.params.slug.startsWith('@')) {
|
||||||
console.debug('[routes] [slug]/[...tab] starts with @, render as author page')
|
console.debug('[routes] [slug]/[...tab] starts with @, render as author page')
|
||||||
const patchedProps = {
|
const patchedProps = {
|
||||||
|
@ -66,7 +66,6 @@ export default (props: RouteSectionProps<SlugPageProps>) => {
|
||||||
function ArticlePage(props: RouteSectionProps<ArticlePageProps>) {
|
function ArticlePage(props: RouteSectionProps<ArticlePageProps>) {
|
||||||
const loc = useLocation()
|
const loc = useLocation()
|
||||||
const { t } = useLocalize()
|
const { t } = useLocalize()
|
||||||
const [scrollToComments, setScrollToComments] = createSignal<boolean>(false)
|
|
||||||
const data = createAsync(async () => props.data?.article || (await fetchShout(props.params.slug)))
|
const data = createAsync(async () => props.data?.article || (await fetchShout(props.params.slug)))
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
|
@ -114,10 +113,9 @@ export default (props: RouteSectionProps<SlugPageProps>) => {
|
||||||
headerTitle={data()?.title || ''}
|
headerTitle={data()?.title || ''}
|
||||||
slug={data()?.slug}
|
slug={data()?.slug}
|
||||||
cover={data()?.cover || ''}
|
cover={data()?.cover || ''}
|
||||||
scrollToComments={(value) => setScrollToComments(value)}
|
|
||||||
>
|
>
|
||||||
<ReactionsProvider>
|
<ReactionsProvider>
|
||||||
<FullArticle article={data() as Shout} scrollToComments={scrollToComments()} />
|
<FullArticle article={data() as Shout} />
|
||||||
</ReactionsProvider>
|
</ReactionsProvider>
|
||||||
</PageLayout>
|
</PageLayout>
|
||||||
</Show>
|
</Show>
|
||||||
|
@ -127,3 +125,4 @@ export default (props: RouteSectionProps<SlugPageProps>) => {
|
||||||
}
|
}
|
||||||
return <ArticlePage {...props} />
|
return <ArticlePage {...props} />
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
3
src/routes/articles/[topic]/[slug].tsx
Normal file
3
src/routes/articles/[topic]/[slug].tsx
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import ArticlePage from "~/routes/[slug]/[...tab]"
|
||||||
|
|
||||||
|
export default ArticlePage
|
Loading…
Reference in New Issue
Block a user