Files
nym/explorer-nextjs/app/components/Delegations/DelegateIconButton.tsx
T
Fouad e5f41731ae Explorer NextJS Rebuild (#4534)
* 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>
2024-05-16 16:12:06 +01:00

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>
)
}