in src/DetailsView/components/report-export-dialog-factory.tsx [83:148]
export function getReportExportDialogForFastPass(
props: ReportExportDialogFactoryProps,
): JSX.Element {
const shouldShowReportExportButtonProps: ShouldShowReportExportButtonProps = {
visualizationConfigurationFactory: props.visualizationConfigurationFactory,
selectedTest: props.selectedTest,
tabStoreData: props.tabStoreData,
};
if (
props.switcherNavConfiguration.shouldShowReportExportButton(
shouldShowReportExportButtonProps,
) !== true
) {
return null;
}
const { deps, isOpen, dismissExportDialog, afterDialogDismissed } = props;
const reportGenerator = deps.reportGenerator;
const reportModelExceptDescription: Omit<FastPassReportModel, 'description'> = {
results: {
automatedChecks: props.automatedChecksCardsViewData,
tabStops: props.tabStopRequirementData,
},
targetPage: props.scanMetadata.targetAppInfo,
};
const generateReportFromDescription = description =>
reportGenerator.generateFastPassHtmlReport({
...reportModelExceptDescription,
description,
});
const exportResultsClickedTelemetry = (
reportExportFormat: ReportExportFormat,
selectedServiceKey: ReportExportServiceKey,
event: React.MouseEvent<HTMLElement>,
) => {
deps.detailsViewActionMessageCreator.exportResultsClickedFastPass(
props.tabStopRequirementData,
props.automatedChecksCardsViewData !== null,
reportExportFormat,
selectedServiceKey,
event,
);
};
const dialogProps: ReportExportComponentProps = {
deps: deps,
pageTitle: props.scanMetadata.targetAppInfo.name,
scanDate: props.scanMetadata.timespan.scanComplete,
reportExportFormat: 'FastPass',
htmlGenerator: generateReportFromDescription,
jsonGenerator: () => null,
updatePersistedDescription: () => null,
getExportDescription: () => '',
featureFlagStoreData: props.featureFlagStoreData,
isOpen,
dismissExportDialog,
afterDialogDismissed,
reportExportServices: deps.reportExportServiceProvider.servicesForFastPass(),
exportResultsClickedTelemetry,
};
return <ReportExportComponent {...dialogProps} />;
}