mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-04 06:31:13 +00:00
fix: 移除调试模块中的encodeURIComponent
This commit is contained in:
parent
0f132a5972
commit
3ea2cc9ba7
@ -58,7 +58,7 @@ export default function ExtensionPage () {
|
|||||||
pluginName: page.pluginName,
|
pluginName: page.pluginName,
|
||||||
path: page.path,
|
path: page.path,
|
||||||
icon: page.icon,
|
icon: page.icon,
|
||||||
description: page.description
|
description: page.description,
|
||||||
}));
|
}));
|
||||||
}, [extensionPages]);
|
}, [extensionPages]);
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ export default function ExtensionPage () {
|
|||||||
const path = pathParts.join(':').replace(/^\//, '');
|
const path = pathParts.join(':').replace(/^\//, '');
|
||||||
// 获取认证 token
|
// 获取认证 token
|
||||||
const token = localStorage.getItem('token') || '';
|
const token = localStorage.getItem('token') || '';
|
||||||
return `/api/Plugin/page/${pluginId}/${path}?webui_token=${encodeURIComponent(token)}`;
|
return `/api/Plugin/page/${pluginId}/${path}?webui_token=${token}`;
|
||||||
}, [selectedTab]);
|
}, [selectedTab]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -89,73 +89,75 @@ export default function ExtensionPage () {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<title>扩展页面 - NapCat WebUI</title>
|
<title>扩展页面 - NapCat WebUI</title>
|
||||||
<div className="p-2 md:p-4 relative h-full flex flex-col">
|
<div className='p-2 md:p-4 relative h-full flex flex-col'>
|
||||||
<PageLoading loading={loading} />
|
<PageLoading loading={loading} />
|
||||||
|
|
||||||
<div className="flex mb-4 items-center gap-4">
|
<div className='flex mb-4 items-center gap-4'>
|
||||||
<div className="flex items-center gap-2 text-default-600">
|
<div className='flex items-center gap-2 text-default-600'>
|
||||||
<MdExtension size={24} />
|
<MdExtension size={24} />
|
||||||
<span className="text-lg font-medium">插件扩展页面</span>
|
<span className='text-lg font-medium'>插件扩展页面</span>
|
||||||
</div>
|
</div>
|
||||||
<Button
|
<Button
|
||||||
isIconOnly
|
isIconOnly
|
||||||
className="bg-default-100/50 hover:bg-default-200/50 text-default-700 backdrop-blur-md"
|
className='bg-default-100/50 hover:bg-default-200/50 text-default-700 backdrop-blur-md'
|
||||||
radius="full"
|
radius='full'
|
||||||
onPress={refresh}
|
onPress={refresh}
|
||||||
>
|
>
|
||||||
<IoMdRefresh size={24} />
|
<IoMdRefresh size={24} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{extensionPages.length === 0 && !loading ? (
|
{extensionPages.length === 0 && !loading
|
||||||
<div className="flex-1 flex flex-col items-center justify-center text-default-400">
|
? (
|
||||||
<MdExtension size={64} className="mb-4 opacity-50" />
|
<div className='flex-1 flex flex-col items-center justify-center text-default-400'>
|
||||||
<p className="text-lg">暂无插件扩展页面</p>
|
<MdExtension size={64} className='mb-4 opacity-50' />
|
||||||
<p className="text-sm mt-2">插件可以通过注册页面来扩展 WebUI 功能</p>
|
<p className='text-lg'>暂无插件扩展页面</p>
|
||||||
</div>
|
<p className='text-sm mt-2'>插件可以通过注册页面来扩展 WebUI 功能</p>
|
||||||
) : (
|
</div>
|
||||||
<div className="flex-1 flex flex-col min-h-0">
|
)
|
||||||
<Tabs
|
: (
|
||||||
aria-label="Extension Pages"
|
<div className='flex-1 flex flex-col min-h-0'>
|
||||||
className="max-w-full"
|
<Tabs
|
||||||
selectedKey={selectedTab}
|
aria-label='Extension Pages'
|
||||||
onSelectionChange={(key) => setSelectedTab(key as string)}
|
className='max-w-full'
|
||||||
classNames={{
|
selectedKey={selectedTab}
|
||||||
tabList: 'bg-white/40 dark:bg-black/20 backdrop-blur-md flex-wrap',
|
onSelectionChange={(key) => setSelectedTab(key as string)}
|
||||||
cursor: 'bg-white/80 dark:bg-white/10 backdrop-blur-md shadow-sm',
|
classNames={{
|
||||||
panel: 'flex-1 min-h-0 p-0'
|
tabList: 'bg-white/40 dark:bg-black/20 backdrop-blur-md flex-wrap',
|
||||||
}}
|
cursor: 'bg-white/80 dark:bg-white/10 backdrop-blur-md shadow-sm',
|
||||||
>
|
panel: 'flex-1 min-h-0 p-0',
|
||||||
{tabs.map((tab) => (
|
}}
|
||||||
<Tab
|
>
|
||||||
key={tab.key}
|
{tabs.map((tab) => (
|
||||||
title={
|
<Tab
|
||||||
<div className="flex items-center gap-2">
|
key={tab.key}
|
||||||
{tab.icon && <span>{tab.icon}</span>}
|
title={
|
||||||
<span>{tab.title}</span>
|
<div className='flex items-center gap-2'>
|
||||||
<span className="text-xs text-default-400">({tab.pluginName})</span>
|
{tab.icon && <span>{tab.icon}</span>}
|
||||||
</div>
|
<span>{tab.title}</span>
|
||||||
}
|
<span className='text-xs text-default-400'>({tab.pluginName})</span>
|
||||||
>
|
|
||||||
<div className="relative w-full h-[calc(100vh-220px)] bg-white/40 dark:bg-black/20 backdrop-blur-md rounded-lg overflow-hidden">
|
|
||||||
{iframeLoading && (
|
|
||||||
<div className="absolute inset-0 flex items-center justify-center bg-default-100/50 z-10">
|
|
||||||
<Spinner size="lg" />
|
|
||||||
</div>
|
</div>
|
||||||
)}
|
}
|
||||||
<iframe
|
>
|
||||||
src={currentPageUrl}
|
<div className='relative w-full h-[calc(100vh-220px)] bg-white/40 dark:bg-black/20 backdrop-blur-md rounded-lg overflow-hidden'>
|
||||||
className="w-full h-full border-0"
|
{iframeLoading && (
|
||||||
onLoad={handleIframeLoad}
|
<div className='absolute inset-0 flex items-center justify-center bg-default-100/50 z-10'>
|
||||||
title={tab.title}
|
<Spinner size='lg' />
|
||||||
sandbox="allow-scripts allow-same-origin allow-forms allow-popups"
|
</div>
|
||||||
/>
|
)}
|
||||||
</div>
|
<iframe
|
||||||
</Tab>
|
src={currentPageUrl}
|
||||||
))}
|
className='w-full h-full border-0'
|
||||||
</Tabs>
|
onLoad={handleIframeLoad}
|
||||||
</div>
|
title={tab.title}
|
||||||
)}
|
sandbox='allow-scripts allow-same-origin allow-forms allow-popups'
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</Tab>
|
||||||
|
))}
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user