diff --git a/src/components/UserMenu.tsx b/src/components/UserMenu.tsx index c576caf..cea02c2 100644 --- a/src/components/UserMenu.tsx +++ b/src/components/UserMenu.tsx @@ -67,6 +67,7 @@ export const UserMenu: React.FC = () => { const [isEmailSettingsOpen, setIsEmailSettingsOpen] = useState(false); const [isDeviceManagementOpen, setIsDeviceManagementOpen] = useState(false); const [isEcoAppsOpen, setIsEcoAppsOpen] = useState(false); + const [isReportOpen, setIsReportOpen] = useState(false); const [authInfo, setAuthInfo] = useState(null); const [storageType, setStorageType] = useState('localstorage'); const [mounted, setMounted] = useState(false); @@ -80,7 +81,7 @@ export const UserMenu: React.FC = () => { // Body 滚动锁定 - 使用 overflow 方式避免布局问题 useEffect(() => { - if (isSettingsOpen || isChangePasswordOpen || isSubscribeOpen || isOfflineDownloadPanelOpen || isEmailSettingsOpen || isDeviceManagementOpen || isEcoAppsOpen) { + if (isSettingsOpen || isChangePasswordOpen || isSubscribeOpen || isOfflineDownloadPanelOpen || isEmailSettingsOpen || isDeviceManagementOpen || isEcoAppsOpen || isReportOpen) { const body = document.body; const html = document.documentElement; @@ -2988,6 +2989,78 @@ export const UserMenu: React.FC = () => { ); + // 举报信息弹窗 + const reportPanel = ( + <> + {/* 背景遮罩 */} +
setIsReportOpen(false)} + onTouchMove={(e) => { + e.preventDefault(); + }} + onWheel={(e) => { + e.preventDefault(); + }} + style={{ + touchAction: 'none', + }} + /> + + {/* 举报信息面板 */} +
+
{ + e.stopPropagation(); + }} + style={{ + touchAction: 'auto', + }} + > + {/* 标题栏 */} +
+

+ 耻辱柱 +

+ +
+ + {/* 内容区域 */} +
+
+

+ 抄袭狗SzeMeng76毫无廉耻,盯着本项目的commit区,疯狂抄袭。警告亦全当看不见,实为开源界耻辱。 +

+

+ 超分,观影室,豆瓣反爬,精确搜索等等等等,直接抄袭,最不要脸的就是,刚更新一版,几小时后直接抄走。 +

+
+
+ + {/* 底部按钮 */} +
+ +
+
+
+ + ); + // 生态应用面板内容 const ecoAppsPanel = ( <> @@ -3025,13 +3098,25 @@ export const UserMenu: React.FC = () => {

生态应用

- +
+ {/* 举报按钮 */} + + {/* 关闭按钮 */} + +
{/* 应用列表 */} @@ -3264,6 +3349,11 @@ export const UserMenu: React.FC = () => { mounted && createPortal(ecoAppsPanel, document.body)} + {/* 使用 Portal 将举报信息面板渲染到 document.body */} + {isReportOpen && + mounted && + createPortal(reportPanel, document.body)} + {/* 确认对话框 */} {confirmDialog.isOpen && mounted &&