@@ -9,12 +9,32 @@ import { useTranslation } from 'react-i18next'
9
9
import ContextProvider from 'frontend/state/ContextProvider'
10
10
import { NavLink } from 'react-router-dom'
11
11
12
- import { CircularProgress } from '@mui/material'
12
+ import { CircularProgress , SvgIcon } from '@mui/material'
13
13
import UninstallModal from 'frontend/components/UI/UninstallModal'
14
14
import GameContext from '../GameContext'
15
15
import { openInstallGameModal } from 'frontend/state/InstallGameModal'
16
16
import useGlobalState from 'frontend/state/GlobalStateV2'
17
17
18
+ import {
19
+ ArrowUpward as ArrowUpwardIcon ,
20
+ CheckCircle as CheckCircleIcon ,
21
+ Delete as DeleteIcon ,
22
+ DesktopAccessDisabled as DesktopAccessDisabledIcon ,
23
+ DriveFileMove as DriveFileMoveIcon ,
24
+ Edit as EditIcon ,
25
+ FindInPage as FindInPageIcon ,
26
+ Folder as FolderIcon ,
27
+ FormatListBulleted as FormatListBulletedIcon ,
28
+ Info as InfoIcon ,
29
+ PictureInPicture as PictureInPictureIcon ,
30
+ Repartition as RepartitionIcon ,
31
+ Shortcut as ShortcutIcon ,
32
+ ShoppingCart as ShoppingCartIcon
33
+ } from '@mui/icons-material'
34
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
35
+ import { faLinux , faSteam } from '@fortawesome/free-brands-svg-icons'
36
+ import { faWineGlass } from '@fortawesome/free-solid-svg-icons'
37
+
18
38
interface Props {
19
39
appName : string
20
40
isInstalled : boolean
@@ -267,56 +287,63 @@ export default function GamesSubmenu({
267
287
{ isSideloaded && (
268
288
< button
269
289
onClick = { async ( ) => handleEdit ( ) }
270
- className = "link button is-text is-link"
290
+ className = "link button is-text is-link buttonWithIcon "
271
291
>
292
+ < EditIcon />
272
293
{ t ( 'button.sideload.edit' , 'Edit App/Game' ) }
273
294
</ button >
274
295
) } { ' ' }
275
296
< button
276
297
onClick = { ( ) => handleShortcuts ( ) }
277
- className = "link button is-text is-link"
298
+ className = "link button is-text is-link buttonWithIcon "
278
299
>
300
+ < ShortcutIcon />
279
301
{ hasShortcuts
280
302
? t ( 'submenu.removeShortcut' , 'Remove shortcuts' )
281
303
: t ( 'submenu.addShortcut' , 'Add shortcut' ) }
282
304
</ button >
283
305
< button
284
306
onClick = { async ( ) => setShowUninstallModal ( true ) }
285
- className = "link button is-text is-link"
307
+ className = "link button is-text is-link buttonWithIcon "
286
308
disabled = { is . playing }
287
309
>
310
+ < DeleteIcon />
288
311
{ t ( 'button.uninstall' , 'Uninstall' ) }
289
312
</ button > { ' ' }
290
313
{ ! isSideloaded && ! isThirdPartyManaged && (
291
314
< button
292
315
onClick = { async ( ) => handleUpdate ( ) }
293
- className = "link button is-text is-link"
316
+ className = "link button is-text is-link buttonWithIcon "
294
317
disabled = { disableUpdate }
295
318
>
319
+ < ArrowUpwardIcon />
296
320
{ t ( 'button.force_update' , 'Force Update if Available' ) }
297
321
</ button >
298
322
) } { ' ' }
299
323
{ ! isSideloaded && ! isThirdPartyManaged && (
300
324
< button
301
325
onClick = { async ( ) => handleMoveInstall ( ) }
302
- className = "link button is-text is-link"
326
+ className = "link button is-text is-link buttonWithIcon "
303
327
>
328
+ < DriveFileMoveIcon />
304
329
{ t ( 'submenu.move' , 'Move Game' ) }
305
330
</ button >
306
331
) } { ' ' }
307
332
{ ! isSideloaded && ! isThirdPartyManaged && (
308
333
< button
309
334
onClick = { async ( ) => handleChangeInstall ( ) }
310
- className = "link button is-text is-link"
335
+ className = "link button is-text is-link buttonWithIcon "
311
336
>
337
+ < FindInPageIcon />
312
338
{ t ( 'submenu.change' , 'Change Install Location' ) }
313
339
</ button >
314
340
) } { ' ' }
315
341
{ ! isSideloaded && ! isThirdPartyManaged && (
316
342
< button
317
343
onClick = { async ( ) => handleRepair ( appName ) }
318
- className = "link button is-text is-link"
344
+ className = "link button is-text is-link buttonWithIcon "
319
345
>
346
+ < CheckCircleIcon />
320
347
{ t ( 'submenu.verify' , 'Verify and Repair' ) }
321
348
</ button >
322
349
) } { ' ' }
@@ -326,9 +353,10 @@ export default function GamesSubmenu({
326
353
refreshCircle ( )
327
354
) : (
328
355
< button
329
- className = "link button is-text is-link"
356
+ className = "link button is-text is-link buttonWithIcon "
330
357
onClick = { handleEosOverlay }
331
358
>
359
+ < PictureInPictureIcon />
332
360
{ eosOverlayEnabled
333
361
? t ( 'submenu.disableEosOverlay' , 'Disable EOS Overlay' )
334
362
: t ( 'submenu.enableEosOverlay' , 'Enable EOS Overlay' ) }
@@ -341,72 +369,87 @@ export default function GamesSubmenu({
341
369
) : (
342
370
< button
343
371
onClick = { async ( ) => handleAddToSteam ( ) }
344
- className = "link button is-text is-link"
372
+ className = "link button is-text is-link buttonWithIcon "
345
373
>
374
+ < SvgIcon >
375
+ < FontAwesomeIcon icon = { faSteam } />
376
+ </ SvgIcon >
346
377
{ addedToSteam
347
378
? t ( 'submenu.removeFromSteam' , 'Remove from Steam' )
348
379
: t ( 'submenu.addToSteam' , 'Add to Steam' ) }
349
380
</ button >
350
381
) }
351
382
< button
352
383
onClick = { ( ) => openGameCategoriesModal ( gameInfo ) }
353
- className = "link button is-text is-link"
384
+ className = "link button is-text is-link buttonWithIcon "
354
385
>
386
+ < FormatListBulletedIcon />
355
387
{ t ( 'submenu.categories' , 'Categories' ) }
356
388
</ button >
357
389
{ ! isSideloaded && storeUrl && (
358
390
< NavLink
359
- className = "link button is-text is-link"
391
+ className = "link button is-text is-link buttonWithIcon "
360
392
to = { `/store-page?store-url=${ storeUrl } ` }
361
393
>
394
+ < ShoppingCartIcon />
362
395
{ t ( 'submenu.store' ) }
363
396
</ NavLink >
364
397
) }
365
398
{ ! isSideloaded && ! ! changelog ?. length && (
366
399
< button
367
400
onClick = { ( ) => handleChangeLog ( ) }
368
- className = "link button is-text is-link"
401
+ className = "link button is-text is-link buttonWithIcon "
369
402
>
403
+ < InfoIcon />
370
404
{ t ( 'button.changelog' , 'Show Changelog' ) }
371
405
</ button >
372
406
) } { ' ' }
373
407
{ ! isSideloaded && isLinux && (
374
408
< button
375
409
onClick = { ( ) => createNewWindow ( protonDBurl ) }
376
- className = "link button is-text is-link"
410
+ className = "link button is-text is-link buttonWithIcon "
377
411
>
412
+ < SvgIcon >
413
+ < FontAwesomeIcon icon = { faLinux } />
414
+ </ SvgIcon >
378
415
{ t ( 'submenu.protondb' , 'Check Compatibility' ) }
379
416
</ button >
380
417
) }
381
418
{ onShowRequirements && (
382
419
< button
383
420
onClick = { async ( ) => onShowRequirements ( ) }
384
- className = "link button is-text is-link"
421
+ className = "link button is-text is-link buttonWithIcon "
385
422
>
423
+ < DesktopAccessDisabledIcon />
386
424
{ t ( 'game.requirements' , 'Requirements' ) }
387
425
</ button >
388
426
) }
389
427
{ showModifyItem && (
390
428
< button
391
429
onClick = { async ( ) => onShowModifyInstall ( ) }
392
- className = "link button is-text is-link"
430
+ className = "link button is-text is-link buttonWithIcon "
393
431
>
432
+ < RepartitionIcon />
394
433
{ t ( 'game.modify' , 'Modify Installation' ) }
395
434
</ button >
396
435
) }
397
436
{ isInstalled && (
398
437
< button
399
438
onClick = { async ( ) => onBrowseFiles ( ) }
400
- className = "link button is-text is-link"
439
+ className = "link button is-text is-link buttonWithIcon "
401
440
>
441
+ < FolderIcon />
402
442
{ t ( 'button.browse_files' , 'Browse Files' ) }
403
443
</ button >
404
444
) }
405
445
{ hasWine && (
406
446
< button
407
447
onClick = { async ( ) => onBrowsePrefix ( ) }
408
- className = "link button is-text is-link"
448
+ className = "link button is-text is-link buttonWithIcon "
409
449
>
450
+ < SvgIcon >
451
+ < FontAwesomeIcon icon = { faWineGlass } />
452
+ </ SvgIcon >
410
453
{ t ( 'button.browse_wine_prefix' , 'Browse Wine Prefix' ) }
411
454
</ button >
412
455
) }
0 commit comments