feat: Cover the entire search page with a background image #2247 (#2381)

### What problem does this PR solve?

feat: Cover the entire search page with a background image #2247

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu 2024-09-12 14:20:04 +08:00 committed by GitHub
parent 6722b3d558
commit 983540614e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 35 additions and 18 deletions

View File

@ -1,4 +1,6 @@
.searchPage { .searchPage {
background-position: center;
background-size: cover;
.card { .card {
width: 100%; width: 100%;
:global(.ant-card-body) { :global(.ant-card-body) {
@ -13,14 +15,18 @@
font-size: 14px; font-size: 14px;
cursor: pointer; cursor: pointer;
} }
.mainLayout {
background: transparent;
}
}
.transparentSearchSide {
background-color: rgb(251 251 251 / 88%) !important;
} }
.searchSide { .searchSide {
// height: calc(100vh - 72px);
position: relative; position: relative;
// position: fixed !important;
// top: 72px;
// bottom: 0;
:global(.ant-layout-sider-children) { :global(.ant-layout-sider-children) {
height: auto; height: auto;
} }
@ -37,9 +43,11 @@
} }
.list { .list {
width: 100%; width: 100%;
// height: 100%;
height: calc(100vh - 152px); height: calc(100vh - 152px);
overflow: auto; overflow: auto;
&::-webkit-scrollbar-track {
background: transparent;
}
} }
.checkbox { .checkbox {
width: 100%; width: 100%;
@ -51,8 +59,6 @@
.firstRenderContent { .firstRenderContent {
height: 100%; height: 100%;
background-position: center;
background-size: cover;
} }
.content { .content {

View File

@ -86,25 +86,24 @@ const SearchPage = () => {
return ( return (
<> <>
<Layout className={styles.searchPage}> <Layout
className={styles.searchPage}
style={{ backgroundImage: `url(${imgUrl})` }}
>
<SearchSidebar <SearchSidebar
isFirstRender={isFirstRender}
checkedList={checkedList} checkedList={checkedList}
setCheckedList={setCheckedList} setCheckedList={setCheckedList}
></SearchSidebar> ></SearchSidebar>
<Layout> <Layout className={isFirstRender ? styles.mainLayout : ''}>
<Content> <Content>
{isFirstRender ? ( {isFirstRender ? (
<Flex <Flex
justify="center" justify="center"
align="center" align="center"
className={styles.firstRenderContent} className={styles.firstRenderContent}
style={{ backgroundImage: `url(${imgUrl})` }}
> >
<Flex vertical align="center" gap={'large'}> <Flex vertical align="center" gap={'large'}>
{/* <Space size={30}>
<img src="/logo.svg" alt="" className={styles.appIcon} />
<span className={styles.appName}>{appConf.appName}</span>
</Space> */}
{InputSearch} {InputSearch}
</Flex> </Flex>
</Flex> </Flex>

View File

@ -1,7 +1,10 @@
import { useNextFetchKnowledgeList } from '@/hooks/knowledge-hooks'; import { useNextFetchKnowledgeList } from '@/hooks/knowledge-hooks';
import { UserOutlined } from '@ant-design/icons';
import type { CheckboxProps } from 'antd'; import type { CheckboxProps } from 'antd';
import { Avatar, Checkbox, Layout, List, Space, Typography } from 'antd'; import { Avatar, Checkbox, Layout, List, Space, Typography } from 'antd';
import { CheckboxChangeEvent } from 'antd/es/checkbox';
import { CheckboxValueType } from 'antd/es/checkbox/Group'; import { CheckboxValueType } from 'antd/es/checkbox/Group';
import classNames from 'classnames';
import { import {
Dispatch, Dispatch,
SetStateAction, SetStateAction,
@ -10,18 +13,21 @@ import {
useMemo, useMemo,
} from 'react'; } from 'react';
import { UserOutlined } from '@ant-design/icons';
import { CheckboxChangeEvent } from 'antd/es/checkbox';
import styles from './index.less'; import styles from './index.less';
const { Sider } = Layout; const { Sider } = Layout;
interface IProps { interface IProps {
isFirstRender: boolean;
checkedList: string[]; checkedList: string[];
setCheckedList: Dispatch<SetStateAction<string[]>>; setCheckedList: Dispatch<SetStateAction<string[]>>;
} }
const SearchSidebar = ({ checkedList, setCheckedList }: IProps) => { const SearchSidebar = ({
isFirstRender,
checkedList,
setCheckedList,
}: IProps) => {
const { list, loading } = useNextFetchKnowledgeList(); const { list, loading } = useNextFetchKnowledgeList();
const ids = useMemo(() => list.map((x) => x.id), [list]); const ids = useMemo(() => list.map((x) => x.id), [list]);
@ -49,7 +55,13 @@ const SearchSidebar = ({ checkedList, setCheckedList }: IProps) => {
}, [ids, setCheckedList]); }, [ids, setCheckedList]);
return ( return (
<Sider className={styles.searchSide} theme={'light'} width={240}> <Sider
className={classNames(styles.searchSide, {
[styles.transparentSearchSide]: isFirstRender,
})}
theme={'light'}
width={240}
>
<Checkbox <Checkbox
className={styles.modelForm} className={styles.modelForm}
indeterminate={indeterminate} indeterminate={indeterminate}