cfel-base-components 2.5.55 → 2.5.57

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
 
@@ -107,7 +109,6 @@ export default function LiosLayout(props: LiosLayoutlProps) {
107
109
 
108
110
  // 初始化展开菜单
109
111
  const [openKeys, setOpenKeys] = useState<string[]>(defaultOpenKeys || [])
110
- const [activeThirdLevelMenu, setActiveThirdLevelMenu] = useState<string | null>(null)
111
112
 
112
113
  //处理搜索菜单后自动展开目录
113
114
  const findParentMenu = (menuList: any[], pathname: string) => {
@@ -134,11 +135,16 @@ export default function LiosLayout(props: LiosLayoutlProps) {
134
135
  //在这里找到当前菜单的上层目录
135
136
  const paMenu = findParentMenu(menuList, '/' + location.pathname.split('/')[2])
136
137
  //去重
137
- const set = new Set(paMenu.map((item) => item.key))
138
+ const set = new Set(paMenu.map(item => item.key))
139
+
138
140
  openKeys.forEach((element: string) => {
139
141
  set.add(element)
140
142
  })
141
143
  setOpenKeys(Array.from(set))
144
+
145
+ // 设置选中的菜单项
146
+ const selectedPath = findKeyPath('/' + location.pathname.split('/')[2])
147
+ setSelectKey(selectedPath)
142
148
  }, [location.pathname])
143
149
 
144
150
  // 初始化折叠状态
@@ -147,20 +153,20 @@ export default function LiosLayout(props: LiosLayoutlProps) {
147
153
  account: false,
148
154
  id: false,
149
155
  tenantName: false,
150
- tenantId: false,
156
+ tenantId: false
151
157
  })
152
158
 
153
- const onOpenChange: MenuProps['onOpenChange'] = (keys) => {
159
+ const onOpenChange: MenuProps['onOpenChange'] = keys => {
154
160
  // Find the last opened key
155
- const latestOpenKey = keys.find((key) => openKeys.indexOf(key) === -1)
161
+ const latestOpenKey = keys.find(key => openKeys.indexOf(key) === -1)
156
162
 
157
163
  if (latestOpenKey) {
158
164
  // If opening a new key
159
- const rootSubmenuKeys = menuList.map((item) => item.key)
165
+ const rootSubmenuKeys = menuList.map(item => item.key)
160
166
 
161
167
  if (rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
162
168
  // If it's a third level menu, only keep its parent menu open
163
- const parentKey = keys.find((key) => rootSubmenuKeys.includes(key))
169
+ const parentKey = keys.find(key => rootSubmenuKeys.includes(key))
164
170
  setOpenKeys(parentKey ? [parentKey, latestOpenKey] : [latestOpenKey])
165
171
  } else {
166
172
  // If it's a second level menu, only keep it open
@@ -182,7 +188,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
182
188
  // 菜单动画
183
189
  const collapseNode = () => {
184
190
  return {
185
- height: 0,
191
+ height: 0
186
192
  }
187
193
  }
188
194
  const expandNode = (node: any) => {
@@ -196,33 +202,26 @@ export default function LiosLayout(props: LiosLayoutlProps) {
196
202
  onEnterStart: collapseNode,
197
203
  onEnterActive: expandNode,
198
204
  onLeaveStart: expandNode,
199
- onLeaveActive: collapseNode,
205
+ onLeaveActive: collapseNode
200
206
  }
201
207
 
202
208
  const verticalMotion = {
203
209
  motionName: 'rc-menu-open-zoom',
204
210
  motionAppear: true,
205
211
  motionEnter: true,
206
- motionLeave: true,
212
+ motionLeave: true
207
213
  }
208
214
 
209
- useEffect(() => {
210
- return () => {
211
- setActiveThirdLevelMenu(null)
212
- setOpenKeys([])
213
- }
214
- }, [])
215
-
216
215
  return (
217
- <Layout className="layout-warps">
216
+ <Layout className='layout-warps'>
218
217
  {Array.isArray(menuList) && menuList.length > 0 && (
219
218
  <Sider
220
- className="layout-side"
219
+ className='layout-side'
221
220
  collapsible
222
221
  trigger={null}
223
222
  collapsed={collapsed}
224
223
  width={260}
225
- onCollapse={(value) => {
224
+ onCollapse={value => {
226
225
  if (onCollapse) {
227
226
  onCollapse(value)
228
227
  }
@@ -230,10 +229,13 @@ export default function LiosLayout(props: LiosLayoutlProps) {
230
229
  setCollapsed(value)
231
230
  }}
232
231
  >
233
- <div className="layout-side-mask1"></div>
234
- <div className="layout-side-mask2"></div>
232
+ <div className='layout-side-mask1'></div>
233
+ <div className='layout-side-mask2'></div>
235
234
 
236
- <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
+ >
237
239
  <div
238
240
  onClick={() => {
239
241
  window.open('/home')
@@ -243,8 +245,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
243
245
  {collapsed && <img className={`logo-sub`} src={subLogoUrl} />}
244
246
  {/* {collapsed && <img className={`logo-base sub-logo`} src={logo || subLogoUrl} />} */}
245
247
  </div>
246
-
247
- {/* {!collapsed && (
248
+ {!collapsed && (
248
249
  <div
249
250
  className='trigger'
250
251
  onClick={() => {
@@ -253,13 +254,13 @@ export default function LiosLayout(props: LiosLayoutlProps) {
253
254
  >
254
255
  <Arrow collapsed={true} type={type} />
255
256
  </div>
256
- )} */}
257
+ )}
257
258
  </div>
258
259
 
259
260
  {collapsed && (
260
261
  <div style={{ width: '100%', display: 'flex', justifyContent: 'center' }}>
261
262
  <div
262
- className="close-trigger"
263
+ className='close-trigger'
263
264
  onClick={() => {
264
265
  localStorage.setItem('layout_collapsed', 'false')
265
266
  setCollapsed(false)
@@ -270,15 +271,22 @@ export default function LiosLayout(props: LiosLayoutlProps) {
270
271
  </div>
271
272
  )}
272
273
 
273
- <div style={{ height: 24 }}></div>
274
+ {!collapsed && <div style={{ height: 24 }}></div>}
274
275
 
275
276
  <div style={{ width: '100%', padding: '0 16px' }}>
276
- <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
+ />
277
285
  </div>
278
286
 
279
287
  {!collapsed && <div style={{ height: 12 }}></div>}
280
288
 
281
- <div className="layout-menu">
289
+ <div className='layout-menu'>
282
290
  <RcMenu
283
291
  mode={collapsed ? 'vertical' : 'inline'}
284
292
  className={`menu${collapsed ? '-collapsed' : ''}`}
@@ -292,7 +300,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
292
300
  onMenuClick(item)
293
301
  }
294
302
  }}
295
- triggerSubMenuAction="hover"
303
+ triggerSubMenuAction='hover'
296
304
  >
297
305
  {menuList.map((item: any) => {
298
306
  const isSelected = selectKey.includes(item.key)
@@ -301,15 +309,112 @@ export default function LiosLayout(props: LiosLayoutlProps) {
301
309
  if (isSelected) {
302
310
  classNames += ' submenu-selected'
303
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
+ }
304
406
  return (
305
407
  <SubMenu
306
- popupClassName="rc-menu-submenu-popup"
307
408
  key={item.key}
308
- className="menu-item-content"
409
+ className='menu-item-content'
309
410
  title={
310
- <div className="sub-list">
311
- <div className="menu-item-inner">
312
- <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>
313
418
  {!collapsed && <span className={classNames}>{item.label}</span>}
314
419
  </div>
315
420
  </div>
@@ -326,10 +431,19 @@ export default function LiosLayout(props: LiosLayoutlProps) {
326
431
  if (child.children) {
327
432
  return (
328
433
  <SubMenu
329
- popupClassName="rc-menu-submenu-popup"
330
- className="menu-item-content sub-li"
434
+ className='menu-item-content sub-li'
331
435
  key={child.key}
332
- 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
+ }
333
447
  >
334
448
  {child.children.map((grandChild: any) => {
335
449
  const isSelected = selectKey.includes(grandChild.key)
@@ -340,8 +454,16 @@ export default function LiosLayout(props: LiosLayoutlProps) {
340
454
  }
341
455
  }
342
456
  return (
343
- <MenuItem key={grandChild.key} className="grand-li">
344
- <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>
345
467
  </MenuItem>
346
468
  )
347
469
  })}
@@ -349,8 +471,16 @@ export default function LiosLayout(props: LiosLayoutlProps) {
349
471
  )
350
472
  }
351
473
  return (
352
- <MenuItem key={child.key} className="sub-li">
353
- <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>
354
484
  </MenuItem>
355
485
  )
356
486
  })}
@@ -366,14 +496,16 @@ export default function LiosLayout(props: LiosLayoutlProps) {
366
496
  return (
367
497
  <MenuItem
368
498
  key={item.key}
369
- className="menu-item-content"
499
+ className='menu-item-content'
370
500
  style={{
371
501
  position: 'relative',
372
- zIndex: 99,
502
+ zIndex: 99
373
503
  }}
374
504
  >
375
- <div className="first-li">
376
- <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>
377
509
  {!collapsed && <span className={classNames}>{item.label}</span>}
378
510
  </div>
379
511
  </MenuItem>
@@ -385,21 +517,21 @@ export default function LiosLayout(props: LiosLayoutlProps) {
385
517
  </Sider>
386
518
  )}
387
519
 
388
- <div className="layout-main">
520
+ <div className='layout-main'>
389
521
  {!isHideHeader && (
390
- <div className="layout-header">
522
+ <div className='layout-header'>
391
523
  {appName && (
392
- <div className="app-name">
524
+ <div className='app-name'>
393
525
  <strong>{appName}</strong>
394
526
  </div>
395
527
  )}
396
528
 
397
- <div className="layout-header-fill" />
529
+ <div className='layout-header-fill' />
398
530
 
399
- <div className="layout-header-actions">
531
+ <div className='layout-header-actions'>
400
532
  {actions?.map((item, index) => {
401
533
  return (
402
- <div className="actions-item" key={index}>
534
+ <div className='actions-item' key={index}>
403
535
  {item}
404
536
  </div>
405
537
  )
@@ -407,33 +539,40 @@ export default function LiosLayout(props: LiosLayoutlProps) {
407
539
  </div>
408
540
 
409
541
  <Popover
410
- placement="bottom"
542
+ placement='bottom'
411
543
  content={
412
- <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
+ />
413
552
  }
414
553
  arrow={false}
415
- trigger="click"
416
- onOpenChange={(e) => {
554
+ trigger='click'
555
+ onOpenChange={e => {
417
556
  setInfoOpen(e ? 'up' : 'down')
418
557
  if (!e) return
419
558
  setIsCopied({
420
559
  account: false,
421
560
  id: false,
422
561
  tenantName: false,
423
- tenantId: false,
562
+ tenantId: false
424
563
  })
425
564
  if (myLoginInfoAction) {
426
565
  myLoginInfoAction()
427
566
  }
428
567
  }}
429
568
  >
430
- <div className="layout-header-user">
431
- <img className="avatar" src={avatar} />
432
- <div className="name">{name}</div>
569
+ <div className='layout-header-user'>
570
+ <img className='avatar' src={avatar} />
571
+ <div className='name'>{name}</div>
433
572
  <span
434
573
  style={{
435
574
  display: 'inline-block',
436
- marginLeft: '8px',
575
+ marginLeft: '8px'
437
576
  }}
438
577
  className={`iconfont icon-zhankai ${infoOpen ? (infoOpen === 'up' ? 'up' : 'down') : ''}`}
439
578
  ></span>
@@ -441,7 +580,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
441
580
  </Popover>
442
581
  </div>
443
582
  )}
444
- <div className="layout-content">{props.children}</div>
583
+ <div className='layout-content'>{props.children}</div>
445
584
  </div>
446
585
  </Layout>
447
586
  )
@@ -449,10 +588,17 @@ export default function LiosLayout(props: LiosLayoutlProps) {
449
588
 
450
589
  function Arrow({ collapsed, type }: { collapsed?: boolean; type?: string }) {
451
590
  return (
452
- <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
+ >
453
599
  <path
454
- fill="817F9B"
455
- 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'
456
602
  ></path>
457
603
  </svg>
458
604
  )
@@ -469,7 +615,10 @@ type SearchProps = {
469
615
  function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPath }: SearchProps) {
470
616
  useEffect(() => {
471
617
  const handleKeyDown = (event: KeyboardEvent) => {
472
- 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
+ ) {
473
622
  event.preventDefault()
474
623
  const searchInput = document.querySelector('#menu-input') as HTMLInputElement
475
624
  if (searchInput) {
@@ -528,7 +677,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
528
677
  search(menuList as Router[])
529
678
  setSearchResult(searchResults)
530
679
  function search(data: Router[]) {
531
- data.forEach((item) => {
680
+ data.forEach(item => {
532
681
  if (typeof item.label === 'string' && item.label.includes(value.toLocaleUpperCase())) {
533
682
  searchResults.push(item)
534
683
  }
@@ -542,7 +691,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
542
691
  const enter = (item: Router) => {
543
692
  setIsFocused(false)
544
693
  //如果搜索历史里面有这个item,就不再添加
545
- if (searchHistory.findIndex((i) => i.key === item.key) === -1) {
694
+ if (searchHistory.findIndex(i => i.key === item.key) === -1) {
546
695
  setSearchHistory([...searchHistory, item])
547
696
  }
548
697
  //如果是目录就找到目录下第一个菜单进入
@@ -569,45 +718,43 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
569
718
  }
570
719
 
571
720
  const deleteHistory = (item: Router) => {
572
- setSearchHistory(searchHistory.filter((i) => i.key !== item.key))
721
+ setSearchHistory(searchHistory.filter(i => i.key !== item.key))
573
722
  }
574
723
  return (
575
724
  <>
576
- {collapsed ? (
577
- <div className="search-mobile-console">
578
- <div className="search-icon">
579
- <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
580
- <path
581
- fill={type === 'console' ? '#C2B7F6' : '#817F9B'}
582
- 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"
583
- ></path>
584
- </svg>
585
- </div>
586
- </div>
587
- ) : (
588
- <div className="search-container">
589
- <div className="search">
590
- <div className="search-bg-mask">
591
- <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' />
592
730
  </div>
593
731
  <input
594
- autoComplete="off"
595
- id="menu-input"
732
+ autoComplete='off'
733
+ id='menu-input'
596
734
  value={searchTerm}
597
- onChange={(e) => handleSearch(e.target.value)}
598
- className="search-input"
599
- placeholder="搜索菜单..."
735
+ onChange={e => handleSearch(e.target.value)}
736
+ className='search-input'
737
+ placeholder='搜索菜单...'
600
738
  onFocus={() => setIsFocused(true)}
601
739
  />
602
- <div className="search-icon">
603
- <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
+ >
604
748
  <path
605
749
  fill={type === 'console' ? '#C2B7F6' : '#817F9B'}
606
- 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'
607
751
  ></path>
608
752
  </svg>
609
753
  </div>
610
- <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
+ >
611
758
  {navigator.platform.toLowerCase().includes('mac') ? '⌘' : 'Ctrl+'}K
612
759
  </div>
613
760
  </div>
@@ -615,23 +762,32 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
615
762
  {isFocused && (
616
763
  <>
617
764
  {searchTerm ? (
618
- <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
+ />
619
775
  ) : (
620
776
  <List
621
777
  split={false}
622
- className="lists"
623
- header="最近访问"
624
- size="small"
778
+ className='lists'
779
+ header='最近访问'
780
+ size='small'
625
781
  bordered
626
782
  dataSource={searchHistory}
627
- renderItem={(item) => {
783
+ renderItem={item => {
628
784
  return (
629
785
  <div
630
786
  className={'search-item'}
631
787
  style={{
632
788
  display: 'flex',
633
789
  justifyContent: 'space-between',
634
- alignItems: 'center',
790
+ alignItems: 'center'
635
791
  }}
636
792
  >
637
793
  <List.Item onClick={() => enter(item)}>{item.label}</List.Item>