|
|
@@ -138,12 +138,12 @@ function useSessionShare(args: {
|
|
|
globalSDK: ReturnType<typeof useGlobalSDK>
|
|
|
currentSession: () =>
|
|
|
| {
|
|
|
- id: string
|
|
|
share?: {
|
|
|
url?: string
|
|
|
}
|
|
|
}
|
|
|
| undefined
|
|
|
+ sessionID: () => string | undefined
|
|
|
projectDirectory: () => string
|
|
|
platform: ReturnType<typeof usePlatform>
|
|
|
}) {
|
|
|
@@ -167,11 +167,11 @@ function useSessionShare(args: {
|
|
|
})
|
|
|
|
|
|
const shareSession = () => {
|
|
|
- const session = args.currentSession()
|
|
|
- if (!session || state.share) return
|
|
|
+ const sessionID = args.sessionID()
|
|
|
+ if (!sessionID || state.share) return
|
|
|
setState("share", true)
|
|
|
args.globalSDK.client.session
|
|
|
- .share({ sessionID: session.id, directory: args.projectDirectory() })
|
|
|
+ .share({ sessionID, directory: args.projectDirectory() })
|
|
|
.catch((error) => {
|
|
|
console.error("Failed to share session", error)
|
|
|
})
|
|
|
@@ -181,11 +181,11 @@ function useSessionShare(args: {
|
|
|
}
|
|
|
|
|
|
const unshareSession = () => {
|
|
|
- const session = args.currentSession()
|
|
|
- if (!session || state.unshare) return
|
|
|
+ const sessionID = args.sessionID()
|
|
|
+ if (!sessionID || state.unshare) return
|
|
|
setState("unshare", true)
|
|
|
args.globalSDK.client.session
|
|
|
- .unshare({ sessionID: session.id, directory: args.projectDirectory() })
|
|
|
+ .unshare({ sessionID, directory: args.projectDirectory() })
|
|
|
.catch((error) => {
|
|
|
console.error("Failed to unshare session", error)
|
|
|
})
|
|
|
@@ -243,9 +243,9 @@ export function SessionHeader() {
|
|
|
})
|
|
|
const hotkey = createMemo(() => command.keybind("file.open"))
|
|
|
|
|
|
- const currentSession = createMemo(() => sync.data.session.find((s) => s.id === params.id))
|
|
|
+ const currentSession = createMemo(() => (params.id ? sync.session.get(params.id) : undefined))
|
|
|
const shareEnabled = createMemo(() => sync.data.config.share !== "disabled")
|
|
|
- const showShare = createMemo(() => shareEnabled() && !!currentSession())
|
|
|
+ const showShare = createMemo(() => shareEnabled() && !!params.id)
|
|
|
const sessionKey = createMemo(() => `${params.dir}${params.id ? "/" + params.id : ""}`)
|
|
|
const view = createMemo(() => layout.view(sessionKey))
|
|
|
const os = createMemo(() => detectOS(platform))
|
|
|
@@ -346,6 +346,7 @@ export function SessionHeader() {
|
|
|
const share = useSessionShare({
|
|
|
globalSDK,
|
|
|
currentSession,
|
|
|
+ sessionID: () => params.id,
|
|
|
projectDirectory,
|
|
|
platform,
|
|
|
})
|