|
|
@@ -32,7 +32,7 @@ import { CommentsProvider } from "@/context/comments"
|
|
|
import { FileProvider } from "@/context/file"
|
|
|
import { ServerSDKProvider, useServerSDK } from "@/context/server-sdk"
|
|
|
import { ServerSyncProvider, useServerSync } from "@/context/server-sync"
|
|
|
-import { GlobalProvider } from "@/context/global"
|
|
|
+import { GlobalProvider, useGlobal } from "@/context/global"
|
|
|
import { HighlightsProvider } from "@/context/highlights"
|
|
|
import { LanguageProvider, type Locale, useLanguage } from "@/context/language"
|
|
|
import { LayoutProvider } from "@/context/layout"
|
|
|
@@ -103,10 +103,10 @@ const SessionRoute = () => {
|
|
|
|
|
|
const TargetSessionRoute = () => {
|
|
|
const params = useParams<{ serverKey: string; id: string }>()
|
|
|
- const server = useServer()
|
|
|
+ const global = useGlobal()
|
|
|
const conn = createMemo(() => {
|
|
|
const key = requireServerKey(params.serverKey)
|
|
|
- return server.list.find((item) => ServerConnection.key(item) === key)
|
|
|
+ return global.servers.list().find((item) => ServerConnection.key(item) === key)
|
|
|
})
|
|
|
|
|
|
return (
|
|
|
@@ -221,25 +221,27 @@ function DraftRoute() {
|
|
|
}
|
|
|
|
|
|
function ResolvedDraftRoute(props: { draft: DraftTab }) {
|
|
|
- const server = useServer()
|
|
|
- const conn = createMemo(() => server.list.find((item) => ServerConnection.key(item) === props.draft.server))
|
|
|
+ const global = useGlobal()
|
|
|
+ const conn = createMemo(() => global.servers.list().find((item) => ServerConnection.key(item) === props.draft.server))
|
|
|
const directory = () => props.draft.directory
|
|
|
const serverKey = () => props.draft.server
|
|
|
|
|
|
return (
|
|
|
- <ServerSDKProvider server={conn}>
|
|
|
- <ServerSyncProvider server={conn}>
|
|
|
- <TargetServerScopedProviders directory={directory}>
|
|
|
- <SDKProvider directory={directory}>
|
|
|
- <DirectoryDataProvider directory={directory} server={serverKey}>
|
|
|
- <DraftProviders>
|
|
|
- <NewSession />
|
|
|
- </DraftProviders>
|
|
|
- </DirectoryDataProvider>
|
|
|
- </SDKProvider>
|
|
|
- </TargetServerScopedProviders>
|
|
|
- </ServerSyncProvider>
|
|
|
- </ServerSDKProvider>
|
|
|
+ <Show when={`${props.draft.server}\0${props.draft.directory}`} keyed>
|
|
|
+ <ServerSDKProvider server={conn}>
|
|
|
+ <ServerSyncProvider server={conn}>
|
|
|
+ <TargetServerScopedProviders directory={directory}>
|
|
|
+ <SDKProvider directory={directory}>
|
|
|
+ <DirectoryDataProvider directory={directory} server={serverKey}>
|
|
|
+ <DraftProviders>
|
|
|
+ <NewSession />
|
|
|
+ </DraftProviders>
|
|
|
+ </DirectoryDataProvider>
|
|
|
+ </SDKProvider>
|
|
|
+ </TargetServerScopedProviders>
|
|
|
+ </ServerSyncProvider>
|
|
|
+ </ServerSDKProvider>
|
|
|
+ </Show>
|
|
|
)
|
|
|
}
|
|
|
|
|
|
@@ -588,18 +590,31 @@ function Routes() {
|
|
|
</Route>
|
|
|
<Show when={settings.general.newLayoutDesigns()}>
|
|
|
<Route path="/" component={NewHome} />
|
|
|
- <Route
|
|
|
- path="/:dir/session/:id"
|
|
|
- component={() => {
|
|
|
- const server = useServer()
|
|
|
- const { id } = useParams()
|
|
|
-
|
|
|
- return <Navigate href={`/server/${server.key}/session/${id}`} />
|
|
|
- }}
|
|
|
- />
|
|
|
+ <Route path="/:dir/session/:id" component={LegacyTargetSessionRoute} />
|
|
|
</Show>
|
|
|
<Route path="/new-session" component={DraftRoute} />
|
|
|
<Route path="/server/:serverKey/session/:id" component={TargetSessionRoute} />
|
|
|
</>
|
|
|
)
|
|
|
}
|
|
|
+
|
|
|
+function LegacyTargetSessionRoute() {
|
|
|
+ const server = useServer()
|
|
|
+ const tabs = useTabs()
|
|
|
+ const params = useParams<{ id: string }>()
|
|
|
+
|
|
|
+ return (
|
|
|
+ <Show when={tabs.ready()}>
|
|
|
+ <Navigate
|
|
|
+ href={sessionHref(
|
|
|
+ legacySessionServer(
|
|
|
+ tabs.store.filter((item) => item.type === "session"),
|
|
|
+ params.id,
|
|
|
+ server.key,
|
|
|
+ ),
|
|
|
+ params.id,
|
|
|
+ )}
|
|
|
+ />
|
|
|
+ </Show>
|
|
|
+ )
|
|
|
+}
|