519c411db0
* feat: sync and update with all changes from fork * refactor: extract clipboard copy logic into custom hook * fix: correct spelling of DEFAULT_REFRESH_FREQUENCY_MS in Stamps and WalletBalance providers * refactor(ui-tests): replace fixed sleeps with condition-based waits * fix: handle null values for size and granteeCount in infoGroups * fix(lint): add newline at end of file in useClipboardCopy hook * fix(ui-tests): page.goto URL * refactor: update import paths for useClipboardCopy --------- Co-authored-by: Ferenc Sárai <sarai.ferenc@gmail.com>
37 lines
735 B
TypeScript
37 lines
735 B
TypeScript
import { ReactElement } from 'react'
|
|
import { makeStyles } from 'tss-react/mui'
|
|
|
|
interface Props {
|
|
children: string
|
|
prettify?: boolean
|
|
}
|
|
|
|
const useStyles = makeStyles()(theme => ({
|
|
wrapper: {
|
|
overflow: 'scroll',
|
|
background: '#ffffff',
|
|
},
|
|
pre: {
|
|
maxHeight: '6em',
|
|
padding: theme.spacing(2),
|
|
},
|
|
}))
|
|
|
|
function prettifyString(string: string): string {
|
|
try {
|
|
return JSON.stringify(JSON.parse(string), null, 4)
|
|
} catch {
|
|
return string
|
|
}
|
|
}
|
|
|
|
export function Code({ children, prettify }: Props): ReactElement {
|
|
const { classes } = useStyles()
|
|
|
|
return (
|
|
<div className={classes.wrapper}>
|
|
<pre className={classes.pre}>{prettify ? prettifyString(children) : children}</pre>
|
|
</div>
|
|
)
|
|
}
|