From 39dd539e12b0db7428d900abdf09c697c4d08a34 Mon Sep 17 00:00:00 2001 From: Jeroen Rinzema Date: Tue, 30 Jun 2026 13:15:05 +0200 Subject: [PATCH] chore(console): remove legacy api.ts endpoints no longer served by the backend The management backend serves only what's in the OpenAPI spec (the oapi router plus a request-validator middleware reject off-spec paths). Several endpoints still called through the legacy axios `api.ts` client have no matching spec path, so they 404 against the current backend. This removes them and the now-orphaned UI that called them, as a first step toward retiring `api.ts` entirely. Removed from api.ts (no callers; not in spec): - data.userPaths / data.rebuild (data/paths/users, data/paths/sync) - resources.* (resources) - tags.* (tags, tags/used, tags/assign) - lists.recount (lists/{id}/recount) - users.lists (subjects/users/{id}/lists) - organizations.members.* (subjects/organizations/{id}/members) - journeys.steps.searchUsers (journeys/{id}/steps/{id}/users) - journeys.entrances.* (journeys/{id}/entrances, journeys/entrances/{id}) - journeys.users.skipDelay / removeFromJourney (steps/{id}/resume, step/{id}) UI removed (reached only via the above, all backed by dead endpoints): - EntranceDetails + JourneyUserEntrances pages and their orphan routes - JourneyStepUsers panel and the step-sidebar "view users" click-through (the step stats card itself is kept, now non-interactive) Kept: journeys.users.getState (in spec, used by the editor), path suggestions, and locales.getByKey (still in use; to be migrated separately). tsc + eslint clean, journey unit tests pass, production build succeeds. --- console/src/api.ts | 141 +-------- console/src/views/journey/EntranceDetails.tsx | 162 ---------- .../src/views/journey/JourneyStepUsers.tsx | 296 ------------------ .../views/journey/JourneyUserEntrances.tsx | 30 -- .../journey/components/JourneyCanvas.tsx | 2 - .../journey/components/JourneyStepSidebar.tsx | 23 +- .../views/journey/editor/JourneyEditor.tsx | 34 +- .../journey/editor/JourneyEditor.types.ts | 1 - .../journey/editor/JourneyEditor.utils.ts | 1 - .../journey/hooks/useJourneyPersistence.ts | 1 - console/src/views/router.tsx | 16 - 11 files changed, 9 insertions(+), 698 deletions(-) delete mode 100644 console/src/views/journey/EntranceDetails.tsx delete mode 100644 console/src/views/journey/JourneyStepUsers.tsx delete mode 100644 console/src/views/journey/JourneyUserEntrances.tsx diff --git a/console/src/api.ts b/console/src/api.ts index 0a3855410..0f2ded68b 100644 --- a/console/src/api.ts +++ b/console/src/api.ts @@ -15,7 +15,6 @@ import type { EmailTemplate, Image, Journey, - JourneyEntranceDetail, JourneyStepMap, JourneyUserStep, List, @@ -31,8 +30,6 @@ import type { AuthMethod, CreateAuthMethodParams, UpdateAuthMethodParams, - Resource, - RulePath, SearchParams, SearchResult, UserSchemaPath, @@ -41,11 +38,8 @@ import type { SubscriptionParams, SubjectOrganization, SubjectOrganizationCreateParams, - SubjectOrganizationMember, - SubjectOrganizationMemberParams, SubjectOrganizationUpdateParams, SubscriptionUpdateParams, - Tag, Template, TemplateCreateParams, TemplateUpdateParams, @@ -352,23 +346,6 @@ const api = { }, }, - data: { - userPaths: { - search: async (projectId: UUID, params: SearchParams) => - await client - .get< - SearchResult - >(`${projectUrl(projectId)}/data/paths/users`, { params }) - .then((r) => r.data), - update: async (projectId: UUID, entityId: UUID, params: Partial) => - await client - .put(`${projectUrl(projectId)}/data/paths/users/${entityId}`, params) - .then((r) => r.data), - }, - rebuild: async (projectId: UUID) => - await client.post(`${projectUrl(projectId)}/data/paths/sync`).then((r) => r.data), - }, - authMethods: createProjectEntityPath< AuthMethod, CreateAuthMethodParams, @@ -468,31 +445,6 @@ const api = { stepData, ) .then((r) => r.data), - searchUsers: async ( - projectId: UUID, - journeyId: UUID, - stepId: UUID, - params: SearchParams, - ) => - await client - .get< - SearchResult - >(`/admin/projects/${projectId}/journeys/${journeyId}/steps/${stepId}/users`, { params }) - .then((r) => r.data), - }, - entrances: { - search: async (projectId: UUID, journeyId: UUID, params: SearchParams) => - await client - .get< - SearchResult - >(`/admin/projects/${projectId}/journeys/${journeyId}/entrances`, { params }) - .then((r) => r.data), - log: async (projectId: UUID, entranceId: UUID) => - await client - .get( - `${projectUrl(projectId)}/journeys/entrances/${entranceId}`, - ) - .then((r) => r.data), }, users: { getState: async (projectId: UUID, journeyId: UUID, userId: UUID, entranceId?: UUID) => { @@ -507,34 +459,11 @@ const api = { }) return response.data }, - skipDelay: async (projectId: UUID, journeyId: UUID, userId: UUID, stepId: UUID) => - await client - .post( - `${projectUrl(projectId)}/journeys/${journeyId}/users/${userId}/steps/${stepId}/resume`, - ) - .then((r) => r.data), - removeFromJourney: async ( - projectId: UUID, - journeyId: UUID, - userId: UUID, - stepId: UUID, - ) => - await client - .delete( - `${projectUrl(projectId)}/journeys/${journeyId}/users/${userId}/step/${stepId}`, - ) - .then((r) => r.data), }, }, users: { ...createProjectEntityPath("subjects/users"), - lists: async (projectId: UUID, userId: UUID, params: SearchParams) => - await client - .get< - SearchResult - >(`${projectUrl(projectId)}/subjects/users/${userId}/lists`, { params }) - .then((r) => r.data), events: async (projectId: UUID, userId: UUID, params: SearchParams) => await client .get< @@ -573,38 +502,11 @@ const api = { }, }, - organizations: { - ...createProjectEntityPath< - SubjectOrganization, - SubjectOrganizationCreateParams, - SubjectOrganizationUpdateParams - >("subjects/organizations"), - members: { - search: async (projectId: UUID, organizationId: UUID, params: SearchParams) => - await client - .get< - SearchResult - >(`${projectUrl(projectId)}/subjects/organizations/${organizationId}/members`, { params }) - .then((r) => r.data), - add: async ( - projectId: UUID, - organizationId: UUID, - params: SubjectOrganizationMemberParams, - ) => - await client - .post( - `${projectUrl(projectId)}/subjects/organizations/${organizationId}/members`, - params, - ) - .then((r) => r.data), - remove: async (projectId: UUID, organizationId: UUID, userId: UUID) => - await client - .delete( - `${projectUrl(projectId)}/subjects/organizations/${organizationId}/members/${userId}`, - ) - .then((r) => r.data), - }, - }, + organizations: createProjectEntityPath< + SubjectOrganization, + SubjectOrganizationCreateParams, + SubjectOrganizationUpdateParams + >("subjects/organizations"), lists: { ...createProjectEntityPath("lists"), @@ -629,10 +531,6 @@ const api = { await client .post(`${projectUrl(projectId)}/lists/${listId}/duplicate`) .then((r) => r.data), - recount: async (projectId: UUID, listId: UUID) => - await client - .post(`${projectUrl(projectId)}/lists/${listId}/recount`) - .then((r) => r.data), }, projectAdmins: { @@ -679,35 +577,6 @@ const api = { .then((r) => r.data), }, - resources: { - all: async (projectId: UUID, type: string = "font") => - await client - .get(`${projectUrl(projectId)}/resources?type=${type}`) - .then((r) => r.data), - create: async (projectId: UUID, params: Partial) => - await client - .post(`${projectUrl(projectId)}/resources`, params) - .then((r) => r.data), - delete: async (projectId: UUID, id: UUID) => - await client - .delete(`${projectUrl(projectId)}/resources/${id}`) - .then((r) => r.data), - }, - - tags: { - ...createProjectEntityPath("tags"), - used: async (projectId: UUID, entity: string) => - await client - .get(`${projectUrl(projectId)}/tags/used/${entity}`) - .then((r) => r.data), - assign: async (projectId: UUID, entity: string, entityId: UUID, tags: string[]) => - await client - .put(`${projectUrl(projectId)}/tags/assign`, { entity, entityId, tags }) - .then((r) => r.data), - all: async (projectId: UUID) => - await client.get(`${projectUrl(projectId)}/tags`).then((r) => r.data), - }, - locales: { ...createProjectEntityPath("locales"), getByKey: async (projectId: UUID, code: string) => diff --git a/console/src/views/journey/EntranceDetails.tsx b/console/src/views/journey/EntranceDetails.tsx deleted file mode 100644 index 2a9a9ead5..000000000 --- a/console/src/views/journey/EntranceDetails.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import PageContent from "@/components/page-content" -import { - Table, - TableBody, - TableCell, - TableHead, - TableHeader, - TableRow, -} from "@/components/ui/table" -import { Skeleton } from "@/components/ui/skeleton" -import { Badge } from "@/components/ui/badge" -import type { BadgeProps } from "@/components/ui/badge" -import { camelToTitle, formatDate } from "../../utils" -import { getUserDisplayName } from "@/lib/name" -import { useLoaderData } from "react-router" -import type { JourneyEntranceDetail } from "../../types" -import { useContext } from "react" -import { PreferencesContext } from "@/contexts/PreferencesContext" -import * as stepTypes from "./steps" -import clsx from "clsx" -import { useTranslation } from "react-i18next" -import { stepCategoryColors } from "./hooks/JourneyEditor.constants" - -// eslint-disable-next-line react-refresh/only-export-components -export const typeVariants: Record = { - completed: "default", - error: "destructive", - campaign: "default", - delay: "outline", - pending: "secondary", -} - -interface ColumnDef { - key: string - title?: string - cell?: (args: { item: T }) => React.ReactNode -} - -export default function EntranceDetails() { - const { t } = useTranslation() - const [preferences] = useContext(PreferencesContext) - - const { journey, user, userSteps } = useLoaderData() - - const entrance = userSteps[0] - const error = userSteps.find((s) => s.type === "error") - const displayName = getUserDisplayName(user) - - const columns: ColumnDef<(typeof userSteps)[number]>[] = [ - { - key: "step", - title: t("step"), - cell: ({ item }) => { - const stepType = stepTypes[item.step!.type as keyof typeof stepTypes] - - return ( -
-
- {stepType?.icon} -
-
-
{item.step!.name || "Untitled"}
-
- {t(item.step!.type)} -
-
-
- ) - }, - }, - { - key: "type", - title: "Type", - cell: ({ item }) => ( - {camelToTitle(item.type)} - ), - }, - { key: "created_at", title: t("created_at") }, - { key: "delay_until", title: t("delay_until") }, - ] - - const isLoading = !userSteps - const items = userSteps ?? [] - - return ( - - - {error ? "Error" : entrance.ended_at ? "Completed" : "Running"} - - {entrance.ended_at && ` at ${formatDate(preferences, new Date())}`} - - } - > -
- - - - {columns.map((col) => ( - {col.title ?? col.key} - ))} - - - - {items.length > 0 ? ( - items.map((item, index) => { - const args = { item } - const key = item.id ?? index - - return ( - - {columns.map((col) => { - let value: unknown = col.cell - ? col.cell(args) - : item[col.key as keyof typeof item] - if ( - !col.cell && - (col.key.endsWith("_at") || - col.key.endsWith("_until")) && - (typeof value === "string" || - typeof value === "number") - ) { - value = formatDate(preferences, value, "Pp") - } - return ( - - {(value as React.ReactNode) ?? <>–} - - ) - })} - - ) - }) - ) : isLoading ? ( - Array.from({ length: 3 }, (_, i) => ( - - {columns.map((col) => ( - - - - ))} - - )) - ) : ( - - - No Results - - - )} - -
-
-
- ) -} diff --git a/console/src/views/journey/JourneyStepUsers.tsx b/console/src/views/journey/JourneyStepUsers.tsx deleted file mode 100644 index 5a76a140e..000000000 --- a/console/src/views/journey/JourneyStepUsers.tsx +++ /dev/null @@ -1,296 +0,0 @@ -import { useCallback, useContext, useState } from "react" -import { useTranslation } from "react-i18next" -import { formatDistanceToNow } from "date-fns" -import { JourneyContext, ProjectContext } from "../../contexts" -import { PreferencesContext } from "@/contexts/PreferencesContext" -import { useSearchTableState } from "@/components/search-table" -import api from "../../api" -import { Badge } from "@/components/ui/badge" -import { Button } from "@/components/ui/button" -import { Input } from "@/components/ui/input" -import { Tooltip, TooltipTrigger, TooltipContent } from "@/components/ui/tooltip" -import { camelToTitle, formatDate } from "../../utils" -import { typeVariants } from "./EntranceDetails" -import { UserCell } from "./components/UserCell" -import { getUserDisplayName } from "./components/userUtils" -import { useDebounceControl } from "@/hooks" -import { - Dialog, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogTitle, -} from "@/components/ui/dialog" -import type { User } from "../../types" -import type { UUID } from "@/types/common" -import Menu, { MenuItem } from "@/components/menu" -import { - ChevronLeft, - ChevronRight, - FastForward, - Loader2, - Search, - Trash2, - Users, -} from "lucide-react" - -interface StepUsersProps { - open: boolean - onClose: (open: boolean) => void - stepId: UUID - stepType: string - stepName: string -} - -function RelativeTime({ date }: { date: string }) { - const [preferences] = useContext(PreferencesContext) - const relative = formatDistanceToNow(new Date(date), { addSuffix: true }) - const absolute = formatDate(preferences, date) - - return ( - - - {relative} - - {absolute} - - ) -} - -export function JourneyStepUsers({ open, onClose, stepType, stepId, stepName }: StepUsersProps) { - const { t } = useTranslation() - const [{ id: projectId }] = useContext(ProjectContext) - const [{ id: journeyId }] = useContext(JourneyContext) - - const [confirmRemove, setConfirmRemove] = useState<{ - stepId: UUID - user: User - } | null>(null) - - const state = useSearchTableState( - useCallback( - async (params) => - await api.journeys.steps.searchUsers(projectId, journeyId, stepId, params), - [projectId, journeyId, stepId], - ), - { - limit: 25, - sort: "created_at", - direction: "desc", - }, - ) - - const [searchInput, setSearchInput] = useDebounceControl(state.params.search ?? "", (search) => - state.setParams({ ...state.params, search, cursor: undefined }), - ) - - const handleSkipDelay = async (stepId: UUID, user: User) => { - await api.journeys.users.skipDelay(projectId, journeyId, user.id, stepId) - await state.reload() - } - - const handleRemoveFromJourney = async (stepId: UUID, user: User) => { - await api.journeys.users.removeFromJourney(projectId, journeyId, user.id, stepId) - await state.reload() - } - - const onConfirmRemove = async () => { - if (!confirmRemove) return - await handleRemoveFromJourney(confirmRemove.stepId, confirmRemove.user) - setConfirmRemove(null) - } - - const items = state.results?.results - const isLoading = !state.results - const hasPrev = !!state.results?.prevCursor - const hasNext = !!state.results?.nextCursor - - return ( - <> - - - - {stepName || t("users")} - - {t("users_in_step", { - defaultValue: - "Users currently in or that have passed through this step.", - })} - -
- - setSearchInput(e.target.value)} - className="pl-9" - /> -
-
- -
- {items && items.length > 0 ? ( -
- {items.map((item) => ( -
-
- -
- -
- {item.created_at && ( - - )} - - {stepType === "delay" && item.delay_until && ( - - - - {t("delay_until", "until")}{" "} - {formatDistanceToNow( - new Date(item.delay_until), - { addSuffix: true }, - )} - - - - {new Date( - item.delay_until, - ).toLocaleString()} - - - )} - - - {camelToTitle(item.type)} - - - {stepType === "delay" && - item.user && - item.type !== "completed" && ( - - - await handleSkipDelay( - item.id, - item.user!, - ) - } - > - - {t("skip_delay")} - - - setConfirmRemove({ - stepId: item.id, - user: item.user!, - }) - } - > - - - {t("remove_from_journey")} - - - - )} -
-
- ))} -
- ) : isLoading ? ( -
- -
- ) : ( -
- -

- {searchInput - ? t("no_users_found", "No users found") - : t("no_users_in_step", { - defaultValue: "No users have reached this step yet", - })} -

-
- )} -
- - {(hasPrev || hasNext) && ( -
-

- {state.results?.total != null && - `${state.results.total} ${state.results.total === 1 ? t("user", "user") : t("users", "users")}`} -

-
- - -
-
- )} -
-
- - { - if (!open) setConfirmRemove(null) - }} - > - - - {t("remove_from_journey")} - - {t("confirm_remove_user", { - defaultValue: - "Are you sure you want to remove this user from the journey? This action cannot be undone.", - user: confirmRemove ? getUserDisplayName(confirmRemove.user) : "", - })} - - - - - - - - - - ) -} diff --git a/console/src/views/journey/JourneyUserEntrances.tsx b/console/src/views/journey/JourneyUserEntrances.tsx deleted file mode 100644 index 255b3836c..000000000 --- a/console/src/views/journey/JourneyUserEntrances.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useCallback, useContext } from "react" -import { JourneyContext, ProjectContext } from "../../contexts" -import { SearchTable, useSearchTableQueryState } from "@/components/search-table" -import api from "../../api" - -export default function JourneyUserEntrances() { - const [project] = useContext(ProjectContext) - const [journey] = useContext(JourneyContext) - - const projectId = project.id - const journeyId = journey.id - - const state = useSearchTableQueryState( - useCallback( - async (params) => await api.journeys.entrances.search(projectId, journeyId, params), - [projectId, journeyId], - ), - ) - - return ( - - ) -} diff --git a/console/src/views/journey/components/JourneyCanvas.tsx b/console/src/views/journey/components/JourneyCanvas.tsx index f9a4f655e..643b19386 100644 --- a/console/src/views/journey/components/JourneyCanvas.tsx +++ b/console/src/views/journey/components/JourneyCanvas.tsx @@ -32,7 +32,6 @@ interface JourneyCanvasProps { sidebar: { tab: "components" | "actions" onTabChange: (tab: "components" | "actions") => void - onViewUsers: (stepId: string, stepType: string, stepName: string) => void onSaveDraft: () => Promise } runtime: { @@ -164,7 +163,6 @@ export function JourneyCanvas({ journey={journey} onUpdate={handlers.onUpdateEditNode} onDelete={handlers.onDeleteNode} - onViewUsers={sidebar.onViewUsers} onSaveDraft={sidebar.onSaveDraft} /> ) : ( diff --git a/console/src/views/journey/components/JourneyStepSidebar.tsx b/console/src/views/journey/components/JourneyStepSidebar.tsx index 12a054bc5..bbb7b38a3 100644 --- a/console/src/views/journey/components/JourneyStepSidebar.tsx +++ b/console/src/views/journey/components/JourneyStepSidebar.tsx @@ -1,6 +1,6 @@ import { createElement } from "react" import { useTranslation } from "react-i18next" -import { MoreHorizontal, Trash2, CheckCircle2, Clock, Zap, ArrowRight } from "lucide-react" +import { MoreHorizontal, Trash2, CheckCircle2, Clock, Zap } from "lucide-react" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" @@ -24,7 +24,6 @@ interface JourneyStepSidebarProps { journey: Journey onUpdate: (partial: Partial) => void onDelete: (id: string) => void - onViewUsers: (stepId: string, stepType: string, stepName: string) => void onSaveDraft: () => Promise } @@ -35,7 +34,6 @@ export function JourneyStepSidebar({ journey, onUpdate, onDelete, - onViewUsers, onSaveDraft, }: JourneyStepSidebarProps) { const { t } = useTranslation() @@ -85,17 +83,7 @@ export function JourneyStepSidebar({ {/* User Stats */} {editNode.data.stepId && (
- +
)} diff --git a/console/src/views/journey/editor/JourneyEditor.tsx b/console/src/views/journey/editor/JourneyEditor.tsx index 9e543c7d7..9857b06d5 100644 --- a/console/src/views/journey/editor/JourneyEditor.tsx +++ b/console/src/views/journey/editor/JourneyEditor.tsx @@ -7,8 +7,6 @@ import { useResolver } from "@/hooks" import { useIsMobile } from "@/hooks/use-mobile" import { Button } from "@/components/ui/button" import { useTranslation } from "react-i18next" -import { JourneyStepUsers } from "../JourneyStepUsers" -import type { UUID } from "@/types/common" import { UserSelectionModal } from "../JourneyUserSelectionModal" import { stepsToNodes } from "./JourneyEditor.utils" @@ -33,11 +31,6 @@ export default function JourneyEditor() { const [routerSearchParams] = useRouterSearchParams() const entranceId = routerSearchParams.get("entrance") const replayUserId = routerSearchParams.get("user") - const [viewUsersStep, setViewUsersStep] = useState(null) const [userModalEntranceId, setUserModalEntranceId] = useState(null) const [sidebarTab, setSidebarTab] = useState<"components" | "actions">("components") const isMobile = useIsMobile() @@ -122,23 +115,12 @@ export default function JourneyEditor() { const openUserModal = useCallback((nodeId: string) => setUserModalEntranceId(nodeId), []) - const openViewUsersStep = useCallback( - (step: { stepId: UUID; stepType: string; stepName?: string }) => - setViewUsersStep({ - stepId: step.stepId, - stepType: step.stepType, - stepName: step.stepName ?? "", - }), - [], - ) - const nodeActions = useMemo( () => ({ - setViewUsersStep: openViewUsersStep, skipDelay: skipDelayForActiveUser, openUserModal, }), - [openViewUsersStep, skipDelayForActiveUser, openUserModal], + [skipDelayForActiveUser, openUserModal], ) useEffect(() => { @@ -293,8 +275,6 @@ export default function JourneyEditor() { sidebar={{ tab: sidebarTab, onTabChange: setSidebarTab, - onViewUsers: (stepId, stepType, stepName) => - setViewUsersStep({ stepId, stepType, stepName }), onSaveDraft: handleSaveDraft, }} runtime={{ @@ -337,18 +317,6 @@ export default function JourneyEditor() { onUserEnteredNode(entranceId ?? "") }} /> - - {!!viewUsersStep && ( - { - if (!open) setViewUsersStep(null) - }} - stepType={viewUsersStep.stepType} - stepId={viewUsersStep.stepId} - stepName={viewUsersStep.stepName} - /> - )} ) } diff --git a/console/src/views/journey/editor/JourneyEditor.types.ts b/console/src/views/journey/editor/JourneyEditor.types.ts index 4772fcdde..13f904442 100644 --- a/console/src/views/journey/editor/JourneyEditor.types.ts +++ b/console/src/views/journey/editor/JourneyEditor.types.ts @@ -22,7 +22,6 @@ export interface JourneyNodeData extends Record { height?: number skipDelay?: (stepId: string) => Promise openUserModal?: (nodeId: string) => void - setViewUsersStep?: (step: { stepId: UUID; stepType: string; stepName?: string }) => void } export type JourneyNode = Node diff --git a/console/src/views/journey/editor/JourneyEditor.utils.ts b/console/src/views/journey/editor/JourneyEditor.utils.ts index f11f89aa0..4f5b78b91 100644 --- a/console/src/views/journey/editor/JourneyEditor.utils.ts +++ b/console/src/views/journey/editor/JourneyEditor.utils.ts @@ -118,7 +118,6 @@ export function defaultEntranceDataKey(existingKeys: Iterable): string { export function stepsToNodes( stepMap: JourneyStepMap, actions: { - setViewUsersStep?: (step: { stepId: UUID; stepType: string; stepName?: string }) => void skipDelay?: (stepId: string) => Promise openUserModal?: (nodeId: string) => void }, diff --git a/console/src/views/journey/hooks/useJourneyPersistence.ts b/console/src/views/journey/hooks/useJourneyPersistence.ts index 11fb2678d..1a95ecb20 100644 --- a/console/src/views/journey/hooks/useJourneyPersistence.ts +++ b/console/src/views/journey/hooks/useJourneyPersistence.ts @@ -8,7 +8,6 @@ import type { Journey, Project } from "@/types" import type { UUID } from "@/types/common" type Actions = { - setViewUsersStep?: (step: { stepId: UUID; stepType: string; stepName?: string }) => void skipDelay?: (stepId: string) => Promise openUserModal?: (nodeId: string) => void } diff --git a/console/src/views/router.tsx b/console/src/views/router.tsx index efcc48357..cfd8c3e64 100644 --- a/console/src/views/router.tsx +++ b/console/src/views/router.tsx @@ -78,10 +78,8 @@ import ProjectOnboardingDomain from "./project/ProjectOnboardingDomain" import Locales from "./settings/Locales" import Domains from "./settings/Domains" import { isEnterprise } from "@/config/enterprise" -import JourneyUserEntrances from "./journey/JourneyUserEntrances" import UserDetailJourneys from "./users/UserDetailJourneys" import UserDetailOrganizations from "./users/UserDetailOrganizations" -import EntranceDetails from "./journey/EntranceDetails" import Organizations from "./organizations/Organizations" import OrganizationDetail from "./organizations/OrganizationDetail" import OrganizationDetailAttrs from "./organizations/OrganizationDetailAttrs" @@ -472,10 +470,6 @@ export const createRouter = ({ index: true, element: , }, - { - path: "entrances", - element: , - }, ], }), createStatefulRoute({ @@ -583,16 +577,6 @@ export const createRouter = ({ }, ], }, - { - path: "entrances/:entranceId", - loader: async ({ params }) => - await api.journeys.entrances.log( - params.projectId! as UUID, - params.entranceId! as UUID, - ), - element: , - errorElement: , - }, { path: "integrations", element: ,