From 2c91f24ba1fc535bb21011a2709f01f8a159df43 Mon Sep 17 00:00:00 2001 From: Matt Pua Date: Wed, 22 Jul 2026 09:30:03 -0400 Subject: [PATCH] feat: add Loops to command search Generated-By: PostHog Code Task-Id: 7640de2e-8b5e-46f1-8f0f-2ef4e3687f6f --- packages/shared/src/analytics-events.ts | 1 + .../ui/src/features/command/CommandMenu.tsx | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/shared/src/analytics-events.ts b/packages/shared/src/analytics-events.ts index fed7c06e45..908a2caa50 100644 --- a/packages/shared/src/analytics-events.ts +++ b/packages/shared/src/analytics-events.ts @@ -60,6 +60,7 @@ export type CommandMenuAction = | "open-channel" | "open-command-center" | "open-inbox" + | "open-loops" | "open-usage" | "search-files" | "open-file" diff --git a/packages/ui/src/features/command/CommandMenu.tsx b/packages/ui/src/features/command/CommandMenu.tsx index ee1d39516c..bed635d6a8 100644 --- a/packages/ui/src/features/command/CommandMenu.tsx +++ b/packages/ui/src/features/command/CommandMenu.tsx @@ -4,6 +4,7 @@ import { ChartLine, EnvelopeSimple, HashIcon, + RepeatIcon, } from "@phosphor-icons/react"; import { workspaceIdSet } from "@posthog/core/command-center/eligibility"; import { resolveService } from "@posthog/di/container"; @@ -24,7 +25,7 @@ import { DialogContent, Kbd, } from "@posthog/quill"; -import { PROJECT_BLUEBIRD_FLAG } from "@posthog/shared"; +import { LOOPS_FLAG, PROJECT_BLUEBIRD_FLAG } from "@posthog/shared"; import { ANALYTICS_EVENTS, type CommandMenuAction, @@ -59,6 +60,7 @@ import { navigateToChannel, navigateToCommandCenter, navigateToInbox, + navigateToLoops, } from "@posthog/ui/router/navigationBridge"; import { useAppView } from "@posthog/ui/router/useAppView"; import { openTask, openTaskInput } from "@posthog/ui/router/useOpenTask"; @@ -141,6 +143,7 @@ export function CommandMenu({ open, onOpenChange }: CommandMenuProps) { PROJECT_BLUEBIRD_FLAG, import.meta.env.DEV, ); + const loopsEnabled = useFeatureFlag(LOOPS_FLAG, import.meta.env.DEV); const { channels } = useChannels({ enabled: bluebirdEnabled }); const taskChannelMap = useTaskChannelMap(channels, { enabled: open && bluebirdEnabled, @@ -278,6 +281,21 @@ export function CommandMenu({ open, onOpenChange }: CommandMenuProps) { navigateToCommandCenter(); }, }, + ...(loopsEnabled + ? [ + { + id: "loops", + label: "Loops", + keywords: "automations schedules recurring", + icon: , + action: "open-loops" as CommandMenuAction, + onRun: () => { + closeSettingsDialog(); + navigateToLoops(); + }, + }, + ] + : []), { id: "plan-usage", label: "Plan & usage", @@ -449,6 +467,7 @@ export function CommandMenu({ open, onOpenChange }: CommandMenuProps) { reviewTaskId, canSearchFiles, openFilePicker, + loopsEnabled, ]); const taskSections = useMemo(() => {