All files / src/form/csv CsvOperateComponent.tsx

60% Statements 9/15
63.63% Branches 7/11
50% Functions 2/4
60% Lines 9/15

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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75              66x           7x 7x 7x 7x     7x 2x                 2x       7x                                                                                  
import React, { ReactElement, useEffect, useState } from 'react';
import { Space } from 'antd';
import { useTranslation } from 'react-i18next';
import { CsvOperateProps } from '@props/RecordProps';
import CsvUploadComponent from './CsvUploadComponent';
import { fetchCanCreate } from "@utils/FetchUtils";
 
const CsvOperateComponent = (props: CsvOperateProps): ReactElement => {
 
  const {
    domainName, columns, domainTitle, showUpload, fetchDataCallback,
    ownerId, ownerClass, columnNameInOwnerClass, ownerColumn,
    readonly, zIndex, visiblePopover, setVisiblePopoverCallback
  } = props;
  const { t } = useTranslation();
  const myTitle = domainTitle ?? t(domainName);
  const [canCreate, setCanCreate] = useState<boolean>(false);
 
  // Hide the popup when switch to different domain list page
  useEffect(() => {
    Iif (showUpload == null) {
      fetchCanCreate(domainName).then(json => {
        if (json.error === 1) {
          setCanCreate(false);
        } else {
          setCanCreate(json.create);
        }
      });
    } else {
      setCanCreate(showUpload);
    }
  }, [domainName, showUpload]);
 
  return (
    <div>
      <Space direction="horizontal" size="small">
        {/*
        {(allData.length > 0) &&
          <CsvDownloadComponent
            visiblePopover={visiblePopover}
            setVisiblePopoverCallback={setVisiblePopoverCallback}
            columns={columns}
            domainName={domainName}
            objectValues={objectValues}
            enumValues={enumValues}
            allData={allData}
            selectedData={selectedData}
            zIndex={zIndex + 1}
          />}
          */}
        {canCreate && !readonly &&
          <CsvUploadComponent
            visiblePopover={visiblePopover}
            setVisiblePopoverCallback={setVisiblePopoverCallback}
            columns={columns}
            fetchDataCallback={() => {
              setVisiblePopoverCallback('csvUpload');
              fetchDataCallback();
            }}
            domainName={domainName}
            domainTitle={myTitle ?? ""}
            ownerId={ownerId}
            ownerClass={ownerClass}
            columnNameInOwnerClass={columnNameInOwnerClass}
            ownerColumn={ownerColumn}
            zIndex={zIndex + 1}
          />
        }
      </Space >
    </div >
  );
};
 
export default CsvOperateComponent;