import { DOMUtils, log, utils } from "@/env"; import { UISwitch } from "@components/setting/components/ui-switch"; import i18next from "i18next"; import type { PopsPanelContentConfig } from "@whitesev/pops/dist/types/src/components/panel/types/index.js"; import { GreasyforkDiscussionsFilter } from "@/main/navigator/discussions/GreasyforkDiscussionsFilter"; import { Panel } from "@components/setting/panel"; import { UIOwn } from "@components/setting/components/ui-own"; export const SettingUIDiscuessions: PopsPanelContentConfig = { id: "greasy-fork-panel-config-discussions", title: i18next.t("论坛"), views: [ { text: "", type: "container", views: [ { text: i18next.t("功能"), type: "deepMenu", views: [ { text: "", type: "container", views: [ UIOwn( ($li) => { const key = "discussions-readBgColor"; const $left = DOMUtils.createElement("div", { className: "pops-panel-item-left-text", innerHTML: `

${i18next.t("自定义已读颜色")}

${i18next.t("在讨论内生效")}

`, }); const $right = DOMUtils.createElement("div", { className: "pops-panel-item-right", innerHTML: ` `, }); const $color = $right.querySelector(".pops-color-choose")!; $color.value = Panel.getValue(key); const $style = DOMUtils.createElement("style"); DOMUtils.append(document.head, $style); DOMUtils.on($color, ["input", "propertychange"], (event) => { log.info("选择颜色:" + $color.value); $style.innerHTML = ` .discussion-read{ background: ${$color.value} !important; } `; Panel.setValue(key, $color.value); }); $li.appendChild($left); $li.appendChild($right); return $li; }, { "discussions-readBgColor": "#e5e5e5", }, { text: i18next.t("自定义已读颜色"), desc: i18next.t("在讨论内生效"), } ), UISwitch( i18next.t("添加【过滤】按钮"), "discussions-addShortcutOperationButton", true, void 0, i18next.t("在每一行讨论的最后面添加【过滤】按钮,需开启过滤功能才会生效") ), UISwitch( i18next.t("添加【举报】按钮"), "discussions-addReportButton", true, void 0, i18next.t("在每一行讨论的最后面添加【举报】按钮") ), ], }, ], }, { text: i18next.t("过滤"), type: "deepMenu", views: [ { text: `${i18next.t( "帮助文档" )}`, type: "container", views: [ UISwitch( i18next.t("启用"), "greasyfork-discussions-filter-enable", true, void 0, i18next.t("开启后下面的过滤功能才会生效") ), UISwitch( i18next.t("过滤重复的评论"), "greasyfork-discussions-filter-duplicate-comments", true, void 0, i18next.t("过滤掉重复的评论数量(≥2)") ), UIOwn(($li) => { const $textareaWrapper = DOMUtils.createElement( "div", { className: "pops-panel-textarea", innerHTML: /*html*/ ``, }, { style: "width: 100%;", } ); const $textarea = $textareaWrapper.querySelector("textarea")!; $textarea.value = GreasyforkDiscussionsFilter.getValue(); DOMUtils.on( $textarea, ["input", "propertychange"], void 0, utils.debounce(function (event) { GreasyforkDiscussionsFilter.setValue($textarea.value); }, 200) ); $li.appendChild($textareaWrapper); return $li; }), ], }, ], }, ], }, ], };