@adaptabletools/adaptable
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
44 lines (43 loc) • 2.07 kB
JavaScript
import * as React from 'react';
import { Box, Text } from 'rebass';
import ErrorBox from '../../../components/ErrorBox';
import FormLayout, { FormRow } from '../../../components/FormLayout';
import Input from '../../../components/Input';
import { Tag } from '../../../components/Tag';
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
export const renderReportNameSummary = (report) => {
return (React.createElement(Box, { fontSize: 2 },
' ',
"Report Name: ",
React.createElement(Tag, null, report.Name)));
};
export const isValidReportName = (report, api) => {
if (!report.Name) {
return 'Report name cannot be empty';
}
const reportsWithSameNameCount = api.exportApi
.getAllReports()
.filter((r) => report.Name === r.Name).length;
const hasAlreadyExistingName = report.Uuid
? reportsWithSameNameCount > 1
: reportsWithSameNameCount > 0;
return hasAlreadyExistingName ? 'A Report already exists with that name' : true;
};
export const ReportNameWizardSection = (props) => {
const { api, data } = useOnePageAdaptableWizardContext();
const validCheck = isValidReportName(data, api);
const ErrorMessage = validCheck === true ? null : validCheck;
return (React.createElement(Box, null,
React.createElement(FormLayout, { columns: [1, 2] },
React.createElement(FormRow, null,
React.createElement(Text, { marginRight: 2 }, "Name:"),
React.createElement(Input, { "data-name": "export-name", width: "100%", type: "text", autoFocus: true, placeholder: "Name", value: data.Name, onChange: (e) => {
props.onChange({
...data,
Name: e.target.value,
});
} })),
React.createElement(FormRow, null,
React.createElement(React.Fragment, null),
ErrorMessage ? React.createElement(ErrorBox, null, ErrorMessage) : null))));
};