fix(web): keep /share available to copy existing link (#12533)

This commit is contained in:
Kit Langton
2026-02-07 14:35:15 -05:00
committed by GitHub
parent fb331f6cb8
commit 0e1f543646

View File

@@ -357,30 +357,41 @@ export const useSessionCommands = (input: {
return [
{
id: "session.share",
title: input.language.t("command.session.share"),
description: input.language.t("command.session.share.description"),
title: input.info()?.share?.url ? "Copy share link" : input.language.t("command.session.share"),
description: input.info()?.share?.url
? "Copy share URL to clipboard"
: input.language.t("command.session.share.description"),
category: input.language.t("command.category.session"),
slash: "share",
disabled: !input.params.id || !!input.info()?.share?.url,
disabled: !input.params.id,
onSelect: async () => {
if (!input.params.id) return
await input.sdk.client.session
.share({ sessionID: input.params.id })
.then((res) => {
navigator.clipboard.writeText(res.data!.share!.url).catch(() =>
const copy = (url: string, existing: boolean) =>
navigator.clipboard
.writeText(url)
.then(() =>
showToast({
title: existing
? input.language.t("session.share.copy.copied")
: input.language.t("toast.session.share.success.title"),
description: input.language.t("toast.session.share.success.description"),
variant: "success",
}),
)
.catch(() =>
showToast({
title: input.language.t("toast.session.share.copyFailed.title"),
variant: "error",
}),
)
})
.then(() =>
showToast({
title: input.language.t("toast.session.share.success.title"),
description: input.language.t("toast.session.share.success.description"),
variant: "success",
}),
)
const url = input.info()?.share?.url
if (url) {
await copy(url, true)
return
}
await input.sdk.client.session
.share({ sessionID: input.params.id })
.then((res) => copy(res.data!.share!.url, false))
.catch(() =>
showToast({
title: input.language.t("toast.session.share.failed.title"),