|
|
|
@ -7,7 +7,7 @@ import './styles/dropdown-panel.css' |
|
|
|
|
|
|
|
|
|
export const DropdownPanel = (props: DropdownPanelProps) => { |
|
|
|
|
const [calldataObj, dispatch] = useReducer(reducer, initialState) |
|
|
|
|
const { dropdownName, dropdownMessage, calldata, header, loading, extractFunc, formatSelfFunc, registerEvent, triggerEvent, loadMoreEvent, loadMoreCompletedEvent, headStyle, bodyStyle } = props |
|
|
|
|
const { dropdownName, dropdownMessage, calldata, header, loading, extractFunc, formatSelfFunc, registerEvent, triggerEvent, loadMoreEvent, loadMoreCompletedEvent, headStyle, bodyStyle, hexHighlight } = props |
|
|
|
|
const extractDataDefault: ExtractFunc = (item, parent?) => { |
|
|
|
|
const ret: ExtractData = {} |
|
|
|
|
|
|
|
|
@ -35,14 +35,16 @@ export const DropdownPanel = (props: DropdownPanelProps) => { |
|
|
|
|
} |
|
|
|
|
const formatSelfDefault = (key: string | number, data: ExtractData) => { |
|
|
|
|
let value
|
|
|
|
|
if (typeof(data.self) === 'string') { |
|
|
|
|
if (hexHighlight && typeof(data.self) === 'string') { |
|
|
|
|
const isHex = data.self.startsWith('0x') || hexHighlight |
|
|
|
|
if (isHex) { |
|
|
|
|
let regex = /^(0+)(.*)/g |
|
|
|
|
let split = regex.exec(data.self.replace('0x', ''))
|
|
|
|
|
if (split && split[1] && split[2]) { |
|
|
|
|
split[1] = data.self.indexOf('0x') === 0 ? '0x' + split[1] : split[1] |
|
|
|
|
value = (<span><span className="m-0 label_value">{split[1]}</span><span className="m-0 label_value font-weight-bold text-dark">{split[2]}</span></span>) |
|
|
|
|
} |
|
|
|
|
} else value = data.self |
|
|
|
|
if (split && split[1]) { |
|
|
|
|
value = (<span><span className="m-0 label_value">0x</span><span className="m-0 label_value">{split[1]}</span>{ split[2] && <span className="m-0 label_value font-weight-bold text-dark">{split[2]}</span> }</span>) |
|
|
|
|
} else value = (<span><span className="m-0 label_value">0x</span><span className="m-0 label_value font-weight-bold text-dark">{data.self.replace('0x', '')}</span></span>)
|
|
|
|
|
} else value = <span className="m-0 label_value">{data.self}</span> |
|
|
|
|
} else value = <span className="m-0 label_value">{data.self}</span> |
|
|
|
|
return ( |
|
|
|
|
<div className="d-flex mr-1 flex-row label_item"> |
|
|
|
|
<label className="small font-weight-bold mb-0 pr-1 label_key">{key}:</label> |
|
|
|
|