Some checks failed
Branch Build CE / Build Setup (push) Has been cancelled
Branch Build CE / Build-Push Admin Docker Image (push) Has been cancelled
Branch Build CE / Build-Push Web Docker Image (push) Has been cancelled
Branch Build CE / Build-Push Space Docker Image (push) Has been cancelled
Branch Build CE / Build-Push Live Collaboration Docker Image (push) Has been cancelled
Branch Build CE / Build-Push API Server Docker Image (push) Has been cancelled
Branch Build CE / Build-Push Proxy Docker Image (push) Has been cancelled
Branch Build CE / Build-Push AIO Docker Image (push) Has been cancelled
Branch Build CE / Upload Build Assets (push) Has been cancelled
Branch Build CE / Build Release (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Codespell / Check for spelling errors (push) Has been cancelled
Sync Repositories / sync_changes (push) Has been cancelled
Synced from upstream: 8853637e981ed7d8a6cff32bd98e7afe20f54362
430 lines
19 KiB
TypeScript
430 lines
19 KiB
TypeScript
import { index, layout, route } from "@react-router/dev/routes";
|
|
import type { RouteConfig, RouteConfigEntry } from "@react-router/dev/routes";
|
|
|
|
export const coreRoutes: RouteConfigEntry[] = [
|
|
// ========================================================================
|
|
// USER MANAGEMENT ROUTES
|
|
// ========================================================================
|
|
|
|
// Home - Sign In
|
|
layout("./(home)/layout.tsx", [index("./(home)/page.tsx")]),
|
|
|
|
// Sign Up
|
|
layout("./(all)/sign-up/layout.tsx", [route("sign-up", "./(all)/sign-up/page.tsx")]),
|
|
|
|
// Account Routes - Password Management
|
|
layout("./(all)/accounts/forgot-password/layout.tsx", [
|
|
route("accounts/forgot-password", "./(all)/accounts/forgot-password/page.tsx"),
|
|
]),
|
|
layout("./(all)/accounts/reset-password/layout.tsx", [
|
|
route("accounts/reset-password", "./(all)/accounts/reset-password/page.tsx"),
|
|
]),
|
|
layout("./(all)/accounts/set-password/layout.tsx", [
|
|
route("accounts/set-password", "./(all)/accounts/set-password/page.tsx"),
|
|
]),
|
|
|
|
// Create Workspace
|
|
layout("./(all)/create-workspace/layout.tsx", [route("create-workspace", "./(all)/create-workspace/page.tsx")]),
|
|
|
|
// Onboarding
|
|
layout("./(all)/onboarding/layout.tsx", [route("onboarding", "./(all)/onboarding/page.tsx")]),
|
|
|
|
// Invitations
|
|
layout("./(all)/invitations/layout.tsx", [route("invitations", "./(all)/invitations/page.tsx")]),
|
|
|
|
// Workspace Invitations
|
|
layout("./(all)/workspace-invitations/layout.tsx", [
|
|
route("workspace-invitations", "./(all)/workspace-invitations/page.tsx"),
|
|
]),
|
|
|
|
// ========================================================================
|
|
// ALL APP ROUTES
|
|
// ========================================================================
|
|
layout("./(all)/layout.tsx", [
|
|
// ======================================================================
|
|
// WORKSPACE-SCOPED ROUTES
|
|
// ======================================================================
|
|
layout("./(all)/[workspaceSlug]/layout.tsx", [
|
|
// ====================================================================
|
|
// PROJECTS APP SECTION - WORKSPACE LEVEL ROUTES
|
|
// ====================================================================
|
|
layout("./(all)/[workspaceSlug]/(projects)/layout.tsx", [
|
|
// --------------------------------------------------------------------
|
|
// WORKSPACE LEVEL ROUTES
|
|
// --------------------------------------------------------------------
|
|
|
|
// Workspace Home
|
|
route(":workspaceSlug", "./(all)/[workspaceSlug]/(projects)/page.tsx"),
|
|
|
|
// Active Cycles
|
|
layout("./(all)/[workspaceSlug]/(projects)/active-cycles/layout.tsx", [
|
|
route(":workspaceSlug/active-cycles", "./(all)/[workspaceSlug]/(projects)/active-cycles/page.tsx"),
|
|
]),
|
|
|
|
// Analytics
|
|
layout("./(all)/[workspaceSlug]/(projects)/analytics/[tabId]/layout.tsx", [
|
|
route(":workspaceSlug/analytics/:tabId", "./(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx"),
|
|
]),
|
|
|
|
// Browse
|
|
layout("./(all)/[workspaceSlug]/(projects)/browse/[workItem]/layout.tsx", [
|
|
route(":workspaceSlug/browse/:workItem", "./(all)/[workspaceSlug]/(projects)/browse/[workItem]/page.tsx"),
|
|
]),
|
|
|
|
// Drafts
|
|
layout("./(all)/[workspaceSlug]/(projects)/drafts/layout.tsx", [
|
|
route(":workspaceSlug/drafts", "./(all)/[workspaceSlug]/(projects)/drafts/page.tsx"),
|
|
]),
|
|
|
|
// Notifications
|
|
layout("./(all)/[workspaceSlug]/(projects)/notifications/layout.tsx", [
|
|
route(":workspaceSlug/notifications", "./(all)/[workspaceSlug]/(projects)/notifications/page.tsx"),
|
|
]),
|
|
|
|
// Profile
|
|
layout("./(all)/[workspaceSlug]/(projects)/profile/[userId]/layout.tsx", [
|
|
route(":workspaceSlug/profile/:userId", "./(all)/[workspaceSlug]/(projects)/profile/[userId]/page.tsx"),
|
|
route(
|
|
":workspaceSlug/profile/:userId/:profileViewId",
|
|
"./(all)/[workspaceSlug]/(projects)/profile/[userId]/[profileViewId]/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/profile/:userId/activity",
|
|
"./(all)/[workspaceSlug]/(projects)/profile/[userId]/activity/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Stickies
|
|
layout("./(all)/[workspaceSlug]/(projects)/stickies/layout.tsx", [
|
|
route(":workspaceSlug/stickies", "./(all)/[workspaceSlug]/(projects)/stickies/page.tsx"),
|
|
]),
|
|
|
|
// Workspace Views
|
|
layout("./(all)/[workspaceSlug]/(projects)/workspace-views/layout.tsx", [
|
|
route(":workspaceSlug/workspace-views", "./(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx"),
|
|
route(
|
|
":workspaceSlug/workspace-views/:globalViewId",
|
|
"./(all)/[workspaceSlug]/(projects)/workspace-views/[globalViewId]/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// ====================================================================
|
|
// PROJECT LEVEL ROUTES
|
|
// ====================================================================
|
|
|
|
// --------------------------------------------------------------------
|
|
// PROJECT LEVEL ROUTES
|
|
// --------------------------------------------------------------------
|
|
|
|
// Project List
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(list)/layout.tsx", [
|
|
route(":workspaceSlug/projects", "./(all)/[workspaceSlug]/(projects)/projects/(list)/page.tsx"),
|
|
]),
|
|
|
|
// Project Detail
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/layout.tsx", [
|
|
// Archived Projects
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/archives/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/archives",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/archives/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Project Issues
|
|
// Issues List
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/issues",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Issue Detail
|
|
route(
|
|
":workspaceSlug/projects/:projectId/issues/:issueId",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(detail)/[issueId]/page.tsx"
|
|
),
|
|
|
|
// Project Cycles
|
|
// Cycles List
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/cycles",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Cycle Detail
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/cycles/:cycleId",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Project Modules
|
|
// Modules List
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/modules",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Module Detail
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/modules/:moduleId",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Project Views
|
|
// Views List
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/views",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// View Detail
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/views/:viewId",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Project Pages
|
|
// Pages List
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/pages",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Page Detail
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/pages/:pageId",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Project Intake
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/intake",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Project Archives - Issues, Cycles, Modules
|
|
// Project Archives - Issues - List
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/archives/issues",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Project Archives - Issues - Detail
|
|
layout(
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/layout.tsx",
|
|
[
|
|
route(
|
|
":workspaceSlug/projects/:projectId/archives/issues/:archivedIssueId",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx"
|
|
),
|
|
]
|
|
),
|
|
|
|
// Project Archives - Cycles
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/archives/cycles",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// Project Archives - Modules
|
|
layout("./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/projects/:projectId/archives/modules",
|
|
"./(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/page.tsx"
|
|
),
|
|
]),
|
|
]),
|
|
]),
|
|
|
|
// ====================================================================
|
|
// SETTINGS SECTION
|
|
// ====================================================================
|
|
layout("./(all)/[workspaceSlug]/(settings)/layout.tsx", [
|
|
// --------------------------------------------------------------------
|
|
// WORKSPACE SETTINGS
|
|
// --------------------------------------------------------------------
|
|
|
|
layout("./(all)/[workspaceSlug]/(settings)/settings/(workspace)/layout.tsx", [
|
|
route(":workspaceSlug/settings", "./(all)/[workspaceSlug]/(settings)/settings/(workspace)/page.tsx"),
|
|
route(
|
|
":workspaceSlug/settings/members",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/(workspace)/members/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/billing",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/(workspace)/billing/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/integrations",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/(workspace)/integrations/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/imports",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/(workspace)/imports/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/exports",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/(workspace)/exports/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/webhooks",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/webhooks/:webhookId",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/[webhookId]/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// --------------------------------------------------------------------
|
|
// ACCOUNT SETTINGS
|
|
// --------------------------------------------------------------------
|
|
|
|
layout("./(all)/[workspaceSlug]/(settings)/settings/account/layout.tsx", [
|
|
route(":workspaceSlug/settings/account", "./(all)/[workspaceSlug]/(settings)/settings/account/page.tsx"),
|
|
route(
|
|
":workspaceSlug/settings/account/activity",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/account/activity/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/account/preferences",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/account/preferences/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/account/notifications",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/account/notifications/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/account/security",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx"
|
|
),
|
|
route(
|
|
":workspaceSlug/settings/account/api-tokens",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/account/api-tokens/page.tsx"
|
|
),
|
|
]),
|
|
|
|
// --------------------------------------------------------------------
|
|
// PROJECT SETTINGS
|
|
// --------------------------------------------------------------------
|
|
|
|
layout("./(all)/[workspaceSlug]/(settings)/settings/projects/layout.tsx", [
|
|
// CORE Routes
|
|
// Project Settings
|
|
route(":workspaceSlug/settings/projects", "./(all)/[workspaceSlug]/(settings)/settings/projects/page.tsx"),
|
|
route(
|
|
":workspaceSlug/settings/projects/:projectId",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/page.tsx"
|
|
),
|
|
// Project Members
|
|
route(
|
|
":workspaceSlug/settings/projects/:projectId/members",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx"
|
|
),
|
|
// Project Features
|
|
route(
|
|
":workspaceSlug/settings/projects/:projectId/features",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/page.tsx"
|
|
),
|
|
// Project States
|
|
route(
|
|
":workspaceSlug/settings/projects/:projectId/states",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/states/page.tsx"
|
|
),
|
|
// Project Labels
|
|
route(
|
|
":workspaceSlug/settings/projects/:projectId/labels",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/labels/page.tsx"
|
|
),
|
|
// Project Estimates
|
|
route(
|
|
":workspaceSlug/settings/projects/:projectId/estimates",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/estimates/page.tsx"
|
|
),
|
|
// Project Automations
|
|
layout("./(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/automations/layout.tsx", [
|
|
route(
|
|
":workspaceSlug/settings/projects/:projectId/automations",
|
|
"./(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/automations/page.tsx"
|
|
),
|
|
]),
|
|
]),
|
|
]),
|
|
]),
|
|
// ======================================================================
|
|
// STANDALONE ROUTES (outside workspace context)
|
|
// ======================================================================
|
|
|
|
// --------------------------------------------------------------------
|
|
// PROFILE SETTINGS
|
|
// --------------------------------------------------------------------
|
|
|
|
layout("./(all)/profile/layout.tsx", [
|
|
route("profile", "./(all)/profile/page.tsx"),
|
|
route("profile/activity", "./(all)/profile/activity/page.tsx"),
|
|
route("profile/appearance", "./(all)/profile/appearance/page.tsx"),
|
|
route("profile/notifications", "./(all)/profile/notifications/page.tsx"),
|
|
route("profile/security", "./(all)/profile/security/page.tsx"),
|
|
]),
|
|
]),
|
|
|
|
// ========================================================================
|
|
// REDIRECT ROUTES
|
|
// ========================================================================
|
|
// Legacy URL redirects for backward compatibility
|
|
|
|
// --------------------------------------------------------------------
|
|
// REDIRECT ROUTES
|
|
// --------------------------------------------------------------------
|
|
|
|
// Project settings redirect: /:workspaceSlug/projects/:projectId/settings/:path*
|
|
// → /:workspaceSlug/settings/projects/:projectId/:path*
|
|
route(":workspaceSlug/projects/:projectId/settings/*", "routes/redirects/core/project-settings.tsx"),
|
|
|
|
// Analytics redirect: /:workspaceSlug/analytics → /:workspaceSlug/analytics/overview
|
|
route(":workspaceSlug/analytics", "routes/redirects/core/analytics.tsx"),
|
|
|
|
// API tokens redirect: /:workspaceSlug/settings/api-tokens
|
|
// → /:workspaceSlug/settings/account/api-tokens
|
|
route(":workspaceSlug/settings/api-tokens", "routes/redirects/core/api-tokens.tsx"),
|
|
|
|
// Inbox redirect: /:workspaceSlug/projects/:projectId/inbox
|
|
// → /:workspaceSlug/projects/:projectId/intake
|
|
route(":workspaceSlug/projects/:projectId/inbox", "routes/redirects/core/inbox.tsx"),
|
|
|
|
// Sign-up redirects
|
|
route("accounts/sign-up", "routes/redirects/core/accounts-signup.tsx"),
|
|
|
|
// Sign-in redirects (all redirect to home page)
|
|
route("sign-in", "routes/redirects/core/sign-in.tsx"),
|
|
route("signin", "routes/redirects/core/signin.tsx"),
|
|
route("login", "routes/redirects/core/login.tsx"),
|
|
|
|
// Register redirect
|
|
route("register", "routes/redirects/core/register.tsx"),
|
|
] satisfies RouteConfig;
|