new-api/web/src/pages/Chat/index.js

54 lines
1.4 KiB
JavaScript
Raw Normal View History

2025-04-04 12:00:38 +08:00
import React, { useEffect } from 'react';
import { useTokenKeys } from '../../hooks/useTokenKeys';
2025-04-04 12:00:38 +08:00
import { Banner, Layout } from '@douyinfe/semi-ui';
2024-10-12 21:06:49 +08:00
import { useParams } from 'react-router-dom';
2024-08-17 16:17:24 +00:00
const ChatPage = () => {
2024-10-12 21:06:49 +08:00
const { id } = useParams();
const { keys, serverAddress, isLoading } = useTokenKeys(id);
const comLink = (key) => {
2024-10-12 21:06:49 +08:00
// console.log('chatLink:', chatLink);
if (!serverAddress || !key) return '';
2025-04-04 12:00:38 +08:00
let link = '';
if (id) {
let chats = localStorage.getItem('chats');
if (chats) {
chats = JSON.parse(chats);
if (Array.isArray(chats) && chats.length > 0) {
for (let k in chats[id]) {
link = chats[id][k];
link = link.replaceAll(
'{address}',
encodeURIComponent(serverAddress),
);
link = link.replaceAll('{key}', 'sk-' + key);
2024-10-12 21:06:49 +08:00
}
2025-04-04 12:00:38 +08:00
}
2024-10-12 21:06:49 +08:00
}
2025-04-04 12:00:38 +08:00
}
return link;
};
const iframeSrc = keys.length > 0 ? comLink(keys[0]) : '';
return !isLoading && iframeSrc ? (
<iframe
src={iframeSrc}
style={{ width: '100%', height: '100%', border: 'none' }}
2025-04-04 12:00:38 +08:00
title='Token Frame'
allow='camera;microphone'
/>
) : (
<div>
2024-08-17 16:17:24 +00:00
<Layout>
<Layout.Header>
2025-04-04 12:00:38 +08:00
<Banner description={'正在跳转......'} type={'warning'} />
2024-08-17 16:17:24 +00:00
</Layout.Header>
</Layout>
</div>
);
};
2025-04-04 12:00:38 +08:00
export default ChatPage;