cfel-base-components 2.5.56 → 2.5.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import React, { useEffect, useState } from 'react'
2
2
  import { Layout, List, Menu, MenuProps, Popover } from 'antd'
3
3
  import UserCard from './user-card'
4
4
  import RcMenu, { SubMenu, MenuItem } from 'rc-menu'
5
- import { CloseCircleOutlined } from '@ant-design/icons'
5
+ import { CloseCircleOutlined, RightOutlined } from '@ant-design/icons'
6
6
  const { Sider } = Layout
7
7
  import './index.scss'
8
8
 
@@ -64,7 +64,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
64
64
  isHideHeader,
65
65
  onCollapse,
66
66
  type,
67
- umiHistory,
67
+ umiHistory
68
68
  } = props
69
69
 
70
70
  const findKeyPath = (pathname: string) => {
@@ -88,7 +88,9 @@ export default function LiosLayout(props: LiosLayoutlProps) {
88
88
  }
89
89
 
90
90
  // 初始化选中菜单
91
- const [selectKey, setSelectKey] = useState<any>(findKeyPath('/' + location.pathname.split('/')[2]))
91
+ const [selectKey, setSelectKey] = useState<any>(
92
+ findKeyPath('/' + location.pathname.split('/')[2])
93
+ )
92
94
 
93
95
  const [infoOpen, setInfoOpen] = useState<string | null>(null)
94
96
 
@@ -133,7 +135,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
133
135
  //在这里找到当前菜单的上层目录
134
136
  const paMenu = findParentMenu(menuList, '/' + location.pathname.split('/')[2])
135
137
  //去重
136
- const set = new Set(paMenu.map((item) => item.key))
138
+ const set = new Set(paMenu.map(item => item.key))
137
139
 
138
140
  openKeys.forEach((element: string) => {
139
141
  set.add(element)
@@ -151,20 +153,20 @@ export default function LiosLayout(props: LiosLayoutlProps) {
151
153
  account: false,
152
154
  id: false,
153
155
  tenantName: false,
154
- tenantId: false,
156
+ tenantId: false
155
157
  })
156
158
 
157
- const onOpenChange: MenuProps['onOpenChange'] = (keys) => {
159
+ const onOpenChange: MenuProps['onOpenChange'] = keys => {
158
160
  // Find the last opened key
159
- const latestOpenKey = keys.find((key) => openKeys.indexOf(key) === -1)
161
+ const latestOpenKey = keys.find(key => openKeys.indexOf(key) === -1)
160
162
 
161
163
  if (latestOpenKey) {
162
164
  // If opening a new key
163
- const rootSubmenuKeys = menuList.map((item) => item.key)
165
+ const rootSubmenuKeys = menuList.map(item => item.key)
164
166
 
165
167
  if (rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
166
168
  // If it's a third level menu, only keep its parent menu open
167
- const parentKey = keys.find((key) => rootSubmenuKeys.includes(key))
169
+ const parentKey = keys.find(key => rootSubmenuKeys.includes(key))
168
170
  setOpenKeys(parentKey ? [parentKey, latestOpenKey] : [latestOpenKey])
169
171
  } else {
170
172
  // If it's a second level menu, only keep it open
@@ -186,7 +188,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
186
188
  // 菜单动画
187
189
  const collapseNode = () => {
188
190
  return {
189
- height: 0,
191
+ height: 0
190
192
  }
191
193
  }
192
194
  const expandNode = (node: any) => {
@@ -200,26 +202,26 @@ export default function LiosLayout(props: LiosLayoutlProps) {
200
202
  onEnterStart: collapseNode,
201
203
  onEnterActive: expandNode,
202
204
  onLeaveStart: expandNode,
203
- onLeaveActive: collapseNode,
205
+ onLeaveActive: collapseNode
204
206
  }
205
207
 
206
208
  const verticalMotion = {
207
209
  motionName: 'rc-menu-open-zoom',
208
210
  motionAppear: true,
209
211
  motionEnter: true,
210
- motionLeave: true,
212
+ motionLeave: true
211
213
  }
212
214
 
213
215
  return (
214
- <Layout className="layout-warps">
216
+ <Layout className='layout-warps'>
215
217
  {Array.isArray(menuList) && menuList.length > 0 && (
216
218
  <Sider
217
- className="layout-side"
219
+ className='layout-side'
218
220
  collapsible
219
221
  trigger={null}
220
222
  collapsed={collapsed}
221
223
  width={260}
222
- onCollapse={(value) => {
224
+ onCollapse={value => {
223
225
  if (onCollapse) {
224
226
  onCollapse(value)
225
227
  }
@@ -227,10 +229,13 @@ export default function LiosLayout(props: LiosLayoutlProps) {
227
229
  setCollapsed(value)
228
230
  }}
229
231
  >
230
- <div className="layout-side-mask1"></div>
231
- <div className="layout-side-mask2"></div>
232
+ <div className='layout-side-mask1'></div>
233
+ <div className='layout-side-mask2'></div>
232
234
 
233
- <div className="header-logo" style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}>
235
+ <div
236
+ className='header-logo'
237
+ style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}
238
+ >
234
239
  <div
235
240
  onClick={() => {
236
241
  window.open('/home')
@@ -240,8 +245,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
240
245
  {collapsed && <img className={`logo-sub`} src={subLogoUrl} />}
241
246
  {/* {collapsed && <img className={`logo-base sub-logo`} src={logo || subLogoUrl} />} */}
242
247
  </div>
243
-
244
- {/* {!collapsed && (
248
+ {!collapsed && (
245
249
  <div
246
250
  className='trigger'
247
251
  onClick={() => {
@@ -250,13 +254,13 @@ export default function LiosLayout(props: LiosLayoutlProps) {
250
254
  >
251
255
  <Arrow collapsed={true} type={type} />
252
256
  </div>
253
- )} */}
257
+ )}
254
258
  </div>
255
259
 
256
260
  {collapsed && (
257
261
  <div style={{ width: '100%', display: 'flex', justifyContent: 'center' }}>
258
262
  <div
259
- className="close-trigger"
263
+ className='close-trigger'
260
264
  onClick={() => {
261
265
  localStorage.setItem('layout_collapsed', 'false')
262
266
  setCollapsed(false)
@@ -267,15 +271,22 @@ export default function LiosLayout(props: LiosLayoutlProps) {
267
271
  </div>
268
272
  )}
269
273
 
270
- <div style={{ height: 24 }}></div>
274
+ {!collapsed && <div style={{ height: 24 }}></div>}
271
275
 
272
276
  <div style={{ width: '100%', padding: '0 16px' }}>
273
- <Search menuList={menuList} collapsed={collapsed} type={type || ''} umiHistory={umiHistory} setSelectKey={setSelectKey} findKeyPath={findKeyPath} />
277
+ <Search
278
+ menuList={menuList}
279
+ collapsed={collapsed}
280
+ type={type || ''}
281
+ umiHistory={umiHistory}
282
+ setSelectKey={setSelectKey}
283
+ findKeyPath={findKeyPath}
284
+ />
274
285
  </div>
275
286
 
276
287
  {!collapsed && <div style={{ height: 12 }}></div>}
277
288
 
278
- <div className="layout-menu">
289
+ <div className='layout-menu'>
279
290
  <RcMenu
280
291
  mode={collapsed ? 'vertical' : 'inline'}
281
292
  className={`menu${collapsed ? '-collapsed' : ''}`}
@@ -289,7 +300,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
289
300
  onMenuClick(item)
290
301
  }
291
302
  }}
292
- triggerSubMenuAction="hover"
303
+ triggerSubMenuAction='hover'
293
304
  >
294
305
  {menuList.map((item: any) => {
295
306
  const isSelected = selectKey.includes(item.key)
@@ -298,15 +309,112 @@ export default function LiosLayout(props: LiosLayoutlProps) {
298
309
  if (isSelected) {
299
310
  classNames += ' submenu-selected'
300
311
  }
312
+ if (collapsed) {
313
+ return (
314
+ <Popover
315
+ key={item.key}
316
+ align={{
317
+ offset: [33, 0]
318
+ }}
319
+ placement='right'
320
+ arrow={false}
321
+ content={
322
+ <div className='menu-popover'>
323
+ {item.children.map((child: any) => {
324
+ const isSelected = selectKey.includes(child.key)
325
+ if (child.children) {
326
+ return (
327
+ <Popover
328
+ key={child.key}
329
+ align={{
330
+ offset: [10, 0]
331
+ }}
332
+ placement='right'
333
+ arrow={false}
334
+ content={
335
+ <div className='menu-popover' style={{ width: '146px' }}>
336
+ {child.children.map((grandChild: any) => {
337
+ const isSelected = selectKey.includes(grandChild.key)
338
+ return (
339
+ <MenuItem
340
+ onClick={() => {
341
+ if (onMenuClick) {
342
+ onMenuClick(grandChild)
343
+ }
344
+ }}
345
+ key={grandChild.key}
346
+ className={`grand-li ${isSelected ? 'sub-item-selected' : ''}`}
347
+ >
348
+ <div style={{ width: '130px' }}>
349
+ <span className={`menu-item-label`}>
350
+ {grandChild.label}
351
+ </span>
352
+ </div>
353
+ </MenuItem>
354
+ )
355
+ })}
356
+ </div>
357
+ }
358
+ >
359
+ <SubMenu
360
+ className={`menu-item-content sub-li ${isSelected ? 'sub-item-selected' : ''}`}
361
+ key={child.key}
362
+ title={
363
+ <div className='sub-list'>
364
+ <span className={`menu-item-label`}>{child.label}</span>
365
+ <RightOutlined />
366
+ </div>
367
+ }
368
+ ></SubMenu>
369
+ </Popover>
370
+ )
371
+ }
372
+ return (
373
+ <MenuItem
374
+ onClick={() => {
375
+ if (onMenuClick) {
376
+ onMenuClick(child)
377
+ }
378
+ }}
379
+ key={child.key}
380
+ className={`sub-li ${isSelected ? 'sub-item-selected' : ''}`}
381
+ >
382
+ <div className='menu-item-content sub-list'>{child.label}</div>
383
+ </MenuItem>
384
+ )
385
+ })}
386
+ </div>
387
+ }
388
+ >
389
+ <SubMenu
390
+ className='menu-item-content sub-li'
391
+ title={
392
+ <div className='sub-list'>
393
+ <div>
394
+ <span
395
+ className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}
396
+ >
397
+ {item.icon}
398
+ </span>
399
+ </div>
400
+ </div>
401
+ }
402
+ ></SubMenu>
403
+ </Popover>
404
+ )
405
+ }
301
406
  return (
302
407
  <SubMenu
303
- popupClassName="rc-menu-submenu-popup"
304
408
  key={item.key}
305
- className="menu-item-content"
409
+ className='menu-item-content'
306
410
  title={
307
- <div className="sub-list">
308
- <div className="menu-item-inner">
309
- <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
411
+ <div className='sub-list'>
412
+ <div className='menu-item-inner'>
413
+ <span
414
+ className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}
415
+ >
416
+ {item.icon}
417
+ </span>
310
418
  {!collapsed && <span className={classNames}>{item.label}</span>}
311
419
  </div>
312
420
  </div>
@@ -323,10 +431,19 @@ export default function LiosLayout(props: LiosLayoutlProps) {
323
431
  if (child.children) {
324
432
  return (
325
433
  <SubMenu
326
- popupClassName="rc-menu-submenu-popup"
327
- className="menu-item-content sub-li"
434
+ className='menu-item-content sub-li'
328
435
  key={child.key}
329
- title={<div className="sub-list">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>}
436
+ title={
437
+ <div className='sub-list'>
438
+ {!collapsed && (
439
+ <span
440
+ className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
441
+ >
442
+ {child.label}
443
+ </span>
444
+ )}
445
+ </div>
446
+ }
330
447
  >
331
448
  {child.children.map((grandChild: any) => {
332
449
  const isSelected = selectKey.includes(grandChild.key)
@@ -337,8 +454,16 @@ export default function LiosLayout(props: LiosLayoutlProps) {
337
454
  }
338
455
  }
339
456
  return (
340
- <MenuItem key={grandChild.key} className="grand-li">
341
- <div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{grandChild.label}</span>}</div>
457
+ <MenuItem key={grandChild.key} className='grand-li'>
458
+ <div className='menu-item-content'>
459
+ {!collapsed && (
460
+ <span
461
+ className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
462
+ >
463
+ {grandChild.label}
464
+ </span>
465
+ )}
466
+ </div>
342
467
  </MenuItem>
343
468
  )
344
469
  })}
@@ -346,8 +471,16 @@ export default function LiosLayout(props: LiosLayoutlProps) {
346
471
  )
347
472
  }
348
473
  return (
349
- <MenuItem key={child.key} className="sub-li">
350
- <div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>
474
+ <MenuItem key={child.key} className='sub-li'>
475
+ <div className='menu-item-content'>
476
+ {!collapsed && (
477
+ <span
478
+ className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
479
+ >
480
+ {child.label}
481
+ </span>
482
+ )}
483
+ </div>
351
484
  </MenuItem>
352
485
  )
353
486
  })}
@@ -363,14 +496,16 @@ export default function LiosLayout(props: LiosLayoutlProps) {
363
496
  return (
364
497
  <MenuItem
365
498
  key={item.key}
366
- className="menu-item-content"
499
+ className='menu-item-content'
367
500
  style={{
368
501
  position: 'relative',
369
- zIndex: 99,
502
+ zIndex: 99
370
503
  }}
371
504
  >
372
- <div className="first-li">
373
- <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
505
+ <div className='first-li'>
506
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>
507
+ {item.icon}
508
+ </span>
374
509
  {!collapsed && <span className={classNames}>{item.label}</span>}
375
510
  </div>
376
511
  </MenuItem>
@@ -382,21 +517,21 @@ export default function LiosLayout(props: LiosLayoutlProps) {
382
517
  </Sider>
383
518
  )}
384
519
 
385
- <div className="layout-main">
520
+ <div className='layout-main'>
386
521
  {!isHideHeader && (
387
- <div className="layout-header">
522
+ <div className='layout-header'>
388
523
  {appName && (
389
- <div className="app-name">
524
+ <div className='app-name'>
390
525
  <strong>{appName}</strong>
391
526
  </div>
392
527
  )}
393
528
 
394
- <div className="layout-header-fill" />
529
+ <div className='layout-header-fill' />
395
530
 
396
- <div className="layout-header-actions">
531
+ <div className='layout-header-actions'>
397
532
  {actions?.map((item, index) => {
398
533
  return (
399
- <div className="actions-item" key={index}>
534
+ <div className='actions-item' key={index}>
400
535
  {item}
401
536
  </div>
402
537
  )
@@ -404,33 +539,40 @@ export default function LiosLayout(props: LiosLayoutlProps) {
404
539
  </div>
405
540
 
406
541
  <Popover
407
- placement="bottom"
542
+ placement='bottom'
408
543
  content={
409
- <UserCard myWalletInfo={myWalletInfo} MyLoginInfo={MyLoginInfo} amountInfo={amountInfo} customAction={customAction} isCopied={isCopied} copyTextToClipboard={copyTextToClipboard} />
544
+ <UserCard
545
+ myWalletInfo={myWalletInfo}
546
+ MyLoginInfo={MyLoginInfo}
547
+ amountInfo={amountInfo}
548
+ customAction={customAction}
549
+ isCopied={isCopied}
550
+ copyTextToClipboard={copyTextToClipboard}
551
+ />
410
552
  }
411
553
  arrow={false}
412
- trigger="click"
413
- onOpenChange={(e) => {
554
+ trigger='click'
555
+ onOpenChange={e => {
414
556
  setInfoOpen(e ? 'up' : 'down')
415
557
  if (!e) return
416
558
  setIsCopied({
417
559
  account: false,
418
560
  id: false,
419
561
  tenantName: false,
420
- tenantId: false,
562
+ tenantId: false
421
563
  })
422
564
  if (myLoginInfoAction) {
423
565
  myLoginInfoAction()
424
566
  }
425
567
  }}
426
568
  >
427
- <div className="layout-header-user">
428
- <img className="avatar" src={avatar} />
429
- <div className="name">{name}</div>
569
+ <div className='layout-header-user'>
570
+ <img className='avatar' src={avatar} />
571
+ <div className='name'>{name}</div>
430
572
  <span
431
573
  style={{
432
574
  display: 'inline-block',
433
- marginLeft: '8px',
575
+ marginLeft: '8px'
434
576
  }}
435
577
  className={`iconfont icon-zhankai ${infoOpen ? (infoOpen === 'up' ? 'up' : 'down') : ''}`}
436
578
  ></span>
@@ -438,7 +580,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
438
580
  </Popover>
439
581
  </div>
440
582
  )}
441
- <div className="layout-content">{props.children}</div>
583
+ <div className='layout-content'>{props.children}</div>
442
584
  </div>
443
585
  </Layout>
444
586
  )
@@ -446,10 +588,17 @@ export default function LiosLayout(props: LiosLayoutlProps) {
446
588
 
447
589
  function Arrow({ collapsed, type }: { collapsed?: boolean; type?: string }) {
448
590
  return (
449
- <svg style={{ transform: !collapsed ? 'rotate(180deg)' : 'rotate(0deg)' }} viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20">
591
+ <svg
592
+ style={{ transform: !collapsed ? 'rotate(180deg)' : 'rotate(0deg)' }}
593
+ viewBox='0 0 1024 1024'
594
+ version='1.1'
595
+ xmlns='http://www.w3.org/2000/svg'
596
+ width='20'
597
+ height='20'
598
+ >
450
599
  <path
451
- fill="817F9B"
452
- d="M564.6336 775.168a41.5744 41.5744 0 0 0-13.312-28.672l-230.4-234.4448 229.9904-234.1888a42.0864 42.0864 0 0 0-26.3168-73.0112 42.0864 42.0864 0 0 0-30.6176 11.264L231.0656 481.024a41.984 41.984 0 0 0-2.4576 59.5968l1.9968 2.048 263.7824 265.6256a41.984 41.984 0 0 0 70.2464-33.0752z m254.5152 0a41.472 41.472 0 0 0-13.312-28.672L575.488 512l229.9904-234.1376a41.984 41.984 0 1 0-56.9344-61.7984L485.632 480.9728a42.0864 42.0864 0 0 0-2.4064 59.6992l0.8704 0.9216 0.8704 0.8192 0.4096 0.4096 263.5776 265.4208a41.984 41.984 0 0 0 70.1952-33.0752z"
600
+ fill='#7D8295'
601
+ d='M564.6336 775.168a41.5744 41.5744 0 0 0-13.312-28.672l-230.4-234.4448 229.9904-234.1888a42.0864 42.0864 0 0 0-26.3168-73.0112 42.0864 42.0864 0 0 0-30.6176 11.264L231.0656 481.024a41.984 41.984 0 0 0-2.4576 59.5968l1.9968 2.048 263.7824 265.6256a41.984 41.984 0 0 0 70.2464-33.0752z m254.5152 0a41.472 41.472 0 0 0-13.312-28.672L575.488 512l229.9904-234.1376a41.984 41.984 0 1 0-56.9344-61.7984L485.632 480.9728a42.0864 42.0864 0 0 0-2.4064 59.6992l0.8704 0.9216 0.8704 0.8192 0.4096 0.4096 263.5776 265.4208a41.984 41.984 0 0 0 70.1952-33.0752z'
453
602
  ></path>
454
603
  </svg>
455
604
  )
@@ -466,7 +615,10 @@ type SearchProps = {
466
615
  function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPath }: SearchProps) {
467
616
  useEffect(() => {
468
617
  const handleKeyDown = (event: KeyboardEvent) => {
469
- if ((navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) && event.key.toLowerCase() === 'k') {
618
+ if (
619
+ (navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) &&
620
+ event.key.toLowerCase() === 'k'
621
+ ) {
470
622
  event.preventDefault()
471
623
  const searchInput = document.querySelector('#menu-input') as HTMLInputElement
472
624
  if (searchInput) {
@@ -525,7 +677,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
525
677
  search(menuList as Router[])
526
678
  setSearchResult(searchResults)
527
679
  function search(data: Router[]) {
528
- data.forEach((item) => {
680
+ data.forEach(item => {
529
681
  if (typeof item.label === 'string' && item.label.includes(value.toLocaleUpperCase())) {
530
682
  searchResults.push(item)
531
683
  }
@@ -539,7 +691,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
539
691
  const enter = (item: Router) => {
540
692
  setIsFocused(false)
541
693
  //如果搜索历史里面有这个item,就不再添加
542
- if (searchHistory.findIndex((i) => i.key === item.key) === -1) {
694
+ if (searchHistory.findIndex(i => i.key === item.key) === -1) {
543
695
  setSearchHistory([...searchHistory, item])
544
696
  }
545
697
  //如果是目录就找到目录下第一个菜单进入
@@ -566,45 +718,43 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
566
718
  }
567
719
 
568
720
  const deleteHistory = (item: Router) => {
569
- setSearchHistory(searchHistory.filter((i) => i.key !== item.key))
721
+ setSearchHistory(searchHistory.filter(i => i.key !== item.key))
570
722
  }
571
723
  return (
572
724
  <>
573
- {collapsed ? (
574
- <div className="search-mobile-console">
575
- <div className="search-icon">
576
- <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
577
- <path
578
- fill={type === 'console' ? '#C2B7F6' : '#817F9B'}
579
- d="M962.048 907.776l-229.0176-229.0176a384.3072 384.3072 0 1 0-54.272 54.272l229.0176 229.0176a38.4 38.4 0 0 0 54.272-54.272zM436.1216 743.0656a306.944 306.944 0 1 1 306.944-306.944 307.3024 307.3024 0 0 1-306.944 306.944z"
580
- ></path>
581
- </svg>
582
- </div>
583
- </div>
584
- ) : (
585
- <div className="search-container">
586
- <div className="search">
587
- <div className="search-bg-mask">
588
- <img src="https://cfel-front.oss-cn-hangzhou.aliyuncs.com/logo/base-component/menu-search-bg.png" />
725
+ {!collapsed && (
726
+ <div className='search-container'>
727
+ <div className='search'>
728
+ <div className='search-bg-mask'>
729
+ <img src='https://cfel-front.oss-cn-hangzhou.aliyuncs.com/logo/base-component/menu-search-bg.png' />
589
730
  </div>
590
731
  <input
591
- autoComplete="off"
592
- id="menu-input"
732
+ autoComplete='off'
733
+ id='menu-input'
593
734
  value={searchTerm}
594
- onChange={(e) => handleSearch(e.target.value)}
595
- className="search-input"
596
- placeholder="搜索菜单..."
735
+ onChange={e => handleSearch(e.target.value)}
736
+ className='search-input'
737
+ placeholder='搜索菜单...'
597
738
  onFocus={() => setIsFocused(true)}
598
739
  />
599
- <div className="search-icon">
600
- <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
740
+ <div className='search-icon'>
741
+ <svg
742
+ viewBox='0 0 1024 1024'
743
+ version='1.1'
744
+ xmlns='http://www.w3.org/2000/svg'
745
+ width='18'
746
+ height='18'
747
+ >
601
748
  <path
602
749
  fill={type === 'console' ? '#C2B7F6' : '#817F9B'}
603
- d="M962.048 907.776l-229.0176-229.0176a384.3072 384.3072 0 1 0-54.272 54.272l229.0176 229.0176a38.4 38.4 0 0 0 54.272-54.272zM436.1216 743.0656a306.944 306.944 0 1 1 306.944-306.944 307.3024 307.3024 0 0 1-306.944 306.944z"
750
+ d='M962.048 907.776l-229.0176-229.0176a384.3072 384.3072 0 1 0-54.272 54.272l229.0176 229.0176a38.4 38.4 0 0 0 54.272-54.272zM436.1216 743.0656a306.944 306.944 0 1 1 306.944-306.944 307.3024 307.3024 0 0 1-306.944 306.944z'
604
751
  ></path>
605
752
  </svg>
606
753
  </div>
607
- <div className="search-command" style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}>
754
+ <div
755
+ className='search-command'
756
+ style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}
757
+ >
608
758
  {navigator.platform.toLowerCase().includes('mac') ? '⌘' : 'Ctrl+'}K
609
759
  </div>
610
760
  </div>
@@ -612,23 +762,32 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
612
762
  {isFocused && (
613
763
  <>
614
764
  {searchTerm ? (
615
- <List split={false} className="lists" size="small" bordered dataSource={searchResult} renderItem={(item) => <List.Item onClick={() => enter(item)}>{item.label}</List.Item>} />
765
+ <List
766
+ split={false}
767
+ className='lists'
768
+ size='small'
769
+ bordered
770
+ dataSource={searchResult}
771
+ renderItem={item => (
772
+ <List.Item onClick={() => enter(item)}>{item.label}</List.Item>
773
+ )}
774
+ />
616
775
  ) : (
617
776
  <List
618
777
  split={false}
619
- className="lists"
620
- header="最近访问"
621
- size="small"
778
+ className='lists'
779
+ header='最近访问'
780
+ size='small'
622
781
  bordered
623
782
  dataSource={searchHistory}
624
- renderItem={(item) => {
783
+ renderItem={item => {
625
784
  return (
626
785
  <div
627
786
  className={'search-item'}
628
787
  style={{
629
788
  display: 'flex',
630
789
  justifyContent: 'space-between',
631
- alignItems: 'center',
790
+ alignItems: 'center'
632
791
  }}
633
792
  >
634
793
  <List.Item onClick={() => enter(item)}>{item.label}</List.Item>