import { Card, Center, Text, UnstyledButton } from '@mantine/core'; import { NextLink } from '@mantine/next'; import { createStyles } from '@mantine/styles'; import { ServiceType } from '../../../../types/service'; import { useCardStyles } from '../../../layout/useCardStyles'; import { useEditModeStore } from '../../Views/store'; import { BaseTileProps } from '../type'; interface ServiceTileProps extends BaseTileProps { service: ServiceType; } export const ServiceTile = ({ className, service }: ServiceTileProps) => { const isEditMode = useEditModeStore((x) => x.enabled); const { cx, classes } = useStyles(); const { classes: { card: cardClass }, } = useCardStyles(); const inner = ( <> {service.name}
); return ( {isEditMode && { /**/ }}{' '} {/* TODO: change to serviceMenu */} {!service.url || isEditMode ? ( {inner} ) : ( {inner} )} {/**/} ); }; const useStyles = createStyles((theme, _params, getRef) => { return { image: { ref: getRef('image'), maxHeight: '80%', maxWidth: '80%', transition: 'transform 100ms ease-in-out', }, serviceName: { ref: getRef('serviceName'), }, button: { height: '100%', width: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 4, }, link: { [`&:hover .${getRef('image')}`]: { // TODO: add styles for image when hovering card }, [`&:hover .${getRef('serviceName')}`]: { // TODO: add styles for service name when hovering card }, }, }; });