Newer
Older
import {
Table,
TableCaption,
TableContainer,
Tbody,
Td,
Th,
Text,
Thead,
Tooltip,
Tr,
HStack,
IconButton,
Icon,
import { GetPatternQuery } from '../patterns/query-builder'
export type AnimationsProps = {
patternId: Pattern['id']
}
export const Animations: React.FC<AnimationsProps> = ({ patternId }) => {
const patternQuery = GetPatternQuery.useQuery({ id: patternId })
const animationsQuery = GetAnimationsQuery.useQuery({ patternId })
? `No hay animaciones disponibles de ${patternQuery.data?.name}`
: `Animaciones disponibles de ${patternQuery.data?.name}`
<VStack spacing="2">
<TableContainer>
<Table variant="simple" size="lg" minW="80vw">
<TableCaption>{tableCaption}</TableCaption>
<Thead>
<Tr>
{tableHeaders.map((header, index) => (
<Th key={`th-${index}`}>{header}</Th>
))}
</Thead>
<Tbody>
{animations.map((animation, index) => (
<Tr key={`animation-${animation.name}-${index}`}>
<Td>{animation.name}</Td>
<Td>
<Tooltip label={animation.description} hasArrow>
<Text isTruncated maxW="sm">
{animation.description}
</Text>
</Tooltip>
</Td>
<Td>
</Td>
</Tr>
))}
</Tbody>
</Table>
</TableContainer>
<HStack w="full" justifyContent="flex-end">
{patternQuery.data && (
<>
<Button
variant="solid"
colorScheme="blue"
onClick={addAnimationDisclosure.onOpen}
>
Crear Animacion
</Button>
{addAnimationDisclosure.isOpen && (
<AddAnimationModal
pattern={patternQuery.data}
disclosure={addAnimationDisclosure}
/>
)}
</>
)}
</HStack>
</VStack>
const ActionsRow: React.FC<ActionsRowProps> = ({ animation }) => {
const handleOnClickView = () => {
const newWindow = window.open()
newWindow.document.write(animation.htmlContent)
newWindow.document.close()
}
<Tooltip label={<Text>Ver</Text>}>
<IconButton
aria-label="view animation"
variant="unstyled"
/>
</Tooltip>
<Tooltip label={<Text>Eliminar animacion</Text>}>
<IconButton
aria-label="delete animation"
variant="unstyled"
icon={<Icon as={FaTrash} />}
/>
</Tooltip>