diff --git a/apps/web/src/views/members/components/InviteMemberForm.tsx b/apps/web/src/views/members/components/InviteMemberForm.tsx index 30e263d2..3646ef62 100644 --- a/apps/web/src/views/members/components/InviteMemberForm.tsx +++ b/apps/web/src/views/members/components/InviteMemberForm.tsx @@ -7,9 +7,10 @@ import { HiXMark } from "react-icons/hi2"; import { z } from "zod"; import type { InviteMemberInput } from "@kan/api/types"; +import type { Subscription } from "@kan/shared/utils"; import { authClient } from "@kan/auth/client"; +import { getSubscriptionByPlan } from "@kan/shared/utils"; -import type { Subscription } from "~/utils/subscriptions"; import Button from "~/components/Button"; import Input from "~/components/Input"; import Toggle from "~/components/Toggle"; @@ -17,7 +18,6 @@ import { useModal } from "~/providers/modal"; import { usePopup } from "~/providers/popup"; import { useWorkspace } from "~/providers/workspace"; import { api } from "~/utils/api"; -import { getSubscriptionByPlan } from "~/utils/subscriptions"; export function InviteMemberForm({ numberOfMembers, diff --git a/apps/web/src/views/members/index.tsx b/apps/web/src/views/members/index.tsx index 19f50154..ccef4a4f 100644 --- a/apps/web/src/views/members/index.tsx +++ b/apps/web/src/views/members/index.tsx @@ -3,9 +3,10 @@ import { env } from "next-runtime-env"; import { HiEllipsisHorizontal, HiOutlinePlusSmall } from "react-icons/hi2"; import { twMerge } from "tailwind-merge"; +import type { Subscription } from "@kan/shared/utils"; import { authClient } from "@kan/auth/client"; +import { getSubscriptionByPlan, hasUnlimitedSeats } from "@kan/shared/utils"; -import type { Subscription } from "~/utils/subscriptions"; import Avatar from "~/components/Avatar"; import Button from "~/components/Button"; import Dropdown from "~/components/Dropdown"; @@ -17,10 +18,6 @@ import { useModal } from "~/providers/modal"; import { useWorkspace } from "~/providers/workspace"; import { api } from "~/utils/api"; import { getAvatarUrl } from "~/utils/helpers"; -import { - getSubscriptionByPlan, - hasUnlimitedSeats, -} from "~/utils/subscriptions"; import { DeleteMemberConfirmation } from "./components/DeleteMemberConfirmation"; import { InviteMemberForm } from "./components/InviteMemberForm"; diff --git a/packages/shared/src/utils/index.ts b/packages/shared/src/utils/index.ts index 64c9bd95..87404978 100644 --- a/packages/shared/src/utils/index.ts +++ b/packages/shared/src/utils/index.ts @@ -1,2 +1,3 @@ export * from "./generateUID"; export * from "./generateSlug"; +export * from "./subscriptions"; diff --git a/apps/web/src/utils/subscriptions.ts b/packages/shared/src/utils/subscriptions.ts similarity index 83% rename from apps/web/src/utils/subscriptions.ts rename to packages/shared/src/utils/subscriptions.ts index 99e1a9bc..326b59a5 100644 --- a/apps/web/src/utils/subscriptions.ts +++ b/packages/shared/src/utils/subscriptions.ts @@ -1,5 +1,3 @@ -import { env } from "next-runtime-env"; - export type SubscriptionStatus = | "active" | "trialing" @@ -46,14 +44,6 @@ export const hasActiveSubscription = ( return getSubscriptionByPlan(subscriptions, plan) !== undefined; }; -export const canInviteMembers = (subscriptions: Subscription[] | undefined) => { - if (env("NEXT_PUBLIC_KAN_ENV") === "cloud") { - return hasActiveSubscription(subscriptions, "team"); - } - - return true; -}; - export const hasUnlimitedSeats = ( subscriptions: Subscription[] | undefined, ) => {