kopia lustrzana https://github.com/Tldraw/Tldraw
add leading slash back in explicitly
rodzic
68372b9d69
commit
16afcecb5d
|
@ -97,22 +97,22 @@ export class TLDrawDurableObject extends TLServer {
|
|||
|
||||
readonly router = Router()
|
||||
.get(
|
||||
`${ROOM_PREFIX}/:roomId`,
|
||||
`/${ROOM_PREFIX}/:roomId`,
|
||||
(req) => this.extractDocumentInfoFromRequest(req, ROOM_OPEN_MODE.READ_WRITE),
|
||||
(req) => this.onRequest(req)
|
||||
)
|
||||
.get(
|
||||
`${READ_ONLY_LEGACY_PREFIX}/:roomId`,
|
||||
`/${READ_ONLY_LEGACY_PREFIX}/:roomId`,
|
||||
(req) => this.extractDocumentInfoFromRequest(req, ROOM_OPEN_MODE.READ_ONLY_LEGACY),
|
||||
(req) => this.onRequest(req)
|
||||
)
|
||||
.get(
|
||||
`${READ_ONLY_PREFIX}/:roomId`,
|
||||
`/${READ_ONLY_PREFIX}/:roomId`,
|
||||
(req) => this.extractDocumentInfoFromRequest(req, ROOM_OPEN_MODE.READ_ONLY),
|
||||
(req) => this.onRequest(req)
|
||||
)
|
||||
.post(
|
||||
`${ROOM_PREFIX}/:roomId/restore`,
|
||||
`/${ROOM_PREFIX}/:roomId/restore`,
|
||||
(req) => this.extractDocumentInfoFromRequest(req, ROOM_OPEN_MODE.READ_WRITE),
|
||||
(req) => this.onRestore(req)
|
||||
)
|
||||
|
|
|
@ -12,6 +12,6 @@ export async function forwardRoomRequest(request: IRequest, env: Environment): P
|
|||
if (isRoomIdTooLong(roomId)) return roomIdIsTooLong()
|
||||
|
||||
// Set up the durable object for this room
|
||||
const id = env.TLDR_DOC.idFromName(`${ROOM_PREFIX}/${roomId}`)
|
||||
const id = env.TLDR_DOC.idFromName(`/${ROOM_PREFIX}/${roomId}`)
|
||||
return env.TLDR_DOC.get(id).fetch(request)
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ export async function joinExistingRoom(
|
|||
// This needs to be a websocket request!
|
||||
if (request.headers.get('upgrade')?.toLowerCase() === 'websocket') {
|
||||
// Set up the durable object for this room
|
||||
const id = env.TLDR_DOC.idFromName(`${ROOM_PREFIX}/${roomId}`)
|
||||
const id = env.TLDR_DOC.idFromName(`/${ROOM_PREFIX}/${roomId}`)
|
||||
return env.TLDR_DOC.get(id).fetch(request)
|
||||
}
|
||||
|
||||
|
|
|
@ -31,19 +31,19 @@ const router = Router()
|
|||
.post('/new-room', createRoom)
|
||||
.post('/snapshots', createRoomSnapshot)
|
||||
.get('/snapshot/:roomId', getRoomSnapshot)
|
||||
.get(`${ROOM_PREFIX}/:roomId`, (req, env) =>
|
||||
.get(`/${ROOM_PREFIX}/:roomId`, (req, env) =>
|
||||
joinExistingRoom(req, env, ROOM_OPEN_MODE.READ_WRITE)
|
||||
)
|
||||
.get(`${READ_ONLY_LEGACY_PREFIX}/:roomId`, (req, env) =>
|
||||
.get(`/${READ_ONLY_LEGACY_PREFIX}/:roomId`, (req, env) =>
|
||||
joinExistingRoom(req, env, ROOM_OPEN_MODE.READ_ONLY_LEGACY)
|
||||
)
|
||||
.get(`${READ_ONLY_PREFIX}/:roomId`, (req, env) =>
|
||||
.get(`/${READ_ONLY_PREFIX}/:roomId`, (req, env) =>
|
||||
joinExistingRoom(req, env, ROOM_OPEN_MODE.READ_ONLY)
|
||||
)
|
||||
.get(`${ROOM_PREFIX}/:roomId/history`, getRoomHistory)
|
||||
.get(`${ROOM_PREFIX}/:roomId/history/:timestamp`, getRoomHistorySnapshot)
|
||||
.get(`/${ROOM_PREFIX}/:roomId/history`, getRoomHistory)
|
||||
.get(`/${ROOM_PREFIX}/:roomId/history/:timestamp`, getRoomHistorySnapshot)
|
||||
.get('/readonly-slug/:roomId', getReadonlySlug)
|
||||
.post(`${ROOM_PREFIX}/:roomId/restore`, forwardRoomRequest)
|
||||
.post(`/${ROOM_PREFIX}/:roomId/restore`, forwardRoomRequest)
|
||||
.all('*', fourOhFour)
|
||||
|
||||
const Worker = {
|
||||
|
|
|
@ -32,7 +32,7 @@ export function BoardHistorySnapshot({
|
|||
const sure = window.confirm('Are you sure?')
|
||||
if (!sure) return
|
||||
|
||||
const res = await fetch(`/api${ROOM_PREFIX}/${roomId}/restore`, {
|
||||
const res = await fetch(`/api/${ROOM_PREFIX}/${roomId}/restore`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
|
|
|
@ -44,7 +44,7 @@ function isSharedReadonlyUrl(pathname: string) {
|
|||
}
|
||||
|
||||
function isSharedReadWriteUrl(pathname: string) {
|
||||
return pathname.startsWith(`${ROOM_PREFIX}/`)
|
||||
return pathname.startsWith(`/${ROOM_PREFIX}/`)
|
||||
}
|
||||
|
||||
function getFreshShareState(): ShareState {
|
||||
|
|
|
@ -12,7 +12,7 @@ const { loader, useData } = defineLoader(async (args) => {
|
|||
|
||||
if (!roomId) return null
|
||||
|
||||
const result = await fetch(`/api${ROOM_PREFIX}/${roomId}/history/${timestamp}`, {
|
||||
const result = await fetch(`/api/${ROOM_PREFIX}/${roomId}/history/${timestamp}`, {
|
||||
headers: {},
|
||||
})
|
||||
if (!result.ok) return null
|
||||
|
|
|
@ -9,7 +9,7 @@ const { loader, useData } = defineLoader(async (args) => {
|
|||
|
||||
if (!boardId) return null
|
||||
|
||||
const result = await fetch(`/api${ROOM_PREFIX}/${boardId}/history`, {
|
||||
const result = await fetch(`/api/${ROOM_PREFIX}/${boardId}/history`, {
|
||||
headers: {},
|
||||
})
|
||||
if (!result.ok) return null
|
||||
|
|
|
@ -36,5 +36,5 @@ export function Component() {
|
|||
}}
|
||||
/>
|
||||
)
|
||||
return <Navigate to={`${ROOM_PREFIX}/${data.slug}`} />
|
||||
return <Navigate to={`/${ROOM_PREFIX}/${data.slug}`} />
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { captureException } from '@sentry/react'
|
||||
import { READ_ONLY_LEGACY_PREFIX, READ_ONLY_PREFIX, ROOM_PREFIX } from '@tldraw/dotcom-shared'
|
||||
import { useEffect } from 'react'
|
||||
import { createRoutesFromElements, Outlet, Route, useRouteError } from 'react-router-dom'
|
||||
import { Outlet, Route, createRoutesFromElements, useRouteError } from 'react-router-dom'
|
||||
import { DefaultErrorFallback } from './components/DefaultErrorFallback/DefaultErrorFallback'
|
||||
import { ErrorPage } from './components/ErrorPage/ErrorPage'
|
||||
|
||||
|
@ -30,20 +30,20 @@ export const router = createRoutesFromElements(
|
|||
>
|
||||
<Route errorElement={<DefaultErrorFallback />}>
|
||||
<Route path="/" lazy={() => import('./pages/root')} />
|
||||
<Route path={ROOM_PREFIX} lazy={() => import('./pages/new')} />
|
||||
<Route path={`/${ROOM_PREFIX}`} lazy={() => import('./pages/new')} />
|
||||
<Route path="/new" lazy={() => import('./pages/new')} />
|
||||
<Route path={`${ROOM_PREFIX}/:roomId`} lazy={() => import('./pages/public-multiplayer')} />
|
||||
<Route path={`${ROOM_PREFIX}/:boardId/history`} lazy={() => import('./pages/history')} />
|
||||
<Route path={`/${ROOM_PREFIX}/:roomId`} lazy={() => import('./pages/public-multiplayer')} />
|
||||
<Route path={`/${ROOM_PREFIX}/:boardId/history`} lazy={() => import('./pages/history')} />
|
||||
<Route
|
||||
path={`${ROOM_PREFIX}/:boardId/history/:timestamp`}
|
||||
path={`/${ROOM_PREFIX}/:boardId/history/:timestamp`}
|
||||
lazy={() => import('./pages/history-snapshot')}
|
||||
/>
|
||||
<Route path="/s/:roomId" lazy={() => import('./pages/public-snapshot')} />
|
||||
<Route
|
||||
path={`${READ_ONLY_LEGACY_PREFIX}/:roomId`}
|
||||
path={`/${READ_ONLY_LEGACY_PREFIX}/:roomId`}
|
||||
lazy={() => import('./pages/public-readonly-legacy')}
|
||||
/>
|
||||
<Route path={`${READ_ONLY_PREFIX}/:roomId`} lazy={() => import('./pages/public-readonly')} />
|
||||
<Route path={`/${READ_ONLY_PREFIX}/:roomId`} lazy={() => import('./pages/public-readonly')} />
|
||||
</Route>
|
||||
<Route path="*" lazy={() => import('./pages/not-found')} />
|
||||
</Route>
|
||||
|
|
|
@ -133,7 +133,7 @@ export function useSharing(): TLUiOverrides {
|
|||
|
||||
const query = getViewportUrlQuery(editor)
|
||||
const origin = window.location.origin
|
||||
const pathname = `${ROOM_PREFIX}/${response.slug}?${new URLSearchParams(query ?? {}).toString()}`
|
||||
const pathname = `/${ROOM_PREFIX}/${response.slug}?${new URLSearchParams(query ?? {}).toString()}`
|
||||
if (runningInIFrame) {
|
||||
window.open(`${origin}${pathname}`)
|
||||
} else {
|
||||
|
|
|
@ -7,11 +7,11 @@ export const ROOM_OPEN_MODE = {
|
|||
export type RoomOpenMode = (typeof ROOM_OPEN_MODE)[keyof typeof ROOM_OPEN_MODE]
|
||||
|
||||
/** @public */
|
||||
export const READ_ONLY_PREFIX = '/ro'
|
||||
export const READ_ONLY_PREFIX = 'ro'
|
||||
/** @public */
|
||||
export const READ_ONLY_LEGACY_PREFIX = '/v'
|
||||
export const READ_ONLY_LEGACY_PREFIX = 'v'
|
||||
/** @public */
|
||||
export const ROOM_PREFIX = '/r'
|
||||
export const ROOM_PREFIX = 'r'
|
||||
|
||||
/** @public */
|
||||
export const RoomOpenModeToPath: Record<RoomOpenMode, string> = {
|
||||
|
|
Ładowanie…
Reference in New Issue