// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import React from 'react'; import { Dialog, DialogTitle, Button, Grid, DialogContent, CircularProgress, Paper } from '@material-ui/core'; import { DialogActions } from 'components/dialog-actions/dialog-actions'; import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'; export interface SharingDialogDataProps { open: boolean; loading: boolean; saveEnabled: boolean; advancedEnabled: boolean; children: React.ReactNode; } export interface SharingDialogActionProps { onClose: () => void; onExited: () => void; onSave: () => void; onAdvanced: () => void; } export default (props: SharingDialogDataProps & SharingDialogActionProps) => { const { children, open, loading, advancedEnabled, saveEnabled, onAdvanced, onClose, onExited, onSave } = props; return Sharing settings {children} {advancedEnabled && } { loading && } ; }; const loadingIndicatorStyles: StyleRulesCallback<'root'> = theme => ({ root: { position: 'absolute', top: 0, right: 0, bottom: 0, left: 0, display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: 'rgba(255, 255, 255, 0.8)', }, }); const LoadingIndicator = withStyles(loadingIndicatorStyles)( (props: WithStyles<'root'>) => );