From aad5a96e561758d54eff845e332f45a139eaf072 Mon Sep 17 00:00:00 2001 From: vimtor Date: Mon, 18 May 2026 21:49:40 +0200 Subject: [PATCH] core: copy full Go referral URLs immediately Users get a shareable absolute invite link on first render instead of briefly seeing or copying a relative /go path. --- .../console/app/src/component/go-referral.tsx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/console/app/src/component/go-referral.tsx b/packages/console/app/src/component/go-referral.tsx index 4f870a4ff2..02db2b72da 100644 --- a/packages/console/app/src/component/go-referral.tsx +++ b/packages/console/app/src/component/go-referral.tsx @@ -1,5 +1,6 @@ import { action, createAsync, json, query, useAction, useSubmission } from "@solidjs/router" -import { createEffect, createMemo, createSignal, For, onCleanup, onMount, Show } from "solid-js" +import { createEffect, createMemo, createSignal, For, onCleanup, Show } from "solid-js" +import { getRequestEvent } from "solid-js/web" import { Referral } from "@opencode-ai/console-core/referral.js" import { withActor } from "~/context/auth.withActor" import { Modal } from "~/component/modal" @@ -73,15 +74,18 @@ function rewardPendingStatusKey(source: GoReferralReward["source"]) { function CopyInviteLink(props: { summary: GoReferralSummary }) { const i18n = useI18n() const [copied, setCopied] = createSignal(false) - const [origin, setOrigin] = createSignal("") + const event = getRequestEvent() + const origin = event + ? new URL(event.request.url).origin + : typeof window === "object" + ? window.location.origin + : undefined const inviteUrl = createMemo(() => { const path = `/go?ref=${props.summary.inviteCode}` - if (!origin()) return path - return new URL(path, origin()).toString() + if (!origin) return path + return new URL(path, origin).toString() }) - onMount(() => setOrigin(window.location.origin)) - async function copy() { if (typeof navigator !== "object") return await navigator.clipboard.writeText(inviteUrl())