/*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ import React, { useCallback, useMemo } from "react"; import { RequiredFieldsNotice } from "./RequiredFieldsNotice"; import { Button, LabeledInput, LabeledSelect } from "@itwin/itwinui-react"; import type { Configuration, Report } from "../ec3-widget-react"; import { EC3Widget } from "../EC3Widget"; import "./TemplateModificationStepOne.scss"; import { useApiContext } from "./context/APIContext"; export interface TemplateModificationStepOneProps { currentStep: number; updateCurrentStep: (currentStep: number) => void; childTemplate: Configuration; updateChildTemplate: (childTemplate: Configuration) => void; onCancelClick: () => void; fetchedReports?: Report[]; isLoading: boolean; } export const TemplateModificationStepOne = (props: TemplateModificationStepOneProps) => { const { config: { defaultReport }, } = useApiContext(); const onTemplateNameChange = useCallback( (event) => { props.updateChildTemplate({ ...props.childTemplate, displayName: event.target.value }); }, [props], ); const onTemplateDescriptionChange = useCallback( (event) => { props.updateChildTemplate({ ...props.childTemplate, description: event.target.value }); }, [props], ); const onTemplateReportChange = useCallback( (selectedReport) => { props.updateChildTemplate({ ...props.childTemplate, reportId: selectedReport }); }, [props], ); const reportSelectionOptions = useMemo(() => { return ( props.fetchedReports?.map((x) => { return { label: x.displayName, value: x.id, }; }) ?? [] ); }, [props.fetchedReports]); return ( <>
{!defaultReport && ( rp.id === props.childTemplate.reportId)?.id} onChange={onTemplateReportChange} placeholder={props.isLoading ? EC3Widget.translate("reportSelectionPlaceholderLoading") : EC3Widget.translate("reportSelectionPlaceholderSelect")} disabled={props.isLoading || props.childTemplate.reportId !== undefined} /> )}
); };