Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | 1x 10x 10x 3x 10x 2x 2x 2x 10x 1x 1x 10x 20x 3x | import { useState } from 'react';
import {
Dialog,
DialogTitle,
DialogContent,
DialogActions,
Button,
List,
ListItem,
ListItemButton,
ListItemText,
Typography,
Box
} from '@mui/material';
import { Workspace } from '../../../../types';
interface SelectWorkspaceDialogProps {
open: boolean;
workspaces: Workspace[];
onSelect: (workspace: Workspace) => void;
onClose: () => void;
}
const SelectWorkspaceDialog = ({
open,
workspaces,
onSelect,
onClose
}: SelectWorkspaceDialogProps) => {
const [selectedWorkspace, setSelectedWorkspace] = useState<Workspace | null>(null);
const handleWorkspaceClick = (workspace: Workspace) => {
setSelectedWorkspace(workspace);
};
const handleConfirm = () => {
Eif (selectedWorkspace) {
onSelect(selectedWorkspace);
setSelectedWorkspace(null);
}
};
const handleClose = () => {
setSelectedWorkspace(null);
onClose();
};
return (
<Dialog
open={open}
onClose={handleClose}
maxWidth="sm"
fullWidth
>
<DialogTitle>Select Workspace</DialogTitle>
<DialogContent>
<Typography variant="body2" color="text.secondary" sx={{ mb: 2 }}>
This site has multiple workspaces. Please select which one to open:
</Typography>
<List sx={{ border: '1px solid', borderColor: 'divider', borderRadius: 1, paddingY: 0 }}>
{workspaces.map((workspace) => (
<ListItem
key={workspace.key}
disablePadding
divider
sx={{
'&:last-child': {
borderBottom: 'none'
}
}}
>
<ListItemButton
selected={selectedWorkspace?.key === workspace.key}
onClick={() => handleWorkspaceClick(workspace)}
>
<ListItemText
primary={workspace.key}
secondary={
<Box component="span" sx={{ fontSize: '0.75rem' }}>
{workspace.path}
</Box>
}
/>
</ListItemButton>
</ListItem>
))}
</List>
</DialogContent>
<DialogActions>
<Button onClick={handleClose}>Cancel</Button>
<Button
onClick={handleConfirm}
variant="contained"
disabled={!selectedWorkspace}
>
Open Workspace
</Button>
</DialogActions>
</Dialog>
);
};
export default SelectWorkspaceDialog;
|