diff --git a/providers/RouterProvider.tsx b/providers/RouterProvider.tsx index fb7a9ee..8e6c718 100644 --- a/providers/RouterProvider.tsx +++ b/providers/RouterProvider.tsx @@ -7,7 +7,7 @@ import { useRef, useState, } from 'react'; -import type { PageType, StorageSchema } from '@/types/storage'; +import type { PageType, StorageSchema, ContextMenuPendingData } from '@/types/storage'; import { storageUtil } from '@/utils/chromeStorage'; import { getAllFeatureKeys, @@ -288,6 +288,14 @@ export function RouterProvider({ setPageOrder(newOrder); } } + // 监听右键菜单数据变化,自动跳转到对应页面(用于 popup 已打开的场景) + if (changes['contextMenu/pendingData']) { + const newData = changes['contextMenu/pendingData'] + .newValue as ContextMenuPendingData | null; + if (newData && isValidPage(newData.featureKey) && Date.now() - newData.timestamp < 5000) { + setCurrentPage(newData.featureKey as PageType); + } + } }; chrome.storage.onChanged.addListener(handleStorageChange);