Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 2 additions & 23 deletions webview-ui/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import React, { useCallback, useEffect, useRef, useState, useMemo } from "react"
import { useEvent } from "react-use"
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
import posthog from "posthog-js"

import { ExtensionMessage } from "@roo/ExtensionMessage"
import TranslationProvider from "./i18n/TranslationContext"
Expand All @@ -15,8 +14,7 @@ import { ExtensionStateContextProvider, useExtensionState } from "./context/Exte
import ChatView, { ChatViewRef } from "./components/chat/ChatView"
import HistoryView from "./components/history/HistoryView"
import SettingsView, { SettingsViewRef } from "./components/settings/SettingsView"
import WelcomeView from "./components/welcome/WelcomeView"
import WelcomeViewProvider from "./components/welcome/WelcomeViewProvider"
import WelcomeView from "./components/welcome/WelcomeViewProvider"
import { MarketplaceView } from "./components/marketplace/MarketplaceView"
import { HumanRelayDialog } from "./components/human-relay/HumanRelayDialog"
import { CheckpointRestoreDialog } from "./components/chat/CheckpointRestoreDialog"
Expand Down Expand Up @@ -79,21 +77,6 @@ const App = () => {
mdmCompliant,
} = useExtensionState()

const [useProviderSignupView, setUseProviderSignupView] = useState(false)

// Check PostHog feature flag for provider signup view
// Wait for telemetry to be initialized before checking feature flags
useEffect(() => {
if (!didHydrateState || telemetrySetting === "disabled") {
return
}

posthog.onFeatureFlags(function () {
// Feature flag for new provider-focused welcome view
setUseProviderSignupView(posthog?.getFeatureFlag("welcome-provider-signup") === "test")
})
}, [didHydrateState, telemetrySetting])

// Create a persistent state manager
const marketplaceStateManager = useMemo(() => new MarketplaceViewStateManager(), [])

Expand Down Expand Up @@ -260,11 +243,7 @@ const App = () => {
// Do not conditionally load ChatView, it's expensive and there's state we
// don't want to lose (user input, disableInput, askResponse promise, etc.)
return showWelcome ? (
useProviderSignupView ? (
<WelcomeViewProvider />
) : (
<WelcomeView />
)
<WelcomeView />
) : (
<>
{tab === "history" && <HistoryView onDone={() => switchTab("chat")} />}
Expand Down
59 changes: 0 additions & 59 deletions webview-ui/src/__tests__/App.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,9 @@

import React from "react"
import { render, screen, act, cleanup } from "@/utils/test-utils"
import posthog from "posthog-js"

import AppWithProviders from "../App"

// Mock posthog
vi.mock("posthog-js", () => ({
default: {
onFeatureFlags: vi.fn(),
getFeatureFlag: vi.fn(),
},
}))

vi.mock("@src/utils/vscode", () => ({
vscode: {
postMessage: vi.fn(),
Expand Down Expand Up @@ -312,54 +303,4 @@ describe("App", () => {
expect(chatView.getAttribute("data-hidden")).toBe("false")
expect(screen.queryByTestId("marketplace-view")).not.toBeInTheDocument()
})

describe("PostHog feature flag initialization", () => {
it("waits for state hydration before checking feature flags", () => {
mockUseExtensionState.mockReturnValue({
didHydrateState: false,
showWelcome: false,
shouldShowAnnouncement: false,
experiments: {},
language: "en",
telemetrySetting: "enabled",
})

render(<AppWithProviders />)

// PostHog feature flag check should not be called before hydration
expect(posthog.onFeatureFlags).not.toHaveBeenCalled()
})

it("checks feature flags after state hydration when telemetry is enabled", () => {
mockUseExtensionState.mockReturnValue({
didHydrateState: true,
showWelcome: false,
shouldShowAnnouncement: false,
experiments: {},
language: "en",
telemetrySetting: "enabled",
})

render(<AppWithProviders />)

// PostHog feature flag check should be called after hydration
expect(posthog.onFeatureFlags).toHaveBeenCalled()
})

it("does not check feature flags when telemetry is disabled", () => {
mockUseExtensionState.mockReturnValue({
didHydrateState: true,
showWelcome: false,
shouldShowAnnouncement: false,
experiments: {},
language: "en",
telemetrySetting: "disabled",
})

render(<AppWithProviders />)

// PostHog feature flag check should not be called when telemetry is disabled
expect(posthog.onFeatureFlags).not.toHaveBeenCalled()
})
})
})
212 changes: 0 additions & 212 deletions webview-ui/src/components/welcome/WelcomeView.tsx

This file was deleted.

Loading