/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ import React, { useCallback, useState, MouseEvent } from "react"; import { useDateTimeFormatter, useWindowSize } from "../hooks"; import { Dataset, DatasetType } from "../models"; import Button from "./Button"; import RadioButtonsTile from "./RadioButtonsTile"; import FileInput from "./FileInput"; import Link from "./Link"; import Table from "./Table"; import { useTranslation } from "react-i18next"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faSearch } from "@fortawesome/free-solid-svg-icons"; import styles from "./ChooseData.module.scss"; interface Props { handleChange: React.FormEventHandler; datasetType: DatasetType | undefined; register: Function; onCancel: (event: MouseEvent) => void; backStep: (event: MouseEvent) => void; advanceStep: Function; fileLoading: boolean; csvErrors: Array | undefined; csvFile: File | undefined; staticFileName: string | undefined; dynamicFileName: string | undefined; onFileProcessed: Function; browseDatasets: (event: MouseEvent) => void; selectDynamicDataset: Function; dynamicDatasets: Array; hasErrors: boolean; widgetType: string; setShowNoDatasetTypeAlert: Function; } function ChooseData(props: Props) { const { t } = useTranslation(); const dateFormatter = useDateTimeFormatter(); const [filter, setFilter] = useState(""); const [query, setQuery] = useState(""); const windowSize = useWindowSize(); const isMobile = windowSize.width <= 600; const onSelect = useCallback( (selectedDataset: Array) => { if (props.datasetType === DatasetType.DynamicDataset) { if (selectedDataset.length) { props.selectDynamicDataset(selectedDataset[0]); props.setShowNoDatasetTypeAlert(false); } else if (props.dynamicFileName) { props.setShowNoDatasetTypeAlert(false); } } if ( props.datasetType === DatasetType.StaticDataset && (props.csvFile || props.staticFileName) ) { props.setShowNoDatasetTypeAlert(false); } }, [props.datasetType], ); const onSearch = (query: string) => { setFilter(query); }; const onAdvanceStep = () => { if (props.hasErrors) { props.setShowNoDatasetTypeAlert(true); } else { props.advanceStep(); } }; return ( <>
{t("ChooseDataDescription", { widgetType: props.widgetType, })}{" "} {t("HowDoIAddDatasets")}