From cda4ed2cb19528fc847aabd8a810774ed94adca7 Mon Sep 17 00:00:00 2001 From: dennisloh95 Date: Wed, 26 Jul 2023 17:18:19 +0800 Subject: [PATCH] feat: fix contract button bind multiple times, add contract tabs listen param --- .../assets/js/lib/smart_contract/functions.js | 4 +-- .../block_scout_web/assets/js/pages/layout.js | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/apps/block_scout_web/assets/js/lib/smart_contract/functions.js b/apps/block_scout_web/assets/js/lib/smart_contract/functions.js index 2a4e97934d69..714fe293b5aa 100644 --- a/apps/block_scout_web/assets/js/lib/smart_contract/functions.js +++ b/apps/block_scout_web/assets/js/lib/smart_contract/functions.js @@ -62,7 +62,7 @@ const loadFunctions = (element, isCustomABI, from) => { readWriteFunction(element) }) - $('.contract-exponentiation-btn').on('click', (event) => { + $('.contract-exponentiation-btn', $element).on('click', (event) => { const $customPower = $(event.currentTarget).find('[name=custom_power]') let power if ($customPower.length > 0) { @@ -86,7 +86,7 @@ const loadFunctions = (element, isCustomABI, from) => { } }) - $('[name=custom_power]').on('click', (event) => { + $('[name=custom_power]', $element).on('click', (event) => { $(event.currentTarget).parent().parent().toggleClass('show') }) }) diff --git a/apps/block_scout_web/assets/js/pages/layout.js b/apps/block_scout_web/assets/js/pages/layout.js index 2f2be353a47b..8f43e498afe4 100644 --- a/apps/block_scout_web/assets/js/pages/layout.js +++ b/apps/block_scout_web/assets/js/pages/layout.js @@ -30,6 +30,37 @@ if (analytics.mixpanelInitialized || analytics.amplitudeInitialized) { } } +const getParam = (key) => { + if (!key) return false + const url = window.location + const params = new URLSearchParams(url.search) + if (params.has(key)) { + return params.get(key) + } + return false +} + +const addParam = (key, val) => { + if (!key || !val) return + const currUrl = new URL(location) + currUrl.searchParams.set(key, val) + history.pushState({}, '', currUrl) +} + +$('#addressContractTab button.nav-link').on('click', (e) => { + const target = $(e.currentTarget).data('target') + const applyParam = target.slice(1, target.length) + console.log({ target, applyParam }) + addParam('contract-tab', applyParam) +}) + +if ($('#addressContractTab').length && getParam('contract-tab')) { + const currTabs = getParam('contract-tab') + if ($(`#${currTabs}`).length) { + $(`button[data-target='#${currTabs}']`).trigger('click') + } +} + const handleWindowOnScroll = (e) => { if (e.currentTarget.scrollY > 100) { $('.scroll-top-btn').fadeIn()