@@ -21,6 +21,7 @@ import {
21
21
} from '../../actions/preferences' ;
22
22
import { useP5Version } from '../../hooks/useP5Version' ;
23
23
import VersionPicker from '../VersionPicker' ;
24
+ import { updateFileContent } from '../../actions/files' ;
24
25
25
26
export default function Preferences ( ) {
26
27
const { t } = useTranslation ( ) ;
@@ -42,7 +43,7 @@ export default function Preferences() {
42
43
} = useSelector ( ( state ) => state . preferences ) ;
43
44
44
45
const [ state , setState ] = useState ( { fontSize } ) ;
45
- const { versionInfo } = useP5Version ( ) ;
46
+ const { versionInfo, indexID } = useP5Version ( ) ;
46
47
47
48
function onFontInputChange ( event ) {
48
49
const INTEGER_REGEX = / ^ [ 0 - 9 \b ] + $ / ;
@@ -476,7 +477,7 @@ export default function Preferences() {
476
477
</ h4 >
477
478
< div >
478
479
< VersionPicker />
479
- { versionInfo ? (
480
+ { versionInfo && indexID ? (
480
481
< p className = "preference__paragraph" >
481
482
{ t ( 'Preferences.LibraryVersionInfo' ) }
482
483
</ p >
@@ -496,7 +497,7 @@ export default function Preferences() {
496
497
) }
497
498
</ div >
498
499
</ div >
499
- { versionInfo && (
500
+ { versionInfo && indexID && (
500
501
< >
501
502
< div className = "preference" >
502
503
< h4 className = "preference__title" >
@@ -505,26 +506,37 @@ export default function Preferences() {
505
506
< div className = "preference__options" >
506
507
< input
507
508
type = "radio"
508
- onChange = { ( ) => dispatch ( setAutosave ( true ) ) }
509
+ onChange = { ( ) =>
510
+ dispatch (
511
+ updateFileContent ( indexID , versionInfo . setP5Sound ( true ) )
512
+ )
513
+ }
509
514
aria-label = { t ( 'Preferences.AutosaveOnARIA' ) }
510
515
name = "soundaddon"
511
516
id = "soundaddon-on"
512
517
className = "preference__radio-button"
513
518
value = "On"
514
- checked = { autosave }
519
+ checked = { versionInfo . p5Sound }
515
520
/>
516
521
< label htmlFor = "soundaddon-on" className = "preference__option" >
517
522
{ t ( 'Preferences.On' ) }
518
523
</ label >
519
524
< input
520
525
type = "radio"
521
- onChange = { ( ) => dispatch ( setAutosave ( false ) ) }
526
+ onChange = { ( ) =>
527
+ dispatch (
528
+ updateFileContent (
529
+ indexID ,
530
+ versionInfo . setP5Sound ( false )
531
+ )
532
+ )
533
+ }
522
534
aria-label = { t ( 'Preferences.AutosaveOffARIA' ) }
523
535
name = "soundaddon"
524
536
id = "soundaddon-off"
525
537
className = "preference__radio-button"
526
538
value = "Off"
527
- checked = { ! autosave }
539
+ checked = { ! versionInfo . p5Sound }
528
540
/>
529
541
< label
530
542
htmlFor = "soundaddon-off"
@@ -541,13 +553,20 @@ export default function Preferences() {
541
553
< div className = "preference__options" >
542
554
< input
543
555
type = "radio"
544
- onChange = { ( ) => dispatch ( setAutosave ( true ) ) }
556
+ onChange = { ( ) =>
557
+ dispatch (
558
+ updateFileContent (
559
+ indexID ,
560
+ versionInfo . setP5PreloadAddon ( true )
561
+ )
562
+ )
563
+ }
545
564
aria-label = { t ( 'Preferences.AutosaveOnARIA' ) }
546
565
name = "preloadaddon"
547
566
id = "preloadaddon-on"
548
567
className = "preference__radio-button"
549
568
value = "On"
550
- checked = { autosave }
569
+ checked = { versionInfo . p5PreloadAddon }
551
570
/>
552
571
< label
553
572
htmlFor = "preloadaddon-on"
@@ -557,13 +576,20 @@ export default function Preferences() {
557
576
</ label >
558
577
< input
559
578
type = "radio"
560
- onChange = { ( ) => dispatch ( setAutosave ( false ) ) }
579
+ onChange = { ( ) =>
580
+ dispatch (
581
+ updateFileContent (
582
+ indexID ,
583
+ versionInfo . setP5PreloadAddon ( false )
584
+ )
585
+ )
586
+ }
561
587
aria-label = { t ( 'Preferences.AutosaveOffARIA' ) }
562
588
name = "preloadaddon"
563
589
id = "preloadaddon-off"
564
590
className = "preference__radio-button"
565
591
value = "Off"
566
- checked = { ! autosave }
592
+ checked = { ! versionInfo . p5PreloadAddon }
567
593
/>
568
594
< label
569
595
htmlFor = "preloadaddon-off"
@@ -580,13 +606,20 @@ export default function Preferences() {
580
606
< div className = "preference__options" >
581
607
< input
582
608
type = "radio"
583
- onChange = { ( ) => dispatch ( setAutosave ( true ) ) }
609
+ onChange = { ( ) =>
610
+ dispatch (
611
+ updateFileContent (
612
+ indexID ,
613
+ versionInfo . setP5ShapesAddon ( true )
614
+ )
615
+ )
616
+ }
584
617
aria-label = { t ( 'Preferences.AutosaveOnARIA' ) }
585
618
name = "shapesaddon"
586
619
id = "shapesaddon-on"
587
620
className = "preference__radio-button"
588
621
value = "On"
589
- checked = { autosave }
622
+ checked = { versionInfo . p5ShapesAdddon }
590
623
/>
591
624
< label
592
625
htmlFor = "shapesaddon-on"
@@ -596,13 +629,20 @@ export default function Preferences() {
596
629
</ label >
597
630
< input
598
631
type = "radio"
599
- onChange = { ( ) => dispatch ( setAutosave ( false ) ) }
632
+ onChange = { ( ) =>
633
+ dispatch (
634
+ updateFileContent (
635
+ indexID ,
636
+ versionInfo . setP5ShapesAddon ( false )
637
+ )
638
+ )
639
+ }
600
640
aria-label = { t ( 'Preferences.AutosaveOffARIA' ) }
601
641
name = "shapesaddon"
602
642
id = "shapesaddon-off"
603
643
className = "preference__radio-button"
604
644
value = "Off"
605
- checked = { ! autosave }
645
+ checked = { ! versionInfo . p5ShapesAdddon }
606
646
/>
607
647
< label
608
648
htmlFor = "shapesaddon-off"
0 commit comments