better code
Massimo Melina committed
May 20, 2023 at 18:53 UTC
6346d88ae213ca5868ce365081c99271d6952580
1 file changed
+27
-27
frontend/src/icons.ts
+27
-27
@@ -3,32 +3,32 @@
3
import { state, useSnapState } from './state'
4
import { createElement as h, memo } from 'react'
5
6
-const SYS_ICONS = {
7
- login: '👤:user',
8
- user: '👤:user',
9
- filter: '✂',
10
- search: '🔍',
11
- search_off: '❌:cancel',
12
- stop: '⏹️',
13
- settings: '⚙:cog',
14
- archive: '📦',
15
- logout: '🚪',
16
- home: '🏠',
17
- parent: '⬅:left',
18
- folder: '📂',
19
- file: '📄:doc',
20
- spinner: '🎲:spin6 spinner',
21
- password: '🗝️:key',
22
- download: '⬇️',
23
- upload: '⬆️',
24
- reload: '🔄:reload',
25
- lock: '🔒:lock',
26
- admin: '👑:crown',
27
- check: '✔️',
28
- to_start: '◀',
29
- to_end: '▶',
30
- menu: '☰',
31
- list: '☰:menu'
6
+const SYS_ICONS: Record<string, string[]> = {
7
+ login: ['👤','user'],
8
+ user: ['👤','user'],
9
+ filter: ['✂'],
10
+ search: ['🔍'],
11
+ search_off: ['❌','cancel'],
12
+ stop: ['⏹️'],
13
+ settings: ['⚙','cog'],
14
+ archive: ['📦'],
15
+ logout: ['🚪'],
16
+ home: ['🏠'],
17
+ parent: ['⬅','left'],
18
+ folder: ['📂'],
19
+ file: ['📄','doc'],
20
+ spinner: ['🎲','spin6 spinner'],
21
+ password: ['🗝️','key'],
22
+ download: ['⬇️'],
23
+ upload: ['⬆️'],
24
+ reload: ['🔄','reload'],
25
+ lock: ['🔒','lock'],
26
+ admin: ['👑','crown'],
27
+ check: ['✔️'],
28
+ to_start: ['◀'],
29
+ to_end: ['▶'],
30
+ menu: ['☰'],
31
+ list: ['☰','menu']
32
}
33
34
document.fonts.ready.then(async ()=> {
@@ -40,7 +40,7 @@ document.fonts.ready.then(async ()=> {
40
41
interface IconProps { name:string, className?:string, alt?:string, [rest:string]: any }
42
export const Icon = memo(({ name, alt, className='', ...props }: IconProps) => {
43
- const [emoji,clazz] = ((SYS_ICONS as any)[name] || name).split(':')
43
+ const [emoji,clazz] = SYS_ICONS[name] || name.split(':')
44
const { iconsClass } = useSnapState()
45
className += ' icon'
46
const nameIsEmoji = name.length <= 2