Genesis

Sign in to access the code explorer

Genesis AI
API Key: No key

Ask anything about the codebase

I have full context on the project architecture, data flow, components, and source code.

Enter to send · Shift+Enter for new line

PRD Assistant

I'm your product management assistant. I've analyzed the entire codebase and can help you build a PRD. Ask me anything or pick a starting point.

Enter to send · Shift+Enter for new line · /design for visual design

Screen Navigator

I'll reproduce each screen of the product as a renderable HTML replica, then explain every button, field, and option on it. Click "Render HTML" on any screen to preview it, then "Screenshot" to save it.

Enter to send · Shift+Enter for new line · HTML mockups will have a "Render HTML" button
graph TB
    subgraph Entry["Entry Point"]
        HTML["index.html"] --> Main["main.tsx"]
        Main --> App["App.tsx"]
    end

    subgraph Providers["Provider Layer"]
        App --> Redux["Redux Provider"]
        App --> RQ["React Query Provider"]
        App --> Persist["PersistGate"]
        App --> Router["BrowserRouter"]
        App --> ThemeP["Theme Provider"]
    end

    subgraph Routing["Route Layer"]
        Router --> Views["Views.tsx"]
        Views --> AppRoute["AppRoute.tsx"]
        AppRoute --> BlankLayout["BlankLayout"]
        BlankLayout --> LP["LandingPage"]
        BlankLayout --> Pages["Pages"]
    end

    subgraph LandingPageFlow["Landing Page Flow"]
        LP --> useGetPageData
        LP --> useLoadPageScripts
        LP --> usePostPageData
        LP --> useFallbackCampaign
        LP --> Wrapper["Wrapper.tsx"]
        LP --> Form["Form.tsx"]
        Wrapper -->|"dynamic import"| LayoutTemplate["Layout Template"]
        Form --> DynamicForm["DynamicForm.tsx"]
        Form --> FormContext["FormContext"]
    end

    subgraph LayoutTemplates["Layout Templates - 80+"]
        LayoutTemplate --> oshpi
        LayoutTemplate --> la_niozo["la-niozo"]
        LayoutTemplate --> bnwjf
        LayoutTemplate --> liberty["liberty-layout"]
        LayoutTemplate --> more["... 76 more"]
    end

    subgraph FormSystem["Dynamic Form System"]
        DynamicForm --> TextFC["TextFormControl"]
        DynamicForm --> SelectFC["SelectFormControl"]
        DynamicForm --> CheckboxFC["CheckboxGroupFormControl"]
        DynamicForm --> RadioFC["RadioGroupFormControl"]
        DynamicForm --> TCPAFC["TCPAFormControl"]
        DynamicForm --> HiddenFC["HiddenFormControl"]
        DynamicForm --> SliderFC["SliderFormControl"]
        DynamicForm --> MoreFC["... 8 more controls"]
        DynamicForm --> Formik
        DynamicForm --> Yup["Yup Validation"]
    end

    subgraph StateManagement["State Management"]
        Redux --> AuthSlice["auth slice"]
        Redux --> ThemeSlice["theme slice"]
        Redux --> LocaleSlice["locale slice"]
        Redux --> BaseSlice["base slice"]
        Redux --> LPSlice["landingPage slice"]
        Redux --> RTKQuery["RTK Query API"]
    end

    subgraph Services["Services Layer"]
        useGetPageData --> ApiService
        usePostPageData --> ApiService
        ApiService --> BaseService["BaseService / Axios"]
        RTKQuery --> RtkQueryService
        RtkQueryService --> BaseService
    end

    subgraph UIComponents["UI Component Library - 50+"]
        Button
        Input
        Select
        Card
        Modal
        Table
        Tabs
    end

    subgraph Integrations["External Integrations"]
        useLoadPageScripts --> Pixels["Tracking Pixels"]
        useLoadPageScripts --> GTM["Google Tag Manager"]
        LP --> Jornaya
        LP --> Sentry
        TCPAFC --> TCPAHook["useTCPACompliance"]
    end

    DynamicForm --> UIComponents
    LayoutTemplate --> UIComponents
        
sequenceDiagram
    participant Browser
    participant App
    participant LandingPage
    participant API
    participant Layout
    participant DynamicForm
    participant Redux

    Browser->>App: Load URL (/)
    App->>LandingPage: Route to LandingPage
    LandingPage->>API: useGetPageData - fetch campaign
    API-->>LandingPage: lead, next_page, layout_key, fields
    LandingPage->>Redux: Store page data
    LandingPage->>Layout: Dynamic import layout template
    Layout-->>LandingPage: Render layout shell
    LandingPage->>DynamicForm: Render fields from API
    DynamicForm->>DynamicForm: Map ui_type to Components
    DynamicForm-->>Browser: Rendered form

    Browser->>DynamicForm: User fills form
    DynamicForm->>DynamicForm: Formik validate with Yup
    DynamicForm->>LandingPage: onSubmit
    LandingPage->>API: usePostPageData - submit lead
    API-->>LandingPage: next_page or thank_you or redirect

    alt Has next page
        LandingPage->>DynamicForm: Render next step fields
    else Thank You
        LandingPage->>Layout: Render TY page
    else Redirect
        LandingPage->>Browser: Navigate to external URL
    end
        
graph TD
    App --> Theme
    Theme --> LayoutComp["Layouts.tsx"]
    LayoutComp --> BlankLayout
    LayoutComp --> ClassicLayout
    LayoutComp --> ModernLayout
    LayoutComp --> SimpleLayout

    BlankLayout --> Views
    Views --> LandingPage
    Views --> Pages

    LandingPage --> Wrapper
    LandingPage --> LPForm["Form"]
    LandingPage --> Confirmation

    Wrapper --> LT1["oshpi/Layout"]
    Wrapper --> LT2["la-niozo/Layout"]
    Wrapper --> LT3["bnwjf/Layout"]
    Wrapper --> LTN["... 80+ layouts"]

    LPForm --> FormContext
    LPForm --> DynamicForm
    DynamicForm --> FC1["TextFormControl"]
    DynamicForm --> FC2["SelectFormControl"]
    DynamicForm --> FC3["CheckboxGroupFormControl"]
    DynamicForm --> FC4["RadioGroupFormControl"]
    DynamicForm --> FC5["TCPAFormControl"]
    DynamicForm --> FC6["ConsentFormControl"]
    DynamicForm --> FC7["HiddenFormControl"]
    DynamicForm --> FC8["DateTimeField"]
    DynamicForm --> FC9["SliderFormControl"]
    DynamicForm --> FC10["... more"]
        
graph LR
    subgraph Store["Redux Store"]
        subgraph Auth["auth"]
            User["user: avatar, username, email, authority"]
            Session["session: token, authenticated"]
        end
        subgraph ThemeState["theme"]
            ThemeColor["themeColor, mode, direction"]
            LayoutState["layout: type, sideNavCollapse"]
            NavState["navMode, panelExpand"]
        end
        subgraph Locale["locale"]
            Lang["language: en/es"]
        end
        subgraph Base["base"]
            Common["commonState"]
        end
        subgraph LandingPageState["landingPage"]
            PageData["page, config, isLoading"]
            FormData["previousFields, submitButtonText"]
            Offers["acceptedOffers"]
        end
        subgraph RTK["rtkApi"]
            Cache["API cache"]
        end
    end
        
Loading dependency graph...
Click a node to see its dependencies
Nodes: - Edges: -
1,345
Total Files Analyzed
80+
Layout Templates
50+
UI Components
15+
Form Controls
20+
Custom Hooks
4
Redux Slices
8+
Services
1
Circular Dependencies

Circular Dependency

store/index.ts
  → store/hook.ts
    → store/rootReducer.ts
      → services/RtkQueryService.ts
        → services/BaseService.ts
          → store/index.ts (circular!)

Most Imported Files (by dependents)

#FileDependents
40components/ui/index.ts
34assets/styles/components/index.css
34components/shared/LandingPageLayouts/vvdxj/Layout.tsx
29components/shared/LandingPageLayouts/zdczs/Layout.tsx
28components/shared/LandingPageLayouts/dxxdx/Layout.tsx
28components/shared/LandingPageLayouts/lvmmk/Layout.tsx
28components/shared/index.ts
19components/shared/DynamicForm.tsx

Manage Repositories