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>
40 lines
897 B
TypeScript
40 lines
897 B
TypeScript
import * as React from 'react'
|
|
import { Button, IconButton } from '@mui/material'
|
|
import { SxProps } from '@mui/system'
|
|
import { useIsMobile } from '@/app/hooks'
|
|
import { DelegateIcon } from '@/app/icons/DelevateSVG'
|
|
|
|
export const DelegateIconButton: FCWithChildren<{
|
|
size?: 'small' | 'medium'
|
|
disabled?: boolean
|
|
tooltip?: React.ReactNode
|
|
sx?: SxProps
|
|
onDelegate: () => void
|
|
}> = ({ onDelegate, sx, disabled, size = 'medium' }) => {
|
|
const isMobile = useIsMobile()
|
|
|
|
const handleOnDelegate = () => {
|
|
onDelegate()
|
|
}
|
|
|
|
if (isMobile) {
|
|
return (
|
|
<IconButton size="small" disabled={disabled} onClick={handleOnDelegate}>
|
|
<DelegateIcon fontSize="small" />
|
|
</IconButton>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<Button
|
|
variant="outlined"
|
|
size={size}
|
|
disabled={disabled}
|
|
onClick={handleOnDelegate}
|
|
sx={sx}
|
|
>
|
|
Delegate
|
|
</Button>
|
|
)
|
|
}
|