forked from OpenNeo/impress
93 lines
1.9 KiB
JavaScript
93 lines
1.9 KiB
JavaScript
|
import React from "react";
|
||
|
import {
|
||
|
Box,
|
||
|
Button,
|
||
|
Modal,
|
||
|
ModalBody,
|
||
|
ModalCloseButton,
|
||
|
ModalContent,
|
||
|
ModalHeader,
|
||
|
ModalOverlay,
|
||
|
Table,
|
||
|
Tbody,
|
||
|
Td,
|
||
|
Th,
|
||
|
Thead,
|
||
|
Tr,
|
||
|
} from "@chakra-ui/react";
|
||
|
|
||
|
function LayersInfoModal({ isOpen, onClose, visibleLayers }) {
|
||
|
return (
|
||
|
<Modal isOpen={isOpen} onClose={onClose} size="xl">
|
||
|
<ModalOverlay>
|
||
|
<ModalContent maxWidth="800px">
|
||
|
<ModalHeader>Outfit layers</ModalHeader>
|
||
|
<ModalCloseButton />
|
||
|
<ModalBody>
|
||
|
<LayerTable layers={visibleLayers} />
|
||
|
</ModalBody>
|
||
|
</ModalContent>
|
||
|
</ModalOverlay>
|
||
|
</Modal>
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function LayerTable({ layers }) {
|
||
|
return (
|
||
|
<Table>
|
||
|
<Thead>
|
||
|
<Tr>
|
||
|
<Th>Preview</Th>
|
||
|
<Th>DTI ID</Th>
|
||
|
<Th>Zone</Th>
|
||
|
<Th>Links</Th>
|
||
|
</Tr>
|
||
|
</Thead>
|
||
|
<Tbody>
|
||
|
{layers.map((layer) => (
|
||
|
<LayerTableRow key={layer.id} layer={layer} />
|
||
|
))}
|
||
|
</Tbody>
|
||
|
</Table>
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function LayerTableRow({ layer, ...props }) {
|
||
|
return (
|
||
|
<Tr {...props}>
|
||
|
<Td>
|
||
|
<Box
|
||
|
as="img"
|
||
|
src={layer.imageUrl}
|
||
|
width="60px"
|
||
|
height="60px"
|
||
|
boxShadow="md"
|
||
|
/>
|
||
|
</Td>
|
||
|
<Td>{layer.id}</Td>
|
||
|
<Td>{layer.zone.label}</Td>
|
||
|
<Td>
|
||
|
<Box display="flex" gap=".5em">
|
||
|
{layer.imageUrl && (
|
||
|
<Button as="a" href={layer.imageUrl} target="_blank" size="sm">
|
||
|
PNG
|
||
|
</Button>
|
||
|
)}
|
||
|
{layer.swfUrl && (
|
||
|
<Button as="a" href={layer.swfUrl} size="sm" download>
|
||
|
SWF
|
||
|
</Button>
|
||
|
)}
|
||
|
{layer.svgUrl && (
|
||
|
<Button as="a" href={layer.svgUrl} target="_blank" size="sm">
|
||
|
SVG
|
||
|
</Button>
|
||
|
)}
|
||
|
</Box>
|
||
|
</Td>
|
||
|
</Tr>
|
||
|
);
|
||
|
}
|
||
|
|
||
|
export default LayersInfoModal;
|