diff --git a/apps/web/src/views/board/components/UpdateBoardSlugButton.tsx b/apps/web/src/views/board/components/UpdateBoardSlugButton.tsx index ce33768c..9b275551 100644 --- a/apps/web/src/views/board/components/UpdateBoardSlugButton.tsx +++ b/apps/web/src/views/board/components/UpdateBoardSlugButton.tsx @@ -1,24 +1,40 @@ -import Link from "next/link"; +import { Fragment } from "react"; import { t } from "@lingui/core/macro"; import { env } from "next-runtime-env"; import { HiLink } from "react-icons/hi"; import { Tooltip } from "~/components/Tooltip"; +import { usePopup } from "~/providers/popup"; + +const displayBaseUrl = + env("NEXT_PUBLIC_KAN_ENV") === "cloud" + ? "kan.bn" + : env("NEXT_PUBLIC_BASE_URL"); + +const linkBaseUrl = env("NEXT_PUBLIC_BASE_URL"); + +const pathSeparator = ( +
+); const UpdateBoardSlugButton = ({ handleOnClick, workspaceSlug, boardSlug, + boardPublicId, + visibility, isLoading, canEdit, }: { handleOnClick: () => void; workspaceSlug: string; boardSlug: string; + boardPublicId: string; + visibility: "public" | "private"; isLoading: boolean; canEdit: boolean; }) => { - if (!isLoading && (!workspaceSlug || !boardSlug)) return <>; + const { showPopup } = usePopup(); if (isLoading) { return ( @@ -26,44 +42,55 @@ const UpdateBoardSlugButton = ({ ); } + if (!workspaceSlug || !boardSlug || !boardPublicId) return <>; + + const isPublic = visibility === "public"; + const boardUrl = isPublic + ? `${linkBaseUrl}/${workspaceSlug}/${boardSlug}` + : `${linkBaseUrl}/boards/${boardPublicId}`; + + const pathSegments = isPublic + ? [displayBaseUrl, workspaceSlug, boardSlug] + : [displayBaseUrl, "boards", boardPublicId]; + return ( +
+ {pathSegments.map((segment, i) => ( + + {i > 0 && pathSeparator} + {segment} + + ))} +
+ +
); }; - export default UpdateBoardSlugButton; diff --git a/apps/web/src/views/board/components/UpdateBoardSlugForm.tsx b/apps/web/src/views/board/components/UpdateBoardSlugForm.tsx index 20b3ff5a..ddb72e44 100644 --- a/apps/web/src/views/board/components/UpdateBoardSlugForm.tsx +++ b/apps/web/src/views/board/components/UpdateBoardSlugForm.tsx @@ -156,7 +156,7 @@ export function UpdateBoardSlugForm({