39 lines
972 B
JavaScript
39 lines
972 B
JavaScript
function encodeSegment(value) {
|
|
return encodeURIComponent(String(value || '').trim())
|
|
}
|
|
|
|
export function homePath(query = '') {
|
|
const normalized = String(query || '').trim()
|
|
return normalized ? `/?q=${encodeURIComponent(normalized)}` : '/'
|
|
}
|
|
|
|
export function loginPath(redirect = '') {
|
|
const normalized = String(redirect || '').trim()
|
|
return normalized ? `/login?redirect=${encodeURIComponent(normalized)}` : '/login'
|
|
}
|
|
|
|
export function topicPath(topicId) {
|
|
return `/topics/${encodeSegment(topicId)}`
|
|
}
|
|
|
|
export function editorNewPath(topicId) {
|
|
return `/editor/${encodeSegment(topicId)}/new`
|
|
}
|
|
|
|
export function editorPath(topicId, tierListId, { preview = false } = {}) {
|
|
const base = `/editor/${encodeSegment(topicId)}/${encodeSegment(tierListId)}`
|
|
return preview ? `${base}?preview=1` : base
|
|
}
|
|
|
|
export function mePath() {
|
|
return '/me'
|
|
}
|
|
|
|
export function favoritesPath() {
|
|
return '/favorites'
|
|
}
|
|
|
|
export function profilePath() {
|
|
return '/profile'
|
|
}
|