JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr{ gilour

File "dashboard-routes.tsx"

Full Path: /home/markqprx/iniasli.pro/resources/client/dashboard/dashboard-routes.tsx
File size: 4.47 KB
MIME-type: text/plain
Charset: utf-8

import {Navigate, RouteObject, useRoutes} from 'react-router-dom';
import React from 'react';
import {AuthRoute} from '@common/auth/guards/auth-route';
import {NotFoundPage} from '@common/ui/not-found-page/not-found-page';
import {BelinkDashboardLayout} from './layout/belink-dasbboard-layout';
import {AllClicksReportPage} from './all-clicks-report-page';
import {LinksDatablePage} from './links/links-datatable-page/links-datatable-page';
import {LinkGroupsLinksDatatablePage} from './link-groups/link-group-links-datatable-page/link-group-links-datatable-page';
import {LinkGroupsDatatablePage} from './link-groups/link-groups-datatable-page/link-groups-datatable-page';
import {LinkGroupClicksReportPage} from '@app/dashboard/link-groups/link-group-clicks-report-page';
import {LinkClicksReportPage} from '@app/dashboard/links/link-clicks-report-page';
import {DomainsDatatablePage} from '@app/dashboard/custom-domains/domains-datatable-page';
import {TrackingPixelsDatablePage} from '@app/dashboard/tracking-pixels/tracking-pixels-datatable-page';
import {useActiveWorkspaceId} from '@common/workspace/active-workspace-id-context';
import {LinkPagesDatatablePage} from '@app/dashboard/link-pages/link-pages-datatable-page';
import {LinkOverlaysDatatablePage} from '@app/dashboard/link-overlays/link-overlays-datatable-page';
import {CreateLinkOverlayPage} from '@app/dashboard/link-overlays/crupdate/create-link-overlay-page';
import {UpdateLinkOverlayPage} from '@app/dashboard/link-overlays/crupdate/update-link-overlay-page';
import {BioLinksDatatablePage} from '@app/dashboard/biolink/biolinks-datatable-page/biolinks-datatable-page';
import {BiolinkClicksReportPage} from '@app/dashboard/biolink/biolink-clicks-report-page';
import {BiolinkEditorPage} from '@app/dashboard/biolink/biolink-editor/biolink-editor-page';
import {CreateLinkPage} from '@app/dashboard/link-pages/create-link-page';
import {EditLinkPage} from '@app/dashboard/link-pages/edit-link-page';

export const SharedDashboardRoutes = ({forCurrentUser = false}) => {
  return [
    // links
    {
      path: 'links',
      element: <LinksDatablePage forCurrentUser={forCurrentUser} />,
    },
    {
      path: 'links/:linkId',
      element: <LinkClicksReportPage />,
    },

    // biolinks
    {
      path: 'biolinks',
      element: <BioLinksDatatablePage forCurrentUser={forCurrentUser} />,
    },
    {
      path: 'biolinks/:biolinkId',
      element: <BiolinkClicksReportPage />,
    },
    {
      path: 'biolinks/:biolinkId/edit',
      element: <Navigate to="content" replace />,
    },
    {
      path: 'biolinks/:biolinkId/edit/:tabName',
      element: <BiolinkEditorPage />,
    },

    // groups
    {
      path: 'link-groups',
      element: <LinkGroupsDatatablePage forCurrentUser={forCurrentUser} />,
    },
    {
      path: 'link-groups/:groupId',
      element: <LinkGroupClicksReportPage />,
    },
    {
      path: 'link-groups/:groupId/links',
      element: <LinkGroupsLinksDatatablePage />,
    },
    {
      path: 'link-groups/:groupId/links/:linkId',
      element: <LinkClicksReportPage />,
    },

    // domains
    {
      path: 'custom-domains',
      element: <DomainsDatatablePage forCurrentUser={forCurrentUser} />,
    },

    // tracking pixels
    {
      path: 'pixels',
      element: <TrackingPixelsDatablePage forCurrentUser={forCurrentUser} />,
    },

    // overlays
    {
      path: 'link-overlays',
      element: <LinkOverlaysDatatablePage forCurrentUser={forCurrentUser} />,
    },
    {
      path: 'link-overlays/new',
      element: <CreateLinkOverlayPage />,
    },
    {
      path: 'link-overlays/:overlayId/edit',
      element: <UpdateLinkOverlayPage />,
    },
  ];
};

export default function DashboardRoutes() {
  const {workspaceId} = useActiveWorkspaceId();
  const DashboardRouteConfig: RouteObject[] = [
    {
      path: '/',
      element: (
        <AuthRoute>
          <BelinkDashboardLayout />
        </AuthRoute>
      ),
      children: [
        {index: true, element: <AllClicksReportPage />},

        // link pages
        {
          path: 'link-pages',
          element: <LinkPagesDatatablePage forCurrentUser={!workspaceId} />,
        },
        {
          path: 'link-pages/new',
          element: <CreateLinkPage />,
        },
        {
          path: 'link-pages/:pageId/edit',
          element: <EditLinkPage />,
        },

        ...SharedDashboardRoutes({forCurrentUser: !workspaceId}),
      ],
    },
    {path: '*', element: <NotFoundPage />},
  ];

  return useRoutes(DashboardRouteConfig);
}