add @user
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
export interface Route {
|
||||
type: 'blog' | 'post' | 'browser-services' | 'browser-collections' | 'browser-record' | 'new'
|
||||
type: 'blog' | 'post' | 'browser-services' | 'browser-collections' | 'browser-record' | 'new' | 'user-blog' | 'user-post'
|
||||
handle?: string
|
||||
collection?: string
|
||||
rkey?: string
|
||||
@@ -33,6 +33,16 @@ export function parseRoute(pathname: string): Route {
|
||||
return { type: 'new' }
|
||||
}
|
||||
|
||||
// /@${handle} - User blog (any user's posts)
|
||||
// /@${handle}/post/${rkey} - User post detail
|
||||
if (parts[0].startsWith('@')) {
|
||||
const handle = parts[0].slice(1) // Remove @ prefix
|
||||
if (parts[1] === 'post' && parts[2]) {
|
||||
return { type: 'user-post', handle, rkey: parts[2] }
|
||||
}
|
||||
return { type: 'user-blog', handle }
|
||||
}
|
||||
|
||||
// /at/${handle} - Browser services
|
||||
// /at/${handle}/${service-or-collection} - Browser collections or records
|
||||
// /at/${handle}/${collection}/${rkey} - Browser record detail
|
||||
@@ -75,6 +85,10 @@ export function buildPath(route: Route): string {
|
||||
return '/new'
|
||||
case 'post':
|
||||
return `/post/${route.rkey}`
|
||||
case 'user-blog':
|
||||
return `/@${route.handle}`
|
||||
case 'user-post':
|
||||
return `/@${route.handle}/post/${route.rkey}`
|
||||
case 'browser-services':
|
||||
return `/at/${route.handle}`
|
||||
case 'browser-collections':
|
||||
|
||||
Reference in New Issue
Block a user