代码优化

main
jiangxucong 5 months ago
parent bf3c05975e
commit 0c72a94fed

@ -2,12 +2,11 @@
import { memo } from 'react'; import { memo } from 'react';
import { Flexbox, FlexboxProps } from 'react-layout-kit'; import { Flexbox, FlexboxProps } from 'react-layout-kit';
import urlJoin from 'url-join';
import { OFFICIAL_URL } from '@/const/url'; // import { OFFICIAL_URL } from '@/const/url';
import { DiscoverAssistantItem } from '@/types/discover'; import { DiscoverAssistantItem } from '@/types/discover';
import ShareButton from '../../../features/ShareButton'; // import ShareButton from '../../../features/ShareButton';
import AddAgent from './AddAgent'; import AddAgent from './AddAgent';
interface AssistantActionProps extends FlexboxProps { interface AssistantActionProps extends FlexboxProps {
@ -15,7 +14,7 @@ interface AssistantActionProps extends FlexboxProps {
identifier: string; identifier: string;
} }
const AssistantAction = memo<AssistantActionProps>(({ identifier, data }) => { const AssistantAction = memo<AssistantActionProps>(({ data }) => {
return ( return (
<Flexbox align={'center'} gap={8} horizontal style={{marginLeft: 100}}> <Flexbox align={'center'} gap={8} horizontal style={{marginLeft: 100}}>
<AddAgent data={data} /> <AddAgent data={data} />

@ -1,9 +1,9 @@
'use client'; 'use client';
import { ActionIcon, Icon } from '@lobehub/ui'; import { ActionIcon } from '@lobehub/ui';
import { App, Dropdown, Button } from 'antd'; import { App, Button } from 'antd';
import { createStyles } from 'antd-style'; import { createStyles } from 'antd-style';
import { ChevronDownIcon, PlusIcon } from 'lucide-react'; import { PlusIcon } from 'lucide-react';
import { useRouter } from 'next/navigation'; import { useRouter } from 'next/navigation';
import { memo, useState } from 'react'; import { memo, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
@ -40,13 +40,13 @@ const AddAgent = memo<{ data: DiscoverAssistantItem; mobile?: boolean }>(({ data
router.push(SESSION_CHAT_URL(session, mobile)); router.push(SESSION_CHAT_URL(session, mobile));
}; };
const handleAddAgent = async () => { // const handleAddAgent = async () => {
if (!data) return; // if (!data) return;
setIsLoading(true); // setIsLoading(true);
createSession({ config: data.config, meta: data.meta }, false); // createSession({ config: data.config, meta: data.meta }, false);
message.success(t('assistants.addAgentSuccess')); // message.success(t('assistants.addAgentSuccess'));
setIsLoading(false); // setIsLoading(false);
}; // };
if (mobile) if (mobile)
return ( return (
@ -60,9 +60,7 @@ const AddAgent = memo<{ data: DiscoverAssistantItem; mobile?: boolean }>(({ data
); );
return ( return (
<>
<Button className={styles.button} loading={isLoading} onClick={handleAddAgentAndConverse}></Button> <Button className={styles.button} loading={isLoading} onClick={handleAddAgentAndConverse}></Button>
</>
); );
}); });

@ -1,16 +1,16 @@
'use client'; 'use client';
import { Avatar, Icon, Tag } from '@lobehub/ui'; import { Avatar, Tag } from '@lobehub/ui';
import { Button } from 'antd'; import { Button } from 'antd';
import { createStyles } from 'antd-style'; import { createStyles } from 'antd-style';
import { startCase } from 'lodash-es'; import { startCase } from 'lodash-es';
import { ChevronRight } from 'lucide-react'; // import { ChevronRight } from 'lucide-react';
import Link from 'next/link'; import Link from 'next/link';
import qs from 'query-string'; // import qs from 'query-string';
import { memo } from 'react'; import { memo } from 'react';
import { useTranslation } from 'react-i18next'; // import { useTranslation } from 'react-i18next';
import { Flexbox } from 'react-layout-kit'; import { Flexbox } from 'react-layout-kit';
import urlJoin from 'url-join'; // import urlJoin from 'url-join';
import { useRouter } from 'next/navigation'; import { useRouter } from 'next/navigation';
import { DiscoverAssistantItem } from '@/types/discover'; import { DiscoverAssistantItem } from '@/types/discover';
import { useUserStore } from '@/store/user'; import { useUserStore } from '@/store/user';
@ -40,11 +40,6 @@ export const useStyles = createStyles(({ css, token }) => ({
border-color: rgba(187, 204, 253, 0.24); border-color: rgba(187, 204, 253, 0.24);
padding: 20px 50px; padding: 20px 50px;
`, `,
topBtn: css`
border-radius: 20px;
color: #2E62FF;
border: 1px solid #2E62FF;
`,
conTitle: css` conTitle: css`
width: 125px; width: 125px;
height: 40px; height: 40px;
@ -56,6 +51,11 @@ export const useStyles = createStyles(({ css, token }) => ({
opacity: 1; opacity: 1;
background: linear-gradient(270deg, #2D65FF 0%, rgba(0, 166, 255, 0.52) 99%); background: linear-gradient(270deg, #2D65FF 0%, rgba(0, 166, 255, 0.52) 99%);
`, `,
topBtn: css`
border-radius: 20px;
color: #2E62FF;
border: 1px solid #2E62FF;
`,
description: css` description: css`
padding: 0 45px; padding: 0 45px;
margin-top: 10px; margin-top: 10px;
@ -71,19 +71,18 @@ interface HeaderProps {
identifier: string; identifier: string;
mobile?: boolean; mobile?: boolean;
} }
const getUserId = (s) => s.user?.id
const Header = memo<HeaderProps>(({ identifier, data, mobile }) => { const Header = memo<HeaderProps>(({ identifier, data, mobile }) => {
const { styles, theme } = useStyles(); const { styles, theme } = useStyles();
const router = useRouter() const router = useRouter()
const { t } = useTranslation('discover'); // const { t } = useTranslation('discover');
const getUserId = (s: UserStore) => s.user?.id
const userId = getUserId(useUserStore.getState()) const userId = getUserId(useUserStore.getState())
const handleBack = () => { const handleBack = () => {
router.push('/discover/assistants?userid=' + userId) router.push('/discover/assistants?userid=' + userId)
} }
return ( return (
<Flexbox gap={12} width={'100%'}> <Flexbox gap={12} width={'100%'}>
<Flexbox align={'center'} gap={8} horizontal justify={'space-between'} width={'100%'} className={styles.top}> <Flexbox align={'center'} className={styles.top} gap={8} horizontal justify={'space-between'} width={'100%'}>
<Flexbox align={'center'} gap={16} horizontal justify={'flex-start'}> <Flexbox align={'center'} gap={16} horizontal justify={'flex-start'}>
<Avatar <Avatar
alt={identifier} alt={identifier}

@ -3,14 +3,14 @@
import { Markdown } from '@lobehub/ui'; import { Markdown } from '@lobehub/ui';
import { Skeleton } from 'antd'; import { Skeleton } from 'antd';
import { useTheme } from 'antd-style'; import { useTheme } from 'antd-style';
import { BotMessageSquare } from 'lucide-react'; // import { BotMessageSquare } from 'lucide-react';
import { memo } from 'react'; import { memo } from 'react';
import { useTranslation } from 'react-i18next'; // import { useTranslation } from 'react-i18next';
import { Flexbox, FlexboxProps } from 'react-layout-kit'; import { Flexbox, FlexboxProps } from 'react-layout-kit';
import { DiscoverAssistantItem } from '@/types/discover'; import { DiscoverAssistantItem } from '@/types/discover';
import HighlightBlock from '../../../features/HighlightBlock'; // import HighlightBlock from '../../../features/HighlightBlock';
interface ConversationExampleProps extends FlexboxProps { interface ConversationExampleProps extends FlexboxProps {
data: DiscoverAssistantItem; data: DiscoverAssistantItem;
@ -19,11 +19,10 @@ interface ConversationExampleProps extends FlexboxProps {
} }
const ConversationExample = memo<ConversationExampleProps>(({ data }) => { const ConversationExample = memo<ConversationExampleProps>(({ data }) => {
const { t } = useTranslation('discover'); // const { t } = useTranslation('discover');
const theme = useTheme(); const theme = useTheme();
console.log(data.config.systemRole,111111111) console.log(data.config.systemRole,111111111)
return ( return (
<>
<Flexbox paddingInline={16} style={{padding: '0 45'}}> <Flexbox paddingInline={16} style={{padding: '0 45'}}>
{data.config.systemRole ? ( {data.config.systemRole ? (
<Markdown fontSize={theme.fontSize}>{data.config.systemRole}</Markdown> <Markdown fontSize={theme.fontSize}>{data.config.systemRole}</Markdown>
@ -31,7 +30,6 @@ const ConversationExample = memo<ConversationExampleProps>(({ data }) => {
<Skeleton paragraph={{ rows: 4 }} title={false} /> <Skeleton paragraph={{ rows: 4 }} title={false} />
)} )}
</Flexbox> </Flexbox>
</>
); );
}); });

@ -67,10 +67,10 @@ const Page = async ({ params, searchParams }: Props) => {
console.log(data,'37373733737') console.log(data,'37373733737')
const { meta, createdAt, author, config } = data; const { meta, createdAt, author, config } = data;
let pluginData: DiscoverPlugintem[] = []; // let pluginData: DiscoverPlugintem[] = [];
if (config?.plugins && config.plugins?.length > 0) { // if (config?.plugins && config.plugins?.length > 0) {
pluginData = await discoverService.getPluginByIds(locale, config.plugins); // pluginData = await discoverService.getPluginByIds(locale, config.plugins);
} // }
const ld = ldModule.generate({ const ld = ldModule.generate({
article: { article: {

@ -6,7 +6,7 @@ import { Flexbox } from 'react-layout-kit';
import Footer from '@/features/Setting/Footer'; import Footer from '@/features/Setting/Footer';
import SidebarContainer from './SidebarContainer'; // import SidebarContainer from './SidebarContainer';
interface DetailLayoutProps { interface DetailLayoutProps {
actions?: ReactNode; actions?: ReactNode;
@ -36,7 +36,6 @@ const DetailLayout = memo<DetailLayoutProps>(
); );
return ( return (
<>
<div style={{ backgroundColor: '#fff'}}> <div style={{ backgroundColor: '#fff'}}>
{header} {header}
<Flexbox gap={32} horizontal width={'100%'}> <Flexbox gap={32} horizontal width={'100%'}>
@ -46,7 +45,6 @@ const DetailLayout = memo<DetailLayoutProps>(
</Flexbox> </Flexbox>
</Flexbox> </Flexbox>
</div> </div>
</>
); );
}, },
); );

Loading…
Cancel
Save