feat: sites and authors integration into existing screens (& formated all frontend files kinda accidentally)

This commit is contained in:
Florian Sylvain committed 2026-10-15 05:25:44 +02:00
1 parent 3d81d2c717
commit 6b8990c55e
239 files changed
+9194 -1354

No files matched your search

+7
View File
@@ -9,6 +9,7 @@ export const DEFAULT_ARTICLE_SORT = 'updated_at:desc'
export const ARTICLE_SORT_FIELDS = ['title', 'status', 'created_at', 'updated_at'] as const
export type ArticleSortField = (typeof ARTICLE_SORT_FIELDS)[number]
const SITE_KEY_MAX = 32
const POSITIVE_INTEGER = /^[1-9]\d*$/
export interface ArticleListQuery {
@@ -17,6 +18,7 @@ export interface ArticleListQuery {
q: string
status: ArticleStatus | ''
sort: string
site: string
}
function first(value: LocationQuery[string] | undefined) {
@@ -49,6 +51,7 @@ export function parseArticleQuery(query: LocationQuery): ArticleListQuery {
q: first(query.q).slice(0, ARTICLE_SEARCH_MAX_LENGTH),
status: status === 'online' || status === 'draft' ? status : '',
sort: validSort(first(query.sort)),
site: first(query.site).slice(0, SITE_KEY_MAX),
}
}
@@ -69,6 +72,9 @@ export function toRouteQuery(query: ArticleListQuery) {
if (effectiveSort(query.sort) !== DEFAULT_ARTICLE_SORT) {
route.sort = query.sort
}
if (query.site) {
route.site = query.site
}
return route
}
@@ -78,6 +84,7 @@ export function sameArticleQuery(left: ArticleListQuery, right: ArticleListQuery
left.size === right.size &&
left.q === right.q &&
left.status === right.status &&
left.site === right.site &&
effectiveSort(left.sort) === effectiveSort(right.sort)
)
}