「MediaWiki:MobileUI.js」の版間の差分

編集の要約なし
編集の要約なし
タグ: モバイル編集 モバイルウェブ編集
編集の要約なし
タグ: モバイル編集 モバイルウェブ編集
251行目: 251行目:
     }
     }


    /**
    * @returns {this}
    */
     setNotArticleClass() {
     setNotArticleClass() {
         if (this.wgIsArticle && !this.wgIsMainPage) return;
         if (this.wgIsArticle && !this.wgIsMainPage) return this;


         MobileUIBuilder
         MobileUIBuilder
258行目: 261行目:
             .classList
             .classList
             .add("mobile-ui-not-article");
             .add("mobile-ui-not-article");
        return this;
     }
     }


    /**
    * @returns {this}
    */
     assembleRightMenuButton() {
     assembleRightMenuButton() {
         if (!this.wgUserId) return;
         if (!this.wgUserId) return this;
         if (!MobileUIBuilder.authenticatedBody) return;
         if (!MobileUIBuilder.authenticatedBody) return this;
         if (MobileUIBuilder.rightMenuButtonElement) return;
         if (MobileUIBuilder.rightMenuButtonElement) return this;


         const userButton = MobileUIBuilder.userButton;
         const userButton = MobileUIBuilder.userButton;
277行目: 285行目:
             "mobile-ui-icon-puzzle",
             "mobile-ui-icon-puzzle",
         );
         );
         button.addEventListener("click", function (event) {
         button.addEventListener("click", function (event) {
             event.preventDefault();
             event.preventDefault();
294行目: 303行目:
         buttonWrapper.append(button);
         buttonWrapper.append(button);
         MobileUIBuilder.headerElement.append(buttonWrapper);
         MobileUIBuilder.headerElement.append(buttonWrapper);
        return this;
     }
     }


    /**
    * @returns {this}
    */
     prebuild() {
     prebuild() {
         this.setNotArticleClass();
         return this
        this.assembleRightMenuButton();
            .setNotArticleClass()
            .assembleRightMenuButton();
     }
     }


     /**
     /**
     * @param {MobileUI} mobileUI
     * @param {MobileUI} mobileUI
    * @returns {this}
     */
     */
     modify(mobileUI) {
     modify(mobileUI) {
         const leftMenu = MobileUIBuilder.menuElement;
         const leftMenu = MobileUIBuilder.menuElement;
         if (leftMenu.classList.contains(MobileUIBuilder.leftMenuClass)) return;
         if (leftMenu.classList.contains(MobileUIBuilder.leftMenuClass)) return this;


         MobileUIBuilder.setRightMenuVisible(false);
         MobileUIBuilder.setRightMenuVisible(false);
333行目: 349行目:


         leftMenu.classList.add(MobileUIBuilder.leftMenuClass);
         leftMenu.classList.add(MobileUIBuilder.leftMenuClass);
        return this;
     }
     }


     /**
     /**
     * @param {MobileUI} mobileUI
     * @param {MobileUI} mobileUI
    * @returns {this}
     */
     */
     build(mobileUI) {
     build(mobileUI) {
         if (MobileUIBuilder.menuElement) {
         if (MobileUIBuilder.menuElement) {
             this.modify(mobileUI);
             this.modify(mobileUI);
             return;
             return this;
         }
         }


358行目: 377行目:


         observer.observe(MobileUIBuilder.menuContainerElement, { childList: true });
         observer.observe(MobileUIBuilder.menuContainerElement, { childList: true });
        return this;
     }
     }
}
}