e5f41731ae
* bootstrap next app + add overview page * fix AssetList type * fix up nav stuff * Refactor Nav component and add network components pages * Refactor WorldMap component and update TelegramIcon, GitHubIcon, NymVpnIcon, DiscordIcon, and TwitterIcon components * add service providers page * mixnodes page * delegations page + use material react table for all tables * nodes map page * Refactor StyledLink component and remove unnecessary console.log statements * Refactor ESLint configuration, remove unused dependencies, and update component imports * update deps * Refactor imports and update dependencies * fix dark mode * build single mixnode page * build single gateway page * Refactor handleOnDelegate function to use useCallback in mixnodes page.tsx * Add defaults for constants --------- Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
39 lines
856 B
TypeScript
39 lines
856 B
TypeScript
import { Card, CardHeader, CardContent, Typography } from '@mui/material'
|
|
import React, { ReactEventHandler } from 'react'
|
|
|
|
type ContentCardProps = {
|
|
title?: React.ReactNode
|
|
subtitle?: string
|
|
Icon?: React.ReactNode
|
|
Action?: React.ReactNode
|
|
errorMsg?: string
|
|
onClick?: ReactEventHandler
|
|
}
|
|
|
|
export const ContentCard: FCWithChildren<ContentCardProps> = ({
|
|
title,
|
|
Icon,
|
|
Action,
|
|
subtitle,
|
|
errorMsg,
|
|
children,
|
|
onClick,
|
|
}) => (
|
|
<Card onClick={onClick} sx={{ height: '100%' }}>
|
|
{title && (
|
|
<CardHeader
|
|
title={title || ''}
|
|
avatar={Icon}
|
|
action={Action}
|
|
subheader={subtitle}
|
|
/>
|
|
)}
|
|
{children && <CardContent>{children}</CardContent>}
|
|
{errorMsg && (
|
|
<Typography variant="body2" sx={{ color: 'danger', padding: 2 }}>
|
|
{errorMsg}
|
|
</Typography>
|
|
)}
|
|
</Card>
|
|
)
|