diff --git a/packages/ui/src/features/canvas/components/WebsiteChannelLoops.tsx b/packages/ui/src/features/canvas/components/WebsiteChannelLoops.tsx
index deebc84e73..a27711078c 100644
--- a/packages/ui/src/features/canvas/components/WebsiteChannelLoops.tsx
+++ b/packages/ui/src/features/canvas/components/WebsiteChannelLoops.tsx
@@ -144,11 +144,7 @@ export function WebsiteChannelLoops({ channelId }: { channelId: string }) {
) : (
-
+
)}
diff --git a/packages/ui/src/features/loops/components/LoopsEmptyState.test.tsx b/packages/ui/src/features/loops/components/LoopsEmptyState.test.tsx
index 8db57cfd0a..25c455cc63 100644
--- a/packages/ui/src/features/loops/components/LoopsEmptyState.test.tsx
+++ b/packages/ui/src/features/loops/components/LoopsEmptyState.test.tsx
@@ -1,37 +1,22 @@
import { Theme } from "@radix-ui/themes";
import { render, screen } from "@testing-library/react";
-import userEvent from "@testing-library/user-event";
-import { describe, expect, it, vi } from "vitest";
+import { describe, expect, it } from "vitest";
import { LoopsEmptyState } from "./LoopsEmptyState";
describe("LoopsEmptyState", () => {
- it("starts loop creation from the primary CTA", async () => {
- const onCreate = vi.fn();
- render(
-
-
- ,
- );
+ it.each([
+ { contextName: undefined, heading: "Create your first loop" },
+ { contextName: "general", heading: "Create a loop for #general" },
+ ])(
+ 'shows "$heading" when contextName is $contextName',
+ ({ contextName, heading }) => {
+ render(
+
+
+ ,
+ );
- await userEvent.click(
- screen.getByRole("button", { name: "Create a loop" }),
- );
-
- expect(onCreate).toHaveBeenCalledOnce();
- });
-
- it("disables creation when the project reached its loop limit", () => {
- render(
-
-
- ,
- );
-
- expect(
- screen.getByRole("button", { name: "Create a loop" }),
- ).toBeDisabled();
- });
+ expect(screen.getByText(heading)).toBeInTheDocument();
+ },
+ );
});
diff --git a/packages/ui/src/features/loops/components/LoopsEmptyState.tsx b/packages/ui/src/features/loops/components/LoopsEmptyState.tsx
index 3258f4562c..169fa45f79 100644
--- a/packages/ui/src/features/loops/components/LoopsEmptyState.tsx
+++ b/packages/ui/src/features/loops/components/LoopsEmptyState.tsx
@@ -1,12 +1,6 @@
-import { ArrowSquareOutIcon, PlusIcon } from "@phosphor-icons/react";
import { loopHog } from "@posthog/ui/assets/hedgehogs";
-import { Button } from "@posthog/ui/primitives/Button";
-import { openUrlInBrowser } from "@posthog/ui/utils/browser";
import { Flex, Text } from "@radix-ui/themes";
-// Placeholder until the loops docs page lands; swap for the final URL.
-const LOOPS_DOCS_URL = "https://posthog.com/docs/loops";
-
const GETTING_STARTED_STEPS = [
"Describe what you want, or start from a template",
"Pick when it runs and what it can touch",
@@ -15,15 +9,7 @@ const GETTING_STARTED_STEPS = [
/** The illustrated getting-started card shown when there are no loops yet. `contextName`
* tweaks the copy for a context's Loops tab. */
-export function LoopsEmptyState({
- contextName,
- onCreate,
- disabledReason,
-}: {
- contextName?: string;
- onCreate: () => void;
- disabledReason?: string | null;
-}) {
+export function LoopsEmptyState({ contextName }: { contextName?: string }) {
return (
@@ -61,27 +47,6 @@ export function LoopsEmptyState({
))}
-
-
-
-
diff --git a/packages/ui/src/features/loops/components/LoopsListView.tsx b/packages/ui/src/features/loops/components/LoopsListView.tsx
index 04a47926e7..3dbbe2bfd5 100644
--- a/packages/ui/src/features/loops/components/LoopsListView.tsx
+++ b/packages/ui/src/features/loops/components/LoopsListView.tsx
@@ -249,14 +249,9 @@ export function LoopsListViewPresentation({
membersLoading={membersLoading}
membersError={membersError}
membersComplete={membersComplete}
- onCreate={onStartBlank}
- disabledReason={limitReason}
/>
) : (
-
+
)}
@@ -292,8 +287,6 @@ function LoopListTabs({
membersLoading,
membersError,
membersComplete,
- onCreate,
- disabledReason,
}: {
personalLoops: LoopSchemas.Loop[];
teamLoops: LoopSchemas.Loop[];
@@ -301,8 +294,6 @@ function LoopListTabs({
membersLoading: boolean;
membersError: boolean;
membersComplete: boolean;
- onCreate: () => void;
- disabledReason: string | null;
}) {
return (
@@ -322,10 +313,7 @@ function LoopListTabs({
{personalLoops.length > 0 ? (
) : (
-
+
)}