ugly astro subrouter

This commit is contained in:
tonyrewin 2022-09-14 18:44:06 +03:00
parent 64443342a6
commit 55ccd419e2
8 changed files with 16 additions and 12 deletions

View File

@ -21,7 +21,7 @@ export const SearchPage = (props: Props) => {
setQuery(ev.target.value)
}
const handleSubmit = (ev) => {
const handleSubmit = (_ev) => {
// TODO page
// TODO sort
loadSearchResults({ query: getQuery() })

View File

@ -2,6 +2,7 @@
import { ArticlePage } from '../components/Views/ArticlePage'
import Zine from '../layouts/zine.astro'
import { apiClient } from '../utils/apiClient'
const slug = Astro.params.slug as string
if (slug.includes('/') || slug.includes('.map')) {

View File

@ -3,8 +3,8 @@ import { AuthorPage } from '../../../components/Views/Author'
import Zine from '../../../layouts/zine.astro'
import { apiClient } from '../../../utils/apiClient'
const limit = parseInt(Astro.params?.limit as string, 10) || 50
const offset = parseInt(Astro.params?.offset as string, 10) || 0
const limit = 50
const offset = 0
const slug = Astro.params.slug.toString()
const articles = await apiClient.getArticlesForAuthors({ authorSlugs: [slug], offset, limit })
const author = articles[0].authors.find((a) => a.slug === slug)

View File

@ -2,9 +2,11 @@
import { AllAuthorsPage } from '../components/Views/AllAuthors'
import Zine from '../layouts/zine.astro'
import { apiClient } from '../utils/apiClient'
import { byCreated, sortBy } from '../utils/sortby'
const authors = await apiClient.getAllAuthors()
const { by } = Object.fromEntries(Astro.url.searchParams.entries())
let authors = await apiClient.getAllAuthors()
authors = sortBy(authors, by || byCreated)
Astro.response.headers.set('Cache-Control', 's-maxage=1, stale-while-revalidate')
---

View File

@ -3,8 +3,8 @@ import { FeedPage } from '../../components/Views/Feed'
import Zine from '../../layouts/zine.astro'
import { apiClient } from '../../utils/apiClient'
const limit = parseInt(Astro.params?.limit as string, 10) || 50
const offset = parseInt(Astro.params?.offset as string, 10) || 0
const limit = 50
const offset = 0
const recentArticles = await apiClient.getRecentArticles({ limit, offset })
const shoutSlugs = recentArticles.map((s) => s.slug)
const reactions = await apiClient.getReactionsForShouts({ shoutSlugs })

View File

@ -3,8 +3,8 @@ import { HomePage } from '../components/Views/Home'
import Zine from '../layouts/zine.astro'
import { apiClient } from '../utils/apiClient'
const limit = parseInt(Astro.params?.limit as string, 10) || 50
const offset = parseInt(Astro.params?.offset as string, 10) || 0
const limit = 50
const offset = 0
const randomTopics = await apiClient.getRandomTopics()
const recentPublished = await apiClient.getRecentPublishedArticles({ limit, offset })
const topMonth = await apiClient.getTopMonthArticles()

View File

@ -2,9 +2,11 @@
import { AllTopicsPage } from '../components/Views/AllTopics'
import Zine from '../layouts/zine.astro'
import { apiClient } from '../utils/apiClient'
import { sortBy } from '../utils/sortby'
const topics = await apiClient.getAllTopics()
const { by } = Object.fromEntries(Astro.url.searchParams.entries())
let topics = await apiClient.getAllTopics()
topics = sortBy(topics, by || 'shouts')
Astro.response.headers.set('Cache-Control', 's-maxage=1, stale-while-revalidate')
---

View File

@ -1,5 +1,4 @@
import { createRouter, createSearchParams } from '@nanostores/router'
import { atom, computed, onMount } from 'nanostores'
import { createEffect } from 'solid-js'
import { isServer } from 'solid-js/web'