import { Entrypoint } from "src/entrypoint";
import { Home } from "src/home";
import { ErrorPage, Login, DataSourceConfig, SelectSource } from "src/pages";
import { ProtectedRoute } from "./protected_route";

export enum Paths {
  ENTRYPOINT = "/",
  LOGIN = "/login",
  DATA_SOURCE_SELECTION = "/data-source-selection",
  DATA_SOURCE_CONFIG = "/data-source-config",
  ERRORS = "/errors/:retry",
}

export const routes = [
  {
    path: Paths.ENTRYPOINT,
    element: <Home />,
    errorElement: <ErrorPage />,
    children: [
      {
        index: true,
        element: <Entrypoint />,
      },
      {
        path: Paths.LOGIN,
        element: <Login />,
      },
      {
        path: Paths.DATA_SOURCE_SELECTION,
        element: (
          <ProtectedRoute>
            <SelectSource />
          </ProtectedRoute>
        ),
      },
      {
        path: Paths.DATA_SOURCE_CONFIG,
        element: (
          <ProtectedRoute>
            <DataSourceConfig />
          </ProtectedRoute>
        ),
      },
    ],
  },
];
