refactor: use X-style route paths

This commit is contained in:
2026-07-26 13:29:38 +09:00
parent 604c7f16e2
commit 766d13dfcc
19 changed files with 320 additions and 179 deletions
@@ -46,8 +46,8 @@ export function ListPicker({ selectedId }: { selectedId?: string }) {
<li key={list.id}>
<Link
aria-current={selectedId === list.id ? 'page' : undefined}
search={{ target: list.id }}
to="/list"
params={{ listId: list.id }}
to="/i/lists/$listId"
>
<span>{list.name}</span>
<small>
@@ -85,7 +85,7 @@ describe('PostCard', () => {
expect(
screen.getByRole('link', { name: '詳細・スレッド' }),
).toHaveAttribute('href', '/status/123')
).toHaveAttribute('href', '/yuta/status/123')
})
it('marks the focal post without linking to its current page', () => {
+3 -1
View File
@@ -91,7 +91,9 @@ export function PostCard({
{post.likeCount ?? 0}
</span>
{!current ? (
<a href={`/status/${encodeURIComponent(post.id)}`}>
<a
href={`/${encodeURIComponent(post.author.username)}/status/${encodeURIComponent(post.id)}`}
>
詳細・スレッド
</a>
) : null}
-9
View File
@@ -1,7 +1,6 @@
import { describe, expect, it } from 'vitest'
import {
buildSearchQuery,
listRouteSearchSchema,
normalizeListTarget,
normalizeTweetId,
normalizeUserTarget,
@@ -91,14 +90,6 @@ describe('normalizeListTarget', () => {
})
})
describe('listRouteSearchSchema', () => {
it('keeps a numeric list target from a hand-entered URL', () => {
expect(listRouteSearchSchema.parse({ target: 1234567890 })).toEqual({
target: '1234567890',
})
})
})
describe('buildSearchQuery', () => {
it('keeps a deliberate query unchanged', () => {
expect(buildSearchQuery(' AI lang:ja ', false)).toBe('AI lang:ja')
-9
View File
@@ -43,15 +43,6 @@ export const searchPageInputSchema = z.object({
cursor: z.string().min(1).optional(),
})
export const userRouteSearchSchema = z.object({
target: z.string().catch(''),
})
export const listRouteSearchSchema = z.object({
// List IDs are numeric, and the router JSON-parses numeric search values.
target: z.coerce.string().catch(''),
})
export const postSearchRouteSchema = z.object({
q: z.string().catch(''),
product: z.enum(['Top', 'Latest']).catch('Latest'),