|
|
@@ -314,26 +314,31 @@ export function Session() {
|
|
|
const command = useCommandDialog()
|
|
|
command.register(() => [
|
|
|
{
|
|
|
- title: "Share session",
|
|
|
+ title: session()?.share?.url ? "Copy share link" : "Share session",
|
|
|
value: "session.share",
|
|
|
suggested: route.type === "session",
|
|
|
keybind: "session_share",
|
|
|
category: "Session",
|
|
|
- enabled: sync.data.config.share !== "disabled" && !session()?.share?.url,
|
|
|
+ enabled: sync.data.config.share !== "disabled",
|
|
|
slash: {
|
|
|
name: "share",
|
|
|
},
|
|
|
onSelect: async (dialog) => {
|
|
|
+ const copy = (url: string) =>
|
|
|
+ Clipboard.copy(url)
|
|
|
+ .then(() => toast.show({ message: "Share URL copied to clipboard!", variant: "success" }))
|
|
|
+ .catch(() => toast.show({ message: "Failed to copy URL to clipboard", variant: "error" }))
|
|
|
+ const url = session()?.share?.url
|
|
|
+ if (url) {
|
|
|
+ await copy(url)
|
|
|
+ dialog.clear()
|
|
|
+ return
|
|
|
+ }
|
|
|
await sdk.client.session
|
|
|
.share({
|
|
|
sessionID: route.sessionID,
|
|
|
})
|
|
|
- .then((res) =>
|
|
|
- Clipboard.copy(res.data!.share!.url).catch(() =>
|
|
|
- toast.show({ message: "Failed to copy URL to clipboard", variant: "error" }),
|
|
|
- ),
|
|
|
- )
|
|
|
- .then(() => toast.show({ message: "Share URL copied to clipboard!", variant: "success" }))
|
|
|
+ .then((res) => copy(res.data!.share!.url))
|
|
|
.catch(() => toast.show({ message: "Failed to share session", variant: "error" }))
|
|
|
dialog.clear()
|
|
|
},
|