@@ -325,15 +325,22 @@ export const getters = {
325325 * Return MCU's and their state
326326 */
327327 getMcus : ( state ) => {
328- const mcus = Object . keys ( state . printer )
329- . filter ( key => key . startsWith ( 'mcu' ) )
328+ const mcus : MCU [ ] = [ ]
329+
330+ const mcuKeys = Object . keys ( state . printer )
331+ . filter ( key => key === 'mcu' || key . startsWith ( 'mcu ' ) )
330332 . sort ( )
331- . map ( ( key ) : MCU => ( {
333+
334+ for ( const key of mcuKeys ) {
335+ const config = state . printer . configfile . settings [ key . toLowerCase ( ) ]
336+
337+ mcus . push ( {
332338 name : key ,
333339 prettyName : Vue . $filters . prettyCase ( key ) ,
334340 ...state . printer [ key ] ,
335- config : state . printer . configfile . settings [ key . toLowerCase ( ) ]
336- } ) )
341+ config,
342+ } )
343+ }
337344
338345 return mcus
339346 } ,
@@ -408,23 +415,23 @@ export const getters = {
408415 getSteppers : ( state ) : Stepper [ ] => {
409416 const steppers : Stepper [ ] = [ ]
410417
411- const stepperKeys : string [ ] = state . printer . motion_report ?. steppers ?? [ ]
418+ const stepperKeys = state . printer . motion_report ?. steppers ?? [ ]
412419
413420 for ( const item of stepperKeys ) {
414421 const name = item . startsWith ( 'stepper_' )
415422 ? item . substring ( 8 )
416423 : item . split ( ' ' , 2 ) . pop ( ) || ''
417424
418425 const e = state . printer [ item ]
419- const c = state . printer . configfile . settings [ item . toLowerCase ( ) ]
426+ const config = state . printer . configfile . settings [ item . toLowerCase ( ) ]
420427
421428 steppers . push ( {
422429 name,
423430 prettyName : Vue . $filters . prettyCase ( name ) ,
424431 key : item ,
425432 enabled : state . printer . stepper_enable ?. steppers [ item ] ,
426433 ...e ,
427- config : { ... c }
434+ config
428435 } )
429436 }
430437
@@ -515,45 +522,46 @@ export const getters = {
515522 * Return available heaters
516523 */
517524 getHeaters : ( state ) : Heater [ ] => {
518- const heaters = state . printer . heaters ?. available_heaters ?? [ ]
519- if (
520- heaters . length
521- ) {
522- const r : Heater [ ] = [ ]
523- heaters . forEach ( ( e : string ) => {
524- const heater = state . printer [ e ]
525- if ( heater && Object . keys ( heater ) . length > 0 ) {
526- const config = state . printer . configfile . settings [ e . toLowerCase ( ) ]
527- // Some heater items may have a prefix determining type.
528- // Check for these and split as necessary.
529- const keys = [
530- 'heater_generic'
531- ]
532-
533- const [ type , nameFromSplit ] = e . split ( ' ' , 2 )
534- const name = nameFromSplit && keys . includes ( type )
535- ? nameFromSplit
536- : e
537-
538- const color = Vue . $colorset . next ( getKlipperType ( e ) , e )
539- const prettyName = Vue . $filters . prettyCase ( name )
540-
541- r . push ( {
542- ...heater ,
543- name,
544- color,
545- prettyName,
546- key : e ,
547- minTemp : config ?. min_temp ?? 0 ,
548- maxTemp : config ?. max_temp ?? 500 ,
549- config : { ...config }
550- } )
551- }
552- } )
525+ const heaters : Heater [ ] = [ ]
526+
527+ const heaterKeys = state . printer . heaters ?. available_heaters ?? [ ]
553528
554- return r . sort ( ( a , b ) => a . name . localeCompare ( b . name ) )
529+ for ( const key of heaterKeys ) {
530+ const heater = state . printer [ key ]
531+
532+ if ( heater && Object . keys ( heater ) . length > 0 ) {
533+ const config = state . printer . configfile . settings [ key . toLowerCase ( ) ]
534+
535+ // Some heater items may have a prefix determining type.
536+ // Check for these and split as necessary.
537+ const prefixedTypes = [
538+ 'heater_generic'
539+ ]
540+
541+ const [ type , nameFromSplit ] = key . split ( ' ' , 2 )
542+ const name = nameFromSplit && prefixedTypes . includes ( type )
543+ ? nameFromSplit
544+ : key
545+
546+ const color = Vue . $colorset . next ( getKlipperType ( key ) , key )
547+ const prettyName = Vue . $filters . prettyCase ( name )
548+
549+ heaters . push ( {
550+ ...heater ,
551+ name,
552+ type,
553+ color,
554+ prettyName,
555+ key,
556+ minTemp : config ?. min_temp ?? 0 ,
557+ maxTemp : config ?. max_temp ?? 500 ,
558+ config
559+ } )
560+ }
555561 }
556- return [ ]
562+
563+ return heaters
564+ . sort ( ( a , b ) => a . name . localeCompare ( b . name ) )
557565 } ,
558566
559567 getAllLeds : ( _ , getters ) => {
@@ -871,7 +879,7 @@ export const getters = {
871879 break
872880 }
873881
874- const name = config [ `screw${ index } _name` ]
882+ const name = config [ `screw${ index } _name` ] ?? ''
875883 const prettyName = name
876884 ? Vue . $filters . prettyCase ( name )
877885 : i18n . t ( 'app.general.label.screw_number' , { index : index + 1 } ) . toString ( )
@@ -907,8 +915,8 @@ export const getters = {
907915 break
908916 }
909917
910- const coords = config [ key ]
911- const name = config [ `${ key } _name` ]
918+ const coords = config [ key ] ?? [ 0 , 0 ]
919+ const name = config [ `${ key } _name` ] ?? ''
912920 const prettyName = name
913921 ? Vue . $filters . prettyCase ( name )
914922 : i18n . t ( 'app.general.label.screw_number' , { index : index + 1 } ) . toString ( )
0 commit comments