/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import React, { useState, MouseEvent } from "react"; import { ChartType, DatasetType } from "../models"; import { useTranslation } from "react-i18next"; import Alert from "./Alert"; import BarChartWidget from "./BarChartWidget"; import Button from "./Button"; import ColumnChartWidget from "./ColumnChartWidget"; import LineChartWidget from "./LineChartWidget"; import Link from "./Link"; import PartWholeChartWidget from "./PartWholeChartWidget"; import RadioButtons from "./RadioButtons"; import Spinner from "./Spinner"; import TextField from "./TextField"; import { faTimes } from "@fortawesome/free-solid-svg-icons"; import Dropdown from "./Dropdown"; import DatasetParsingService from "../services/DatasetParsingService"; import PrimaryActionBar from "./PrimaryActionBar"; import PieChartWidget from "./PieChartWidget"; import DonutChartWidget from "./DonutChartWidget"; import { useWindowSize } from "../hooks"; import UtilsService from "../services/UtilsService"; interface Props { widgetId: string; errors: any; register: Function; json: Array; originalJson: Array; headers: Array; csvJson: Array; datasetLoading: boolean; datasetType: DatasetType | undefined; onCancel: (event: MouseEvent) => void; backStep: (event: MouseEvent) => void; advanceStep: (event: MouseEvent) => void; fileLoading: boolean; processingWidget: boolean; fullPreviewButton: JSX.Element; previewPanelId: string; fullPreview: boolean; submitButtonLabel: string; sortByColumn?: string; sortByDesc?: boolean; setSortByColumn: Function; setSortByDesc: Function; title: string; summary: string; chartType: ChartType; showTitle: boolean; summaryBelow: boolean; significantDigitLabels: boolean; horizontalScroll: boolean; stackedChart: boolean; dataLabels: boolean; computePercentages: boolean; showTotal: boolean; columnsMetadata: Array; configHeader: JSX.Element; } function VisualizeChart(props: Props) { const { t } = useTranslation(); const [showAlert, setShowAlert] = useState(true); const [widthPercent, setWidthPercent] = useState(0); const windowSize = useWindowSize(); const isMobile = windowSize.width <= 600; const handleSortDataChange = (event: React.FormEvent) => { const target = event.target as HTMLInputElement; if (target.value !== "") { const sortData = target.value.split("###"); const header = sortData[0]; const desc = sortData[1] === "desc"; props.setSortByColumn(header); props.setSortByDesc(desc); } else { props.setSortByColumn(undefined); props.setSortByDesc(undefined); } }; return (
); } export default VisualizeChart;