zhangwei 2 лет назад
Родитель
Сommit
c2f59b42dd
2 измененных файлов с 85 добавлено и 70 удалено
  1. 78 64
      src/logic/content/twitter.js
  2. 7 6
      src/view/iframe/nft/group-card.vue

+ 78 - 64
src/logic/content/twitter.js

@@ -700,7 +700,7 @@ function setIframeRedPacket(type = 'twitter') {
                         parseCard.replaceNftDomRedPacket(item)
                     } else if (item && item.post_Id && item.post_Id.indexOf('nft_group/') >= 0) {
                         parseCard.replaceNftGroupDomRedPacket(item)
-                    }  else {
+                    } else {
                         parseCard.replaceDOMRedPacket(item)
                     }
                 }
@@ -1379,7 +1379,7 @@ const addGroupTip = (twitterAccount) => {
         iframe.src = chrome.runtime.getURL(`/iframe/group-card.html?twitterAccount=${twitterAccount}`)
 
         if (dom) {
-            dom.parentNode.insertBefore(iframe, dom)
+            dom.parentNode.children[0].appendChild(iframe)
         }
 
     } catch (error) {
@@ -1520,8 +1520,8 @@ export const showPopupPage = (params = {}) => {
         }
         iframe.style.transform = 'translateX(-' + 395 + 'px)';
 
-        chrome.runtime.sendMessage({ 
-            actionType: "CONTENT_POPUP_PAGE_SHOW", 
+        chrome.runtime.sendMessage({
+            actionType: "CONTENT_POPUP_PAGE_SHOW",
             data: {
                 path,
                 showJoinGroupFinish,
@@ -1659,7 +1659,7 @@ const addGroupTab = () => {
     divNode.appendChild(groupIcon);
     divNode.appendChild(document.createTextNode('Group'));
 
-    if(tabListDom && !groupItemTab) {
+    if (tabListDom && !groupItemTab) {
         let lineDom = document.createElement('div');
         lineDom.id = 'de-tab-line';
         lineDom.style.cssText = `border-radius: 9999px;
@@ -1693,16 +1693,16 @@ const addGroupTab = () => {
         groupTab.appendChild(lineDom);
         tabListDom.appendChild(groupTab);
 
-        groupTab.addEventListener('mouseenter', function() {
+        groupTab.addEventListener('mouseenter', function () {
             groupTab.style.background = 'rgba(15, 20, 25, 0.1)'
         });
-        groupTab.addEventListener('mouseleave', function() {
+        groupTab.addEventListener('mouseleave', function () {
             groupTab.style.background = 'none'
         });
 
-        addGroupTabEventListener({groupTab});
+        addGroupTabEventListener({ groupTab });
     }
-    
+
     addTweetTabEventListener({
         tabListDom
     });
@@ -1715,7 +1715,7 @@ const addGroupTab = () => {
  * 跳转到个人主页 检查是否需要选中 Group tab
  */
 const checkNeedSelectGroupTab = () => {
-    if(window.location.pathname != '/home') {
+    if (window.location.pathname != '/home') {
         setTimeout(() => {
             const urlParams = new URLSearchParams(window.location.search);
             const deTabVal = urlParams.get('deTabVal');
@@ -1729,7 +1729,7 @@ const checkNeedSelectGroupTab = () => {
 /** 选中 Group tab */
 const selectGroupTab = () => {
     let groupTab = document.querySelector('#de-nav-tab-group');
-    if(groupTab) {
+    if (groupTab) {
         groupTab.click();
     }
 };
@@ -1739,23 +1739,27 @@ const selectGroupTab = () => {
  * Group tab点击事件监听
  */
 const addGroupTabEventListener = (params) => {
-    let {groupTab} = params;
-    groupTab.addEventListener('click', function() {
-        setGroupTabSelfStyle({groupColor: 'rgb(15, 20, 25)', 
-            groupFontWeight: '700', 
-            lineDisplay: 'block'});
-        
+    let { groupTab } = params;
+    groupTab.addEventListener('click', function () {
+        setGroupTabSelfStyle({
+            groupColor: 'rgb(15, 20, 25)',
+            groupFontWeight: '700',
+            lineDisplay: 'block'
+        });
+
         setTweetActiveTabStyle({
-            color: 'rgb(83, 100, 113)', 
-            display: 'none'});
+            color: 'rgb(83, 100, 113)',
+            display: 'none'
+        });
 
         setTabContentStyle({
-            tweetTabContentDisply: 'none', 
-            iframeContentDisplay: 'block'});
+            tweetTabContentDisply: 'none',
+            iframeContentDisplay: 'block'
+        });
 
         refreshTabGroup();
 
-        window.addEventListener('scroll', addPageScrollEvent) 
+        window.addEventListener('scroll', addPageScrollEvent)
     })
 }
 
@@ -1768,8 +1772,10 @@ const addPageScrollEvent = () => {
         contentHeight: contentDom.offsetHeight
     }
 
-    chrome.runtime.sendMessage({ actionType: "CONTENT_GROUP_LIST_SCROLL", 
-        data: data}, () => {});
+    chrome.runtime.sendMessage({
+        actionType: "CONTENT_GROUP_LIST_SCROLL",
+        data: data
+    }, () => { });
 };
 
 /**
@@ -1777,29 +1783,33 @@ const addPageScrollEvent = () => {
  * twitter tab点击事件监听
  */
 const addTweetTabEventListener = (params) => {
-    let {tabListDom} = params;
-    let  groupItemTab = document.querySelector('#de-nav-tab-group');
+    let { tabListDom } = params;
+    let groupItemTab = document.querySelector('#de-nav-tab-group');
 
-    if(tabListDom && groupItemTab) {
+    if (tabListDom && groupItemTab) {
         // 监听twitter tab点击事件
         let tweetTabItem = tabListDom.querySelectorAll('div[role="presentation"]');
-        if(tweetTabItem.length) {
-            for(let i = 0; i < tweetTabItem.length; i++) {
+        if (tweetTabItem.length) {
+            for (let i = 0; i < tweetTabItem.length; i++) {
                 let item = tweetTabItem[i];
-                item.addEventListener('click', function() {
+                item.addEventListener('click', function () {
                     window.removeEventListener('scroll', addPageScrollEvent);
 
-                    setGroupTabSelfStyle({groupColor: 'rgb(83, 100, 113)', 
-                        groupFontWeight: '500', 
-                        lineDisplay: 'none'});
+                    setGroupTabSelfStyle({
+                        groupColor: 'rgb(83, 100, 113)',
+                        groupFontWeight: '500',
+                        lineDisplay: 'none'
+                    });
 
                     setTabContentStyle({
-                        tweetTabContentDisply: 'block', 
-                        iframeContentDisplay: 'none'});
+                        tweetTabContentDisply: 'block',
+                        iframeContentDisplay: 'none'
+                    });
 
                     setTweetActiveTabStyle({
-                        color: 'rgb(15, 20, 25)', 
-                        display: 'block'});
+                        color: 'rgb(15, 20, 25)',
+                        display: 'block'
+                    });
                 })
             }
         }
@@ -1810,13 +1820,13 @@ const addTweetTabEventListener = (params) => {
  * 设置 Group Tab 样式
  */
 const setGroupTabSelfStyle = (params = {}) => {
-    let {groupColor, groupFontWeight, lineDisplay} = params;
-    let  groupTab = document.querySelector('#de-nav-tab-group');
+    let { groupColor, groupFontWeight, lineDisplay } = params;
+    let groupTab = document.querySelector('#de-nav-tab-group');
     groupTab.style.color = groupColor;
     groupTab.style.fontWeight = groupFontWeight;
 
     let lineDom = groupTab.querySelector('#de-tab-line');
-    if(lineDom) {
+    if (lineDom) {
         lineDom.style.display = lineDisplay;
     }
 };
@@ -1825,8 +1835,10 @@ const setGroupTabSelfStyle = (params = {}) => {
  * 切换到 Group tab时 刷新列表
  */
 const refreshTabGroup = () => {
-    chrome.runtime.sendMessage({ actionType: "CONTENT_REFRESH_TAB_GROUP_LIST", 
-        data:{}}, () => { });
+    chrome.runtime.sendMessage({
+        actionType: "CONTENT_REFRESH_TAB_GROUP_LIST",
+        data: {}
+    }, () => { });
 }
 
 /**
@@ -1834,12 +1846,12 @@ const refreshTabGroup = () => {
  * tab选中时设置 激活 的字体样式和选中条
  */
 const setTweetActiveTabStyle = (params) => {
-    let {color, display} = params || {};
+    let { color, display } = params || {};
     let tweetActiveTab = document.querySelector('a[aria-selected="true"]').querySelector('div');
     tweetActiveTab.style.color = color;
-    
+
     let tweetTabLine = tweetActiveTab.querySelector('div');
-    if(tweetTabLine) {
+    if (tweetTabLine) {
         tweetTabLine.style.display = display;
     }
 }
@@ -1849,14 +1861,14 @@ const setTweetActiveTabStyle = (params) => {
  * 设置 tab 切换时 tab内容的样式(显示隐藏)
  */
 const setTabContentStyle = (params) => {
-    let {tweetTabContentDisply, iframeContentDisplay} = params;
+    let { tweetTabContentDisply, iframeContentDisplay } = params;
     let tweetTabContent = getTweetTabContent();
-    if(tweetTabContent) {
-        if(tweetTabContentDisply == 'block') {
-            let {display} = tweetTabContent.style;
-            if(display == 'none') {
+    if (tweetTabContent) {
+        if (tweetTabContentDisply == 'block') {
+            let { display } = tweetTabContent.style;
+            if (display == 'none') {
                 tweetTabContent.style.display = 'block';
-            } 
+            }
         } else {
             tweetTabContent.style.display = tweetTabContentDisply;
         }
@@ -1864,12 +1876,12 @@ const setTabContentStyle = (params) => {
 
     let iframeContent = document.getElementById('de-tab-group-content');
 
-    if(!iframeContent) {
+    if (!iframeContent) {
         addTabGroupContent();
     }
     setTimeout(() => {
         iframeContent = document.getElementById('de-tab-group-content');
-        if(iframeContent) {
+        if (iframeContent) {
             iframeContent.style.display = iframeContentDisplay;
         }
     })
@@ -1892,15 +1904,15 @@ const addTabGroupContent = () => {
         windowLocation: window.location
     }
     let iframe = document.createElement('iframe');
-        iframe.id = 'de-tab-group-content';
-        iframe.src = chrome.runtime.getURL('/iframe/tab-group.html') + `?params=${JSON.stringify(params)}`;
-        iframe.style.cssText = `border: medium none; height: 500px;display: none`
+    iframe.id = 'de-tab-group-content';
+    iframe.src = chrome.runtime.getURL('/iframe/tab-group.html') + `?params=${JSON.stringify(params)}`;
+    iframe.style.cssText = `border: medium none; height: 500px;display: none`
 
     let iframeContent = document.getElementById('de-tab-group-content');
 
     let tweetTabContent = getTweetTabContent();
     if (!iframeContent) {
-        if(tweetTabContent && tweetTabContent.parentElement) {
+        if (tweetTabContent && tweetTabContent.parentElement) {
             tweetTabContent.parentElement.appendChild(iframe);
         }
     }
@@ -1912,22 +1924,24 @@ const addTabGroupContent = () => {
  */
 export const setTabGroupIframeStyle = (params) => {
     let iframeContent = document.getElementById('de-tab-group-content');
-    iframeContent.style.height =  document.querySelector('html').offsetHeight + 'px';
+    iframeContent.style.height = document.querySelector('html').offsetHeight + 'px';
 }
 
 export const pageJumpHandler = (params) => {
-    let {url, name = '_self'} = params
+    let { url, name = '_self' } = params
     window.open(url, name)
 }
 
 export const getTweetProfileNavTop = (params) => {
     let top = document.querySelector('div[role="tablist"]').closest('nav').getBoundingClientRect().top;
 
-    chrome.runtime.sendMessage({ actionType: "CONTENT_SEND_GROUP_NAV_TOP", data: {
-        top,
-        scrollTop: params.scrollTop
-    } }, () => { })
-} 
+    chrome.runtime.sendMessage({
+        actionType: "CONTENT_SEND_GROUP_NAV_TOP", data: {
+            top,
+            scrollTop: params.scrollTop
+        }
+    }, () => { })
+}
 
 /** 
  * 

+ 7 - 6
src/view/iframe/nft/group-card.vue

@@ -29,7 +29,7 @@
 </template>
 
 <script setup>
-import { onBeforeMount,onMounted, ref } from 'vue';
+import { onBeforeMount, onMounted, ref } from 'vue';
 import { getPostDetail } from '@/http/redPacket';
 import { getQueryString } from '@/uilts/help.js'
 import { srcPublishSuccess } from '@/http/publishApi'
@@ -45,7 +45,7 @@ const jumpUserPage = () => {
 // 重新绑定
 const reSetBindTwtterId = (_params = {}) => {
     getChromeStorage('userInfo', (_userInfo = {}) => {
-        if (_userInfo  && _userInfo.uid == _params.uid) {
+        if (_userInfo && _userInfo.uid == _params.uid) {
             srcPublishSuccess({
                 params: {
                     postId: postId,
@@ -69,11 +69,12 @@ onMounted(() => {
         let { data } = res
         if (data !== null) {
             detail.value = JSON.parse(data.postBizData)
+            if (!data.srcContentId) {
+                reSetBindTwtterId(data)
+                return
+            }
         }
-        if (!data.srcContentId) {
-            reSetBindTwtterId(data)
-            return
-        }
+
     })
 })
 </script>