// Copyright (c) 2022 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
import React, {ComponentType} from 'react';
import styled from 'styled-components';
import {MapIcon} from 'components/common/icons';
import {StyledExportSection} from 'components/common/styled-components';
import ErrorDisplay from './error-display';
import {FormattedMessage} from 'localization';
import {IconProps} from 'cloud-providers/provider';
const StyledUploader = styled.div`
display: flex;
align-items: center;
justify-content: flex-start;
`;
const StyledMapIcon = styled.div`
color: ${props => props.theme.textColorLT};
margin-right: 16px;
margin-top: 4px;
`;
const StyledSvg = styled.svg`
margin-right: 16px;
line {
stroke: ${props => props.theme.selectBorderColorLT};
stroke-width: 4;
stroke-linecap: square;
stroke-dasharray: 5 12;
animation: dash-animation 25s infinite linear;
}
circle {
fill: ${props => props.theme.selectBorderColorLT};
}
@keyframes dash-animation {
to {
stroke-dashoffset: -1000;
}
}
`;
const Line = () => (
);
interface UploadAnimationProps {
icon?: ComponentType | null;
}
export const UploadAnimation: React.FC = props => (
{props.icon && }
);
interface StatusPanelProps {
error?: string | null;
isLoading?: boolean;
providerIcon?: ComponentType | null;
}
const StatusPanel: React.FC = ({error, isLoading, providerIcon}) => (