diff --git a/web/app/[workspaceSlug]/(projects)/active-cycles/header.tsx b/web/app/[workspaceSlug]/(projects)/active-cycles/header.tsx
index f6565f415..26d87a5a6 100644
--- a/web/app/[workspaceSlug]/(projects)/active-cycles/header.tsx
+++ b/web/app/[workspaceSlug]/(projects)/active-cycles/header.tsx
@@ -2,10 +2,11 @@
import { observer } from "mobx-react";
// ui
-import { Crown } from "lucide-react";
import { Breadcrumbs, ContrastIcon } from "@plane/ui";
+// components
import { BreadcrumbLink } from "@/components/common";
-// icons
+// plane web components
+import { UpgradeBadge } from "@/plane-web/components/workspace";
export const WorkspaceActiveCycleHeader = observer(() => (
@@ -22,7 +23,7 @@ export const WorkspaceActiveCycleHeader = observer(() => (
}
/>
-
+
diff --git a/web/app/[workspaceSlug]/(projects)/settings/billing/page.tsx b/web/app/[workspaceSlug]/(projects)/settings/billing/page.tsx
index 96cf35a53..3e3c586c4 100644
--- a/web/app/[workspaceSlug]/(projects)/settings/billing/page.tsx
+++ b/web/app/[workspaceSlug]/(projects)/settings/billing/page.tsx
@@ -1,15 +1,14 @@
"use client";
import { observer } from "mobx-react";
-// ui
-import { Button } from "@plane/ui";
// component
import { PageHead } from "@/components/core";
// constants
-import { MARKETING_PRICING_PAGE_LINK } from "@/constants/common";
import { EUserWorkspaceRoles } from "@/constants/workspace";
// hooks
import { useUser, useWorkspace } from "@/hooks/store";
+// plane web components
+import { BillingRoot } from "@/plane-web/components/workspace";
const BillingSettingsPage = observer(() => {
// store hooks
@@ -34,22 +33,7 @@ const BillingSettingsPage = observer(() => {
return (
<>
-
-
-
-
-
Current plan
-
You are currently using the free plan
-
-
-
-
-
-
+
>
);
});
diff --git a/web/ce/components/workspace/billing/index.ts b/web/ce/components/workspace/billing/index.ts
new file mode 100644
index 000000000..1efe34c51
--- /dev/null
+++ b/web/ce/components/workspace/billing/index.ts
@@ -0,0 +1 @@
+export * from "./root";
diff --git a/web/ce/components/workspace/billing/root.tsx b/web/ce/components/workspace/billing/root.tsx
new file mode 100644
index 000000000..1b87bc198
--- /dev/null
+++ b/web/ce/components/workspace/billing/root.tsx
@@ -0,0 +1,23 @@
+// ui
+import { Button } from "@plane/ui";
+// constants
+import { MARKETING_PRICING_PAGE_LINK } from "@/constants/common";
+
+export const BillingRoot = () => (
+
+
+
+
Billing and Plans
+
+
+
+
+
Current plan
+
You are currently using the free plan
+
+
+
+
+
+
+);
diff --git a/web/ce/components/workspace/index.ts b/web/ce/components/workspace/index.ts
index d373164c5..6ac6285f4 100644
--- a/web/ce/components/workspace/index.ts
+++ b/web/ce/components/workspace/index.ts
@@ -1 +1,3 @@
export * from "./edition-badge";
+export * from "./upgrade-badge";
+export * from "./billing";
diff --git a/web/ce/components/workspace/upgrade-badge.tsx b/web/ce/components/workspace/upgrade-badge.tsx
new file mode 100644
index 000000000..3fc3654cf
--- /dev/null
+++ b/web/ce/components/workspace/upgrade-badge.tsx
@@ -0,0 +1,27 @@
+import { FC } from "react";
+// helpers
+import { cn } from "@/helpers/common.helper";
+
+type TUpgradeBadge = {
+ className?: string;
+ size?: "sm" | "md";
+};
+
+export const UpgradeBadge: FC = (props) => {
+ const { className, size = "sm" } = props;
+
+ return (
+
+ Pro
+
+ );
+};
diff --git a/web/core/components/workspace/sidebar/workspace-menu.tsx b/web/core/components/workspace/sidebar/workspace-menu.tsx
index 3b244fd9f..15df1c70a 100644
--- a/web/core/components/workspace/sidebar/workspace-menu.tsx
+++ b/web/core/components/workspace/sidebar/workspace-menu.tsx
@@ -4,7 +4,7 @@ import React, { useEffect } from "react";
import { observer } from "mobx-react";
import Link from "next/link";
import { useParams, usePathname } from "next/navigation";
-import { ChevronRight, Crown } from "lucide-react";
+import { ChevronRight } from "lucide-react";
import { Disclosure, Transition } from "@headlessui/react";
// ui
import { Tooltip } from "@plane/ui";
@@ -18,6 +18,8 @@ import { cn } from "@/helpers/common.helper";
import { useAppTheme, useEventTracker, useUser } from "@/hooks/store";
import useLocalStorage from "@/hooks/use-local-storage";
import { usePlatformOS } from "@/hooks/use-platform-os";
+// plane web components
+import { UpgradeBadge } from "@/plane-web/components/workspace";
export const SidebarWorkspaceMenu = observer(() => {
// store hooks
@@ -112,16 +114,20 @@ export const SidebarWorkspaceMenu = observer(() => {
}
)}
>
-
-
-
- {!sidebarCollapsed && {link.label}
}
+
+
+
+
+ {!sidebarCollapsed &&
{link.label}
}
+
{!sidebarCollapsed && link.key === "active-cycles" && (
-
+
+
+
)}
diff --git a/web/ee/components/workspace/billing/index.ts b/web/ee/components/workspace/billing/index.ts
new file mode 100644
index 000000000..50a9c47c0
--- /dev/null
+++ b/web/ee/components/workspace/billing/index.ts
@@ -0,0 +1 @@
+export * from "./root";
\ No newline at end of file
diff --git a/web/ee/components/workspace/billing/root.tsx b/web/ee/components/workspace/billing/root.tsx
new file mode 100644
index 000000000..522692913
--- /dev/null
+++ b/web/ee/components/workspace/billing/root.tsx
@@ -0,0 +1 @@
+export * from "ce/components/workspace/billing/root";
diff --git a/web/ee/components/workspace/edition-badge.tsx b/web/ee/components/workspace/edition-badge.tsx
new file mode 100644
index 000000000..b5b092da4
--- /dev/null
+++ b/web/ee/components/workspace/edition-badge.tsx
@@ -0,0 +1 @@
+export * from "ce/components/workspace/edition-badge";
diff --git a/web/ee/components/workspace/index.ts b/web/ee/components/workspace/index.ts
new file mode 100644
index 000000000..6ac6285f4
--- /dev/null
+++ b/web/ee/components/workspace/index.ts
@@ -0,0 +1,3 @@
+export * from "./edition-badge";
+export * from "./upgrade-badge";
+export * from "./billing";
diff --git a/web/ee/components/workspace/upgrade-badge.tsx b/web/ee/components/workspace/upgrade-badge.tsx
new file mode 100644
index 000000000..1c7fcfb64
--- /dev/null
+++ b/web/ee/components/workspace/upgrade-badge.tsx
@@ -0,0 +1 @@
+export * from "ce/components/workspace/upgrade-badge";