@ant-design/icons APIs
- DeleteOutlined
- PlusOutlined
- SettingOutlined
- UserOutlined
- ExclamationCircleOutlined
- CloseOutlined
- DownOutlined
- SearchOutlined
- EditOutlined
- QuestionCircleOutlined
- LoadingOutlined
- CopyOutlined
- DownloadOutlined
- LogoutOutlined
- LeftOutlined
- PlusCircleOutlined
- MinusCircleOutlined
- CloseCircleOutlined
- CheckOutlined
- UploadOutlined
- ReloadOutlined
- InfoCircleOutlined
- SaveOutlined
- GithubOutlined
- LockOutlined
- RightOutlined
- CodeOutlined
- EyeOutlined
- EllipsisOutlined
- CaretRightOutlined
- CheckCircleOutlined
- SyncOutlined
- LinkOutlined
- HomeOutlined
- MenuUnfoldOutlined
- FullscreenExitOutlined
- FullscreenOutlined
- MenuOutlined
- BellOutlined
- MenuFoldOutlined
- AppstoreOutlined
- FormOutlined
- CaretDownOutlined
- UndoOutlined
- TeamOutlined
- ArrowDownOutlined
- ArrowLeftOutlined
- ClearOutlined
- RedoOutlined
- GlobalOutlined
- ExportOutlined
- ClockCircleOutlined
- PlayCircleOutlined
- MoreOutlined
- UpOutlined
- UnorderedListOutlined
- MessageOutlined
- ArrowUpOutlined
- FilterOutlined
- StarOutlined
- StopOutlined
- EyeInvisibleOutlined
- BgColorsOutlined
- WarningOutlined
- createFromIconfontCN
- MailOutlined
- ArrowRightOutlined
- AreaChartOutlined
- SendOutlined
- DatabaseOutlined
- CalendarOutlined
- VerticalAlignBottomOutlined
- PictureOutlined
- ProfileOutlined
- FileTextOutlined
- DeploymentUnitOutlined
- QuestionOutlined
- UserAddOutlined
- ApiOutlined
- AppstoreAddOutlined
- RollbackOutlined
- BoldOutlined
- ItalicOutlined
- UnderlineOutlined
- VerticalAlignTopOutlined
- SnippetsOutlined
- HighlightOutlined
- WeiboCircleOutlined
- ApartmentOutlined
- BugOutlined
- DashboardOutlined
- HistoryOutlined
- CloseCircleFilled
- SmileOutlined
- BarsOutlined
- InfoOutlined
- PhoneOutlined
- BarChartOutlined
- LineChartOutlined
- PieChartOutlined
- CommentOutlined
- UsergroupAddOutlined
- ExclamationCircleFilled
- ControlOutlined
- GoogleOutlined
- InboxOutlined
- ShareAltOutlined
- ReadOutlined
- CheckCircleFilled
- BlockOutlined
- NotificationOutlined
- DesktopOutlined
- FileOutlined
- MinusOutlined
- FieldTimeOutlined
- PlusSquareOutlined
- DiffOutlined
- AlignCenterOutlined
- ZoomInOutlined
- ZoomOutOutlined
- AlipayCircleOutlined
- FileAddOutlined
- FolderAddOutlined
- FolderOpenOutlined
- NumberOutlined
- PauseOutlined
- ContactsOutlined
- CloudSyncOutlined
- TableOutlined
- ContainerOutlined
- TagOutlined
- VideoCameraOutlined
- BookOutlined
- ToolOutlined
- SlackOutlined
- MobileOutlined
- SwapOutlined
- LockFilled
- CloudDownloadOutlined
- StarFilled
- FontSizeOutlined
- BranchesOutlined
- UpCircleOutlined
- DownCircleOutlined
- DoubleRightOutlined
- MinusSquareOutlined
- AlignLeftOutlined
- AlignRightOutlined
- SmallDashOutlined
- TaobaoCircleOutlined
- BuildOutlined
- CloudUploadOutlined
- FolderOutlined
- GroupOutlined
- Loading3QuartersOutlined
- QrcodeOutlined
- FolderFilled
- InfoCircleFilled
- PlusCircleFilled
- SmileTwoTone
- HeartTwoTone
- CheckCircleTwoTone
- EditFilled
- UserDeleteOutlined
- MacCommandOutlined
- PushpinOutlined
- CoffeeOutlined
- ProjectOutlined
- OrderedListOutlined
- FundOutlined
- RiseOutlined
- AimOutlined
- CalculatorOutlined
- GatewayOutlined
- KeyOutlined
- GitlabOutlined
- BulbOutlined
- CloseSquareOutlined
- PlaySquareOutlined
- RocketOutlined
- ClusterOutlined
- ArrowsAltOutlined
- DragOutlined
- CaretUpOutlined
- DoubleLeftOutlined
- EnterOutlined
- RetweetOutlined
- ScissorOutlined
- StrikethroughOutlined
- ColumnWidthOutlined
- DingdingOutlined
- TwitterOutlined
- QqOutlined
- ZhihuOutlined
- BorderOutlined
- CameraOutlined
- EnvironmentOutlined
- FieldNumberOutlined
- FileExcelOutlined
- FileImageOutlined
- FilePptOutlined
- FileSearchOutlined
- FormatPainterOutlined
- FunctionOutlined
- HourglassOutlined
- LayoutOutlined
- OneToOneOutlined
- PartitionOutlined
- PoweroffOutlined
- PrinterOutlined
- SafetyCertificateOutlined
- SolutionOutlined
- TagsOutlined
- UngroupOutlined
- CopyFilled
- DeleteTwoTone
- QuestionCircleFilled
- StepBackwardOutlined
- StepForwardOutlined
- CopyrightOutlined
- CrownOutlined
- ExclamationOutlined
- PaperClipOutlined
- DashOutlined
- CloseCircleTwoTone
- ExclamationCircleTwoTone
- FlagOutlined
- FunnelPlotOutlined
- InteractionOutlined
- CheckSquareOutlined
- LaptopOutlined
- CustomerServiceOutlined
- WarningFilled
- ApiTwoTone
- ApiFilled
- MergeCellsOutlined
- SlackSquareOutlined
- FallOutlined
- PercentageOutlined
- DollarOutlined
- CloudServerOutlined
- UnlockOutlined
- PicCenterOutlined
- FontColorsOutlined
- GithubFilled
- CaretLeftOutlined
- LeftCircleOutlined
- RightCircleOutlined
- VerticalAlignMiddleOutlined
- BackwardOutlined
- SwapRightOutlined
- LoginOutlined
- BorderBottomOutlined
- BorderLeftOutlined
- BorderRightOutlined
- BorderTopOutlined
- RadiusBottomleftOutlined
- RadiusBottomrightOutlined
- RadiusUpleftOutlined
- RadiusUprightOutlined
- PauseCircleOutlined
- IssuesCloseOutlined
- SortAscendingOutlined
- SortDescendingOutlined
- RadiusSettingOutlined
- ColumnHeightOutlined
- RadarChartOutlined
- BoxPlotOutlined
- WindowsOutlined
- WeiboOutlined
- WechatOutlined
- FacebookOutlined
- CodepenCircleOutlined
- AntDesignOutlined
- AliyunOutlined
- InstagramOutlined
- YuqueOutlined
- RedditOutlined
- AlertOutlined
- AudioOutlined
- AuditOutlined
- BankOutlined
- CompressOutlined
- ConsoleSqlOutlined
- CopyrightCircleOutlined
- CreditCardOutlined
- DeleteRowOutlined
- DisconnectOutlined
- ExceptionOutlined
- ExpandOutlined
- ExperimentOutlined
- FieldStringOutlined
- FileDoneOutlined
- FileProtectOutlined
- FileUnknownOutlined
- FireOutlined
- FolderViewOutlined
- FrownOutlined
- FundProjectionScreenOutlined
- FundViewOutlined
- GoldOutlined
- HddOutlined
- HeartOutlined
- InsertRowBelowOutlined
- InsertRowLeftOutlined
- LikeOutlined
- LineOutlined
- MonitorOutlined
- NodeIndexOutlined
- RotateRightOutlined
- SafetyOutlined
- SelectOutlined
- SisternodeOutlined
- SkinOutlined
- SubnodeOutlined
- SwitcherOutlined
- ThunderboltOutlined
- UserSwitchOutlined
- WalletOutlined
- FolderOpenFilled
- ProfileFilled
- HomeFilled
- DatabaseFilled
- PictureFilled
- LockTwoTone
- MailTwoTone
- MobileTwoTone
- ThunderboltFilled
- RobotFilled
- RestFilled
- DeleteFilled
- BankFilled
- SoundFilled
- CaretRightFilled
- QuestionCircleTwoTone
- SettingFilled
- EyeTwoTone
- ToolFilled
- CheckSquareFilled
- CloseSquareFilled
- RocketFilled
- PushpinFilled
- CrownFilled
- AppstoreFilled
- PlusCircleTwoTone
- AppleOutlined
- AndroidOutlined
- DropboxOutlined
- BehanceOutlined
- FastBackwardOutlined
- FastForwardOutlined
- ShrinkOutlined
- VerticalLeftOutlined
- VerticalRightOutlined
- ForwardOutlined
- SwapLeftOutlined
- UpSquareOutlined
- DownSquareOutlined
- LeftSquareOutlined
- RightSquareOutlined
- BorderHorizontalOutlined
- BorderInnerOutlined
- BorderOuterOutlined
- BorderVerticleOutlined
- PicLeftOutlined
- PicRightOutlined
- LineHeightOutlined
- DotChartOutlined
- HeatMapOutlined
- StockOutlined
- SlidersOutlined
- IeOutlined
- ChromeOutlined
- AliwangwangOutlined
- WeiboSquareOutlined
- Html5Outlined
- YoutubeOutlined
- TaobaoOutlined
- SkypeOutlined
- MediumWorkmarkOutlined
- MediumOutlined
- LinkedinOutlined
- GooglePlusOutlined
- CodepenOutlined
- CodeSandboxOutlined
- AmazonOutlined
- AlipayOutlined
- AntCloudOutlined
- BehanceSquareOutlined
- DribbbleOutlined
- DribbbleSquareOutlined
- AlibabaOutlined
- YahooOutlined
- SketchOutlined
- AccountBookOutlined
- AudioMutedOutlined
- BarcodeOutlined
- BorderlessTableOutlined
- CarOutlined
- CarryOutOutlined
- CiCircleOutlined
- CiOutlined
- CloudOutlined
- CompassOutlined
- DeleteColumnOutlined
- DeliveredProcedureOutlined
- DingtalkOutlined
- DislikeOutlined
- DollarCircleOutlined
- EuroCircleOutlined
- EuroOutlined
- ExpandAltOutlined
- FieldBinaryOutlined
- FileExclamationOutlined
- FileGifOutlined
- FileJpgOutlined
- FileMarkdownOutlined
- FilePdfOutlined
- FileSyncOutlined
- FileWordOutlined
- FileZipOutlined
- ForkOutlined
- GifOutlined
- GiftOutlined
- IdcardOutlined
- ImportOutlined
- InsertRowAboveOutlined
- InsertRowRightOutlined
- InsuranceOutlined
- ManOutlined
- MedicineBoxOutlined
- MehOutlined
- MoneyCollectOutlined
- NodeCollapseOutlined
- NodeExpandOutlined
- PayCircleOutlined
- PoundCircleOutlined
- PoundOutlined
- PropertySafetyOutlined
- PullRequestOutlined
- ReconciliationOutlined
- RedEnvelopeOutlined
- RestOutlined
- RobotOutlined
- RotateLeftOutlined
- ScanOutlined
- ScheduleOutlined
- SecurityScanOutlined
- ShakeOutlined
- ShopOutlined
- ShoppingCartOutlined
- ShoppingOutlined
- SoundOutlined
- SplitCellsOutlined
- TabletOutlined
- ToTopOutlined
- TrademarkCircleOutlined
- TrademarkOutlined
- TransactionOutlined
- TranslationOutlined
- TrophyOutlined
- UsbOutlined
- UsergroupDeleteOutlined
- VerifiedOutlined
- VideoCameraAddOutlined
- WhatsAppOutlined
- WifiOutlined
- WomanOutlined
- AlertFilled
- GoldenFilled
- MessageFilled
- BuildFilled
- PieChartFilled
- PlayCircleFilled
- StarTwoTone
- FacebookFilled
- CloudFilled
- NotificationFilled
- EyeFilled
- EyeInvisibleFilled
- SnippetsFilled
- HolderOutlined
- FilterFilled
- CreditCardFilled
- WechatFilled
- FilePdfFilled
- CaretDownFilled
- PlusSquareFilled
- TagsFilled
- BookFilled
- ContactsFilled
- TrophyTwoTone
- FundFilled
- WarningTwoTone
- SafetyCertificateFilled
- SaveFilled
- CodeFilled
- FolderAddFilled
- LinkedinFilled
- BellFilled
- FolderTwoTone
- CodeTwoTone
- DownCircleTwoTone
- UpCircleTwoTone
- ChromeFilled
- ThunderboltTwoTone
- PlaySquareTwoTone
- CompassTwoTone
Other Related APIs
- react#useState
- react#useEffect
- react-router-dom#useLocation
- react-router-dom#useHistory
- lodash#chunk
- antd#Button
- antd#Modal
- antd#message
- antd#Tooltip
- antd#Dropdown
- antd#Popover
- antd#notification
- antd#MessageArgsProps
- @ant-design/icons#LogoutOutlined
- @ant-design/icons#SettingOutlined
- @ant-design/icons#LeftOutlined
- @ant-design/icons#AreaChartOutlined
- @ant-design/icons#RightOutlined
- @ant-design/icons#ApiFilled
- @ant-design/icons#CloudFilled
- @ant-design/icons#NotificationFilled
@ant-design/icons#HomeFilled TypeScript Examples
The following examples show how to use
@ant-design/icons#HomeFilled.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Layout.tsx From jitsu with MIT License | 6 votes |
menuItems = [
makeItem(<HomeFilled />, "Home", "/connections", "#77c593"),
makeItem(<ThunderboltFilled />, "Live Events", "/events-stream", "#fccd04"),
makeItem(<AreaChartOutlined />, "Statistics", "/dashboard", "#88bdbc"),
makeItem(<Icon component={KeyIcon} />, "API Keys", "/api-keys", "#d79922"),
makeItem(<ApiFilled />, "Sources", "/sources", "#d83f87"),
makeItem(<NotificationFilled />, "Destinations", "/destinations", "#4056a1"),
makeItem(<Icon component={DbtCloudIcon} />, "dbt Cloud Integration", "/dbtcloud", "#e76e52"),
makeItem(<SettingOutlined />, "Project settings", "/project-settings", "#0d6050"),
makeItem(<Icon component={GlobeIcon} />, "Geo data resolver", "/geo-data-resolver", "#41b3a3"),
makeItem(<CloudFilled />, "Custom Domains", "/domains", "#5ab9ea", f => f.enableCustomDomains),
makeItem(<Icon component={DownloadIcon} />, "Download Config", "/cfg-download", "#14a76c"),
]
Example #2
Source File: DesktopSlider.tsx From next-basics with GNU General Public License v3.0 | 4 votes |
export function DesktopSlider(props: DesktopSliderProps): React.ReactElement {
const enableMyDesktop = true;
const [desktopCursor, setDesktopCursor] = React.useState(
getRememberedDesktopCursor()
);
const [appCursor, setAppCursor] = React.useState(-1);
const { columns, rows } = useLaunchpadSettingsContext();
const { setDesktopDir } = useDesktopDirContext();
const slideDuration = 400;
useEffect(() => {
enableMyDesktop && launchpadService.setMaxVisitorLength(8);
}, [columns, enableMyDesktop]);
const mapItemToDesktop = (apps: appItem[]): DesktopData => ({
name: "-",
items: apps.map((app) => {
if (app.type === "custom") {
return {
id: app.id,
name: app.name,
url: app.homepage,
type: "custom",
app,
};
}
return {
type: "app",
id: app.id,
app,
};
}),
});
const transformCustomItem = (item: DesktopItemCustom): appItem => ({
id: item.id,
localeName: item.name,
name: item.name,
homepage: item.url,
...item,
type: "custom",
});
let desktops: DesktopData[];
let validItems = props.microApps;
if (props.desktops && props.desktops.length > 0) {
validItems = [];
const id2app = props.microApps.reduce((acc, app) => {
acc.set(app.id, app);
return acc;
}, new Map<string, appItem>());
desktops = props.desktops
.map((desktop) => ({
name: desktop.name,
items: desktop.items
.map((item) => {
if (item.type === "app") {
if (id2app.has(item.id)) {
const app = id2app.get(item.id);
validItems.push(app);
id2app.delete(item.id);
return {
type: item.type,
id: item.id,
app,
};
}
// ignore not found apps
} else if (item.type === "dir") {
const items = item.items
.map((item) => {
if (item.type === "app") {
if (id2app.has(item.id)) {
const app = id2app.get(item.id);
validItems.push(app);
id2app.delete(item.id);
return {
type: item.type,
id: item.id,
app,
};
}
} else if (item.type === "custom") {
validItems.push(transformCustomItem(item));
return item;
}
})
.filter(Boolean);
// ignore empty dirs
if (items.length > 0) {
return {
type: item.type,
id: item.id,
name: item.name,
items,
};
}
} else if (item.type === "custom") {
validItems.push(transformCustomItem(item));
return item;
}
})
.filter(Boolean)
.slice(0, columns * rows),
}))
// ignore empty desktops
.filter((desktop) => desktop.items.length > 0);
} else {
// 如果没有定义桌面列表(例如本地开发模式),则自动按数量切割。
desktops = chunk(props.microApps, columns * rows).map(mapItemToDesktop);
}
let filteredDesktop: DesktopData;
if (props.q) {
const lowerQ = props.q.toLowerCase();
filteredDesktop = mapItemToDesktop(
validItems
.filter(
(app) =>
app.localeName.toLowerCase().includes(lowerQ) ||
app.name.toLowerCase().includes(lowerQ) ||
app.id.toLowerCase().includes(lowerQ)
)
.slice(0, columns * rows)
);
}
// When sliding desktop, reset app cursor.
React.useEffect(() => {
setAppCursor(-1);
}, [desktopCursor]);
// When making search, set app cursor to the first app.
React.useEffect(() => {
setAppCursor(
props.q && filteredDesktop && filteredDesktop.items.length > 0 ? 0 : -1
);
}, [props.q]);
const lockRef = React.useRef(false);
const throttledSetDesktopCursor = (index: number): void => {
if (lockRef.current) {
return;
}
setRememberedDesktopCursor(index);
setDesktopCursor(index);
// 一次滑动一个屏幕,锁定期间内,不能继续滑动屏幕。
lockRef.current = true;
setTimeout(() => {
lockRef.current = false;
}, slideDuration);
};
const slideLeft = React.useCallback((): void => {
if (desktopCursor > 0) {
throttledSetDesktopCursor(desktopCursor - 1);
}
}, [desktopCursor]);
const slideRight = React.useCallback((): void => {
const length = desktops.length;
if (desktopCursor < length) {
throttledSetDesktopCursor(desktopCursor + 1);
}
}, [desktopCursor, desktops.length]);
const handleSlideLeft = (e: React.MouseEvent): void => {
e.stopPropagation();
slideLeft();
};
const handleSlideRight = (e: React.MouseEvent): void => {
e.stopPropagation();
slideRight();
};
const handleSlideTo = (e: React.MouseEvent, index: number): void => {
e.stopPropagation();
if (desktopCursor !== index) {
throttledSetDesktopCursor(index);
}
};
// Press arrow key to select an app.
React.useEffect(() => {
const onKeydown = (event: KeyboardEvent): void => {
// 第一栏为我的面板,须过滤掉(PS: 但是搜索时 desktopCursor 为0是可以的)
if (enableMyDesktop && desktopCursor === 0 && !props.q) return;
const key =
event.key ||
/* istanbul ignore next: compatibility */ event.keyCode ||
/* istanbul ignore next: compatibility */ event.which;
const currentDesktop = props.q
? filteredDesktop
: desktops[desktopCursor - 1];
if (key === "Enter" || key === 13) {
event.preventDefault();
if (appCursor >= 0 && appCursor < currentDesktop.items.length) {
const cell = currentDesktop.items[appCursor];
if (cell.type === "app") {
launchpadService.pushVisitor("app", cell.app);
getRuntime().resetWorkspaceStack();
getHistory().push(cell.app.homepage);
} else if (cell.type === "custom") {
launchpadService.pushVisitor("custom", cell);
window.open(cell.url);
} else if (cell.type === "dir") {
// Calculate the approximate coordinates of a dir.
const x = appCursor % columns;
const y = Math.floor(appCursor / columns);
setDesktopDir({
activeIndex: 0,
dir: {
name: cell.name,
items: cell.items,
},
coordinates: {
x: (window.innerWidth * (x + 1)) / (columns + 1),
y: (window.innerHeight * (y + 1)) / (rows + 1),
},
});
}
}
} else {
let offset = 0;
if (key === "ArrowRight" || key === 39) {
offset = 1;
} else if (key === "ArrowLeft" || key === 37) {
offset = appCursor === -1 ? currentDesktop.items.length : -1;
} else if (key === "ArrowDown" || key === 40) {
offset = appCursor === -1 ? 1 : columns;
} else if (key === "ArrowUp" || key === 38) {
offset = appCursor === -1 ? currentDesktop.items.length : -columns;
}
if (offset !== 0) {
event.preventDefault();
const next = appCursor + offset;
if (next >= 0 && next < currentDesktop.items.length) {
setAppCursor(next);
}
}
}
};
window.addEventListener("keydown", onKeydown);
return () => {
window.removeEventListener("keydown", onKeydown);
};
}, [desktopCursor, appCursor, props.q, columns, setDesktopDir]);
const deltaXRef = React.useRef(0);
const deltaYRef = React.useRef(0);
const responsibleRef = React.useRef(true);
const tryToSlideByWheel = (): void => {
// Mac 的 trackpad,部分鼠标滚轮会有“拖尾效应”,拖尾期间,不再响应滚轮事件。
if (!responsibleRef.current) {
return;
}
// 取绝对值较大的方向
const axisRef =
Math.abs(deltaYRef.current) > Math.abs(deltaXRef.current)
? deltaYRef
: deltaXRef;
// 经测试,滚轮纵轴一次位移 4,横轴一次位移 40。
const threshold = axisRef === deltaYRef ? 4 : 40;
if (axisRef.current >= threshold) {
slideRight();
} else if (axisRef.current <= -threshold) {
slideLeft();
} else {
return;
}
// 触发滑动后,重设 delta,拖尾期间,不再响应滚轮事件。
deltaXRef.current = 0;
deltaYRef.current = 0;
responsibleRef.current = false;
};
const resetDeltaTimeoutRef = React.useRef<any>();
const handleWheel = (e: React.WheelEvent): void => {
deltaXRef.current += e.deltaX;
deltaYRef.current += e.deltaY;
tryToSlideByWheel();
if (resetDeltaTimeoutRef.current) {
clearTimeout(resetDeltaTimeoutRef.current);
}
// 间隔 50ms 内的连续滚轮事件被认作一次滚动。
resetDeltaTimeoutRef.current = setTimeout(() => {
deltaXRef.current = 0;
deltaYRef.current = 0;
responsibleRef.current = true;
}, 50);
};
const sliderChildrenLength = desktops.length + 1;
return (
<div
onWheel={handleWheel}
className={classNames(styles.desktopSlider, {
[styles.filtered]: props.q,
})}
>
<div className={styles.desktopSelector}>
{[...[{ name: <HomeFilled /> }], ...desktops].map((desktop, index) => (
<React.Fragment key={index}>
{index !== 0 && <span className={styles.selectorSeparator} />}
<a
className={classNames(styles.desktopName, {
[styles.active]: desktopCursor === index,
})}
onClick={(e) => handleSlideTo(e, index)}
role="button"
>
{desktop.name}
</a>
</React.Fragment>
))}
</div>
<div className={styles.scrollContainer}>
<div
className={styles.desktopList}
style={{
width: `${sliderChildrenLength * 100}%`,
marginLeft: `${desktopCursor * -100}%`,
transition: `margin-left ${slideDuration}ms ease-out`,
}}
>
{enableMyDesktop && (
<MyDesktop
desktopCount={desktops.length}
arrowWidthPercent={props.arrowWidthPercent}
/>
)}
{desktops.map((desktop, index) => (
<Desktop
key={index}
desktop={desktop}
desktopCount={desktops.length}
arrowWidthPercent={props.arrowWidthPercent}
activeIndex={desktopCursor - 1 === index ? appCursor : -1}
/>
))}
</div>
{
// Show filtered apps as a single desktop.
props.q && (
<div className={styles.filteredList}>
<Desktop
desktop={filteredDesktop}
desktopCount={1}
arrowWidthPercent={props.arrowWidthPercent}
activeIndex={appCursor}
/>
</div>
)
}
</div>
<a
className={classNames(styles.arrowLeft, {
[styles.available]: desktopCursor > 0,
})}
style={{ width: `${props.arrowWidthPercent}%` }}
onClick={handleSlideLeft}
role="button"
>
<span className={styles.arrowButton}>
<LeftOutlined />
</span>
</a>
<a
className={classNames(styles.arrowRight, {
[styles.available]: desktopCursor < sliderChildrenLength - 1,
})}
style={{ width: `${props.arrowWidthPercent}%` }}
onClick={handleSlideRight}
role="button"
>
<span className={styles.arrowButton}>
<RightOutlined />
</span>
</a>
</div>
);
}