1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/renderer/components/+workloads/workloads.route.ts
Sebastian Malton c542ad0348
refactor overview statuses to be more DRY (#912)
* refactor overview statuses to be more DRY

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2020-09-29 11:25:29 -04:00

75 lines
2.0 KiB
TypeScript

import { RouteProps } from "react-router"
import { Workloads } from "./workloads";
import { buildURL, IURLParams } from "../../navigation";
import { KubeResource } from "../../../common/rbac";
export const workloadsRoute: RouteProps = {
get path() {
return Workloads.tabRoutes.map(({ path }) => path).flat()
}
}
// Routes
export const overviewRoute: RouteProps = {
path: "/workloads"
}
export const podsRoute: RouteProps = {
path: "/pods"
}
export const deploymentsRoute: RouteProps = {
path: "/deployments"
}
export const daemonSetsRoute: RouteProps = {
path: "/daemonsets"
}
export const statefulSetsRoute: RouteProps = {
path: "/statefulsets"
}
export const jobsRoute: RouteProps = {
path: "/jobs"
}
export const cronJobsRoute: RouteProps = {
path: "/cronjobs"
}
// Route params
export interface IWorkloadsOverviewRouteParams {
}
export interface IPodsRouteParams {
}
export interface IDeploymentsRouteParams {
}
export interface IDaemonSetsRouteParams {
}
export interface IStatefulSetsRouteParams {
}
export interface IJobsRouteParams {
}
export interface ICronJobsRouteParams {
}
// URL-builders
export const workloadsURL = (params?: IURLParams) => overviewURL(params);
export const overviewURL = buildURL<IWorkloadsOverviewRouteParams>(overviewRoute.path)
export const podsURL = buildURL<IPodsRouteParams>(podsRoute.path)
export const deploymentsURL = buildURL<IDeploymentsRouteParams>(deploymentsRoute.path)
export const daemonSetsURL = buildURL<IDaemonSetsRouteParams>(daemonSetsRoute.path)
export const statefulSetsURL = buildURL<IStatefulSetsRouteParams>(statefulSetsRoute.path)
export const jobsURL = buildURL<IJobsRouteParams>(jobsRoute.path)
export const cronJobsURL = buildURL<ICronJobsRouteParams>(cronJobsRoute.path)
export const workloadURL: Partial<Record<KubeResource, ReturnType<typeof buildURL>>> = {
"pods": podsURL,
"deployments": deploymentsURL,
"daemonsets": daemonSetsURL,
"statefulsets": statefulSetsURL,
"jobs": jobsURL,
"cronjobs": cronJobsURL,
}