mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
* display methods accordion * add method_id to methods * query read method via public client * query read methods without inputs at accordion section open * add custom abi tabs * add proxy tabs * custom wagmi config if wc is not configured * remove ContractAbiItemConstant component * display tuple properties in method outputs * display read result * clean up * support nested arrays in the read result * re-write test for contract methods * change result view for address output * refactoring * fix tests * remove web3 provider fallback * fix tab loading * refactoring * add implementation contract selector * add "copy to clipboard" for address, remove top-level square brackets * add preview mode to contract method result * tests for read result * fix tests * change styles for result preview * review fix
27 lines
722 B
TypeScript
27 lines
722 B
TypeScript
import React from 'react';
|
|
import { scroller } from 'react-scroll';
|
|
|
|
import type { SmartContractMethod } from './types';
|
|
|
|
export const getElementName = (id: string) => `method_${ id }`;
|
|
|
|
export default function useScrollToMethod(data: Array<SmartContractMethod>, onScroll: (indices: Array<number>) => void) {
|
|
React.useEffect(() => {
|
|
const id = window.location.hash.replace('#', '');
|
|
|
|
if (!id) {
|
|
return;
|
|
}
|
|
|
|
const index = data.findIndex((item) => 'method_id' in item && item.method_id === id);
|
|
if (index > -1) {
|
|
scroller.scrollTo(getElementName(id), {
|
|
duration: 500,
|
|
smooth: true,
|
|
offset: -100,
|
|
});
|
|
onScroll([ index ]);
|
|
}
|
|
}, [ data, onScroll ]);
|
|
}
|