import React from 'react'; import cls from 'classnames'; import { cssClasses, strings } from '@douyinfe/semi-foundation/floatButton/constants'; import '@douyinfe/semi-foundation/floatButton/floatButton.scss'; import { IconSearchStroked, IconHelpCircleStroked } from '@douyinfe/semi-icons'; const iconImgs = { default: { small: 'https://cdn-tos-cn.bytedance.net/obj/ies-semi/images/mcvcjc2y-ytad407.svg', medium: 'https://cdn-tos-cn.bytedance.net/obj/ies-semi/images/mcvcjc2y-hfkzeke.svg', large: 'https://cdn-tos-cn.bytedance.net/obj/ies-semi/images/mcvcjc2y-y4y9tsx.svg', }, disabled: { small: 'https://cdn-tos-cn.bytedance.net/obj/ies-semi/images/mcvrr4gn-9vdet0m.svg', medium: 'https://cdn-tos-cn.bytedance.net/obj/ies-semi/images/mcvcjc2y-bm6q1vr.svg', large: 'https://cdn-tos-cn.bytedance.net/obj/ies-semi/images/mcvcjc2y-7un8des.svg', }, }; const badgeContents = { small: '3', large: '99+', }; function FloatButton({ type = 'default', status = 'normal', size = 'medium', showRectangle = false, showBadge = false, badgeContent = '', group = false, groupItems = [] }) { const iconCls = cls(cssClasses.ICON_BTN, `${cssClasses.ICON_BTN}-${size}`, `${cssClasses.ICON_BTN}-${type}`, { [`${cssClasses.ICON_BTN}-disabled`]: status === 'disabled', } ); const imgCls = cls(cssClasses.ICON_IMG, `${cssClasses.ICON_IMG}-${size}`); // 单枚浮动按钮 if (!group) { return ( {showRectangle ? ( ) : null} {showBadge ? ( {badgeContent} ) : null} ); } // 按钮组 return ( {groupItems.map((item, idx) => { const iconBtnCls = cls(cssClasses.GROUP_ITEM, { [`${cssClasses.ICON_BTN}-disabled`]: item.status === 'disabled', }); return ( {item.iconType === 'img' ? ( ) : item.iconType === 'search' ? ( ) : ( )} {item.label} {item.showRectangle ? ( ) : null} {item.showBadge ? ( {item.badgeContent} ) : null} ); })} ); } export default FloatButton;