Ver Fonte

group select

nieyuge há 2 anos atrás
pai
commit
f77917e30d
2 ficheiros alterados com 22 adições e 3 exclusões
  1. 21 2
      src/logic/content/nft.js
  2. 1 1
      src/logic/content/twitter.js

+ 21 - 2
src/logic/content/nft.js

@@ -6,6 +6,8 @@ import { jumpTwitterDetailByAlert } from '@/logic/content/help/twitter.js'
 
 var ifShowNftGroup = false;
 var tempNftGroupPost = null;
+var groupImgNoSelect = require("@/assets/img/icon-nft-group-entry.png");
+var groupImgSelect = require("@/assets/img/icon-nft-group-select.png");
 
 export const showNFTGroupIcon = () => {
     let urlInfo = new URL(window.location.href)
@@ -17,7 +19,7 @@ export const showNFTGroupIcon = () => {
         let oDiv = document.createElement(`div`);
             oDiv.id = 'de-nft-group-enter';
         let oImg = document.createElement('img');
-            oImg.src = require("@/assets/img/icon-nft-group-entry.png");
+            oImg.src = groupImgNoSelect;
             oImg.className = 'addGroup';
             oDiv.innerHTML = `
                 ${oImg.outerHTML}
@@ -112,6 +114,7 @@ export const setPostContent = (res) => {
         if (inputEle) {
             inputEle.focus();
         }
+        setGroupIconStatus();
     }, 100).then(() => {
         _setPublishContent(res.srcContent + ' ');
     })
@@ -168,6 +171,7 @@ export const setNFTGroupContent = (res) => {
 
 export const elemAddEventListener = (elem, action, fn) => {
     if (elem) {
+        elem.removeEventListener(action, fn)
         elem.addEventListener(action, fn)
     }
 }
@@ -210,7 +214,22 @@ export const setJoinedGroupIframeStyle = (params) => {
     }
 }
 
-
+export function setGroupIconStatus() {
+    let editElem = document.querySelector('div[contenteditable="true"]');
+    let main_observer = new MutationObserver(() => {
+        let groupImg = document.querySelector('#de-nft-group-enter');
+        let innerText = editElem.innerText || '';
+        if (groupImg && innerText) {
+            let where = innerText.indexOf('#DNFT') !== -1 && innerText.indexOf('nft_group') !== -1;
+            if (where) {
+                groupImg.querySelector('.addGroup').src = groupImgSelect;
+            } else {
+                groupImg.querySelector('.addGroup').src = groupImgNoSelect;
+            }
+        }
+    });
+    main_observer.observe(editElem, { attributes: false, childList: true, subtree: true })
+}
 function _addTweetButtonListen() {
     let btn = document.querySelector('div[data-testid="tweetButton"]');
 

+ 1 - 1
src/logic/content/twitter.js

@@ -7,7 +7,7 @@ import { fetchAddFinishEvent } from '@/logic/background/fetch/facebook';
 import { showNFTGroupIcon, hideNFTGroupList, checkUserJoinGroup, elemAddEventListener, addJoinedGroupList } from '@/logic/content/nft';
 import { getTwitterNftGroupInfo } from '@/http/nft'
 import { jumpTwitterDetailByAlert, showEditTweet } from '@/logic/content/help/twitter.js'
-import { clearPostContent } from '@/logic/content/nft.js'
+import { clearPostContent, setGroupIconStatus } from '@/logic/content/nft.js'
 import axios from 'axios';
 
 let dom = {};