diff --git a/ui-v2/src/components/concurrency/concurrency-page-title.tsx b/ui-v2/src/components/concurrency/concurrency-page-title.tsx new file mode 100644 index 0000000000000..577d8a1349530 --- /dev/null +++ b/ui-v2/src/components/concurrency/concurrency-page-title.tsx @@ -0,0 +1,15 @@ +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbList, +} from "@/components/ui/breadcrumb"; + +export const ConcurrencyPageTitle = () => ( + + + + Concurrency + + + +); diff --git a/ui-v2/src/components/concurrency/concurrency-page.tsx b/ui-v2/src/components/concurrency/concurrency-page.tsx new file mode 100644 index 0000000000000..b7e2277dfb1bb --- /dev/null +++ b/ui-v2/src/components/concurrency/concurrency-page.tsx @@ -0,0 +1,26 @@ +import { useState } from "react"; +import { ConcurrencyPageTitle } from "./concurrency-page-title"; +import { ConcurrencyTabs } from "./concurrency-tabs"; +import { GlobalConcurrencyView } from "./global-concurrency-view"; +import { TaskRunConcurrencyView } from "./task-run-concurrenct-view"; + +type Tab = "Global" | "Task Run"; + +export const ConcurrencyPage = (): JSX.Element => { + // TODO: Use URL query instead + const [tab, setTab] = useState("Global"); + + return ( +
+ +
+ } + taskRunView={} + /> +
+
+ ); +}; diff --git a/ui-v2/src/components/concurrency/concurrency-tabs.tsx b/ui-v2/src/components/concurrency/concurrency-tabs.tsx new file mode 100644 index 0000000000000..a8a86f48953e0 --- /dev/null +++ b/ui-v2/src/components/concurrency/concurrency-tabs.tsx @@ -0,0 +1,35 @@ +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; + +type Tabs = "Global" | "Task Run"; + +type Props = { + globalView: React.ReactNode; + onValueChange: (value: Tabs) => void; + taskRunView: React.ReactNode; + value: Tabs; +}; + +// TODO: Move Tabs for navigation to a generic styled component + +export const ConcurrencyTabs = ({ + globalView, + onValueChange, + taskRunView, + value, +}: Props): JSX.Element => { + return ( + onValueChange(value as Tabs)} + > + + Global + Task Run + + {globalView} + {taskRunView} + + ); +}; diff --git a/ui-v2/src/components/concurrency/global-concurrency-limit-empty-state.test.tsx b/ui-v2/src/components/concurrency/global-concurrency-view/global-concurrency-limit-empty-state.test.tsx similarity index 100% rename from ui-v2/src/components/concurrency/global-concurrency-limit-empty-state.test.tsx rename to ui-v2/src/components/concurrency/global-concurrency-view/global-concurrency-limit-empty-state.test.tsx diff --git a/ui-v2/src/components/concurrency/global-concurrency-limit-empty-state.tsx b/ui-v2/src/components/concurrency/global-concurrency-view/global-concurrency-limit-empty-state.tsx similarity index 100% rename from ui-v2/src/components/concurrency/global-concurrency-limit-empty-state.tsx rename to ui-v2/src/components/concurrency/global-concurrency-view/global-concurrency-limit-empty-state.tsx diff --git a/ui-v2/src/components/concurrency/global-concurrency-view/index.tsx b/ui-v2/src/components/concurrency/global-concurrency-view/index.tsx new file mode 100644 index 0000000000000..3fee28d644586 --- /dev/null +++ b/ui-v2/src/components/concurrency/global-concurrency-view/index.tsx @@ -0,0 +1,3 @@ +export const GlobalConcurrencyView = () => { + return
🚧🚧 Pardon our dust! 🚧🚧
; +}; diff --git a/ui-v2/src/components/concurrency/task-run-concurrenct-view/index.tsx b/ui-v2/src/components/concurrency/task-run-concurrenct-view/index.tsx new file mode 100644 index 0000000000000..8902ed44ec37c --- /dev/null +++ b/ui-v2/src/components/concurrency/task-run-concurrenct-view/index.tsx @@ -0,0 +1,3 @@ +export const TaskRunConcurrencyView = () => { + return
🚧🚧 Pardon our dust! 🚧🚧
; +}; diff --git a/ui-v2/src/components/concurrency/task-run-concurrency-limit-empty-state.test.tsx b/ui-v2/src/components/concurrency/task-run-concurrenct-view/task-run-concurrency-limit-empty-state.test.tsx similarity index 100% rename from ui-v2/src/components/concurrency/task-run-concurrency-limit-empty-state.test.tsx rename to ui-v2/src/components/concurrency/task-run-concurrenct-view/task-run-concurrency-limit-empty-state.test.tsx diff --git a/ui-v2/src/components/concurrency/task-run-concurrency-limit-empty-state.tsx b/ui-v2/src/components/concurrency/task-run-concurrenct-view/task-run-concurrency-limit-empty-state.tsx similarity index 100% rename from ui-v2/src/components/concurrency/task-run-concurrency-limit-empty-state.tsx rename to ui-v2/src/components/concurrency/task-run-concurrenct-view/task-run-concurrency-limit-empty-state.tsx diff --git a/ui-v2/src/components/layouts/MainLayout.tsx b/ui-v2/src/components/layouts/MainLayout.tsx index 6c6b89cebe14d..5840d65137865 100644 --- a/ui-v2/src/components/layouts/MainLayout.tsx +++ b/ui-v2/src/components/layouts/MainLayout.tsx @@ -1,12 +1,12 @@ -import { SidebarProvider } from "@/components/ui/sidebar"; import { AppSidebar } from "@/components/ui/app-sidebar"; +import { SidebarProvider } from "@/components/ui/sidebar"; import { Toaster } from "../ui/toaster"; export function MainLayout({ children }: { children: React.ReactNode }) { return ( -
{children}
+
{children}
); diff --git a/ui-v2/src/components/variables/layout.tsx b/ui-v2/src/components/variables/layout.tsx index ee2ba683846be..f483cab729608 100644 --- a/ui-v2/src/components/variables/layout.tsx +++ b/ui-v2/src/components/variables/layout.tsx @@ -14,7 +14,7 @@ export const VariablesLayout = ({ children: React.ReactNode; }) => { return ( -
+
diff --git a/ui-v2/src/routes/concurrency-limits.tsx b/ui-v2/src/routes/concurrency-limits.tsx index 1cd00ccde0bc1..e425901c1452f 100644 --- a/ui-v2/src/routes/concurrency-limits.tsx +++ b/ui-v2/src/routes/concurrency-limits.tsx @@ -1,9 +1,11 @@ import { createFileRoute } from "@tanstack/react-router"; +import { ConcurrencyPage } from "@/components/concurrency/concurrency-page"; + export const Route = createFileRoute("/concurrency-limits")({ component: RouteComponent, }); function RouteComponent() { - return "🚧🚧 Pardon our dust! 🚧🚧"; + return ; }