All files / src/components EC3Router.tsx

43.75% Statements 7/16
0% Branches 0/3
0% Functions 0/5
46.15% Lines 6/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41        4x 4x 4x 4x 4x     4x                                                          
/*---------------------------------------------------------------------------------------------
 * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
 * See LICENSE.md in the project root for license terms and full copyright notice.
 *--------------------------------------------------------------------------------------------*/
import React from "react";
import { RouteStep } from "./EC3WidgetComponent";
import { TemplateMenu } from "./TemplateMenu";
import { Templates } from "./Templates";
import { EC3Widget } from "../EC3Widget";
import type { EC3RouterProps } from "./EC3RouterProps";
 
export const EC3Router = ({ currentRoute, navigateTo, goBack, onExportResult }: EC3RouterProps) => {
  const { template } = currentRoute.routingFields;
  switch (currentRoute.step) {
    case RouteStep.Templates:
      return (
        <Templates
          onClickCreate={() =>
            navigateTo(() => ({
              step: RouteStep.TemplateMenu,
              title: EC3Widget.translate("createTemplate"),
              routingFields: {},
            }))
          }
          onClickTemplateTitle={(t) =>
            navigateTo(() => ({
              step: RouteStep.TemplateMenu,
              title: t.displayName,
              routingFields: { template: t },
            }))
          }
          onExportResult={onExportResult}
        />
      );
    case RouteStep.TemplateMenu:
      return <TemplateMenu template={template} onClickCancel={goBack} onSaveSuccess={goBack} />;
    default:
      return null;
  }
};