/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import React, { useState, FunctionComponent } from 'react'; import { Radio, AutoComplete, Input } from 'src/common/components'; import StyledModal from 'src/common/components/Modal'; import Button from 'src/components/Button'; import { styled } from '@superset-ui/core'; import { RadioChangeEvent } from 'antd/lib/radio'; interface SaveDatasetModalProps { visible: boolean; onOk: () => void; onHide: () => void; handleDatasetNameChange: (e: React.FormEvent) => void; userDatasetsOwned: Array>; handleSaveDatasetRadioBtnState: (e: RadioChangeEvent) => void; saveDatasetRadioBtnState: number; shouldOverwriteDataset: boolean; handleOverwriteCancel: () => void; handleOverwriteDataset: () => void; handleOverwriteDatasetOption: ( data: string, option: Record, ) => void; defaultCreateDatasetValue: string; } const Styles = styled.div` .smd-input { margin-left: 45px; width: 290px; } .smd-autocomplete { margin-left: 8px; width: 290px; } .smd-radio { display: block; height: 30px; margin: 10px 0px; line-height: 30px; } `; // eslint-disable-next-line no-empty-pattern export const SaveDatasetModal: FunctionComponent = ({ visible, onOk, onHide, handleDatasetNameChange, userDatasetsOwned, handleSaveDatasetRadioBtnState, saveDatasetRadioBtnState, shouldOverwriteDataset, handleOverwriteCancel, handleOverwriteDataset, handleOverwriteDatasetOption, defaultCreateDatasetValue, }) => { const [options, setOptions] = useState< { value: string; datasetId: number; }[] >([]); const onSearch = (searchText: string) => { setOptions( !searchText ? [] : userDatasetsOwned.map(d => ({ value: d.datasetName, datasetId: d.datasetId, })), ); }; const filterAutocompleteOption = ( inputValue: string, option: { value: string; datasetId: number }, ) => { return option.value.includes(inputValue); }; return ( {!shouldOverwriteDataset && ( )} {shouldOverwriteDataset && ( <> )} } > {!shouldOverwriteDataset && (
Save this query as virtual dataset to continue exploring.
Save as new Overwrite existing
)} {shouldOverwriteDataset && (
Are you sure you want to overwrite this dataset?
)}
); };