| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import React from 'react'; |
| import { Card, Collapse, Empty } from '@douyinfe/semi-ui'; |
| import { HelpCircle } from 'lucide-react'; |
| import { IconPlus, IconMinus } from '@douyinfe/semi-icons'; |
| import { marked } from 'marked'; |
| import { |
| IllustrationConstruction, |
| IllustrationConstructionDark, |
| } from '@douyinfe/semi-illustrations'; |
| import ScrollableContainer from '../common/ui/ScrollableContainer'; |
|
|
| const FaqPanel = ({ |
| faqData, |
| CARD_PROPS, |
| FLEX_CENTER_GAP2, |
| ILLUSTRATION_SIZE, |
| t, |
| }) => { |
| return ( |
| <Card |
| {...CARD_PROPS} |
| className='shadow-sm !rounded-2xl lg:col-span-1' |
| title={ |
| <div className={FLEX_CENTER_GAP2}> |
| <HelpCircle size={16} /> |
| {t('常见问答')} |
| </div> |
| } |
| bodyStyle={{ padding: 0 }} |
| > |
| <ScrollableContainer maxHeight='24rem'> |
| {faqData.length > 0 ? ( |
| <Collapse |
| accordion |
| expandIcon={<IconPlus />} |
| collapseIcon={<IconMinus />} |
| > |
| {faqData.map((item, index) => ( |
| <Collapse.Panel |
| key={index} |
| header={item.question} |
| itemKey={index.toString()} |
| > |
| <div |
| dangerouslySetInnerHTML={{ |
| __html: marked.parse(item.answer || ''), |
| }} |
| /> |
| </Collapse.Panel> |
| ))} |
| </Collapse> |
| ) : ( |
| <div className='flex justify-center items-center py-8'> |
| <Empty |
| image={<IllustrationConstruction style={ILLUSTRATION_SIZE} />} |
| darkModeImage={ |
| <IllustrationConstructionDark style={ILLUSTRATION_SIZE} /> |
| } |
| title={t('暂无常见问答')} |
| description={t('请联系管理员在系统设置中配置常见问答')} |
| /> |
| </div> |
| )} |
| </ScrollableContainer> |
| </Card> |
| ); |
| }; |
|
|
| export default FaqPanel; |
|
|