@@ -102,7 +102,11 @@ class PreferencesSystem {
102102 return defaultPrefs
103103 }
104104
105- return allRoboPrefs [ miraName ]
105+ const defaultPrefs = defaultRobotPreferences ( )
106+ const mergedPrefs = { ...defaultPrefs , ...allRoboPrefs [ miraName ] }
107+ allRoboPrefs [ miraName ] = mergedPrefs
108+
109+ return mergedPrefs
106110 }
107111
108112 /** Sets the RobotPreferences object for the robot of a specific mira name */
@@ -148,7 +152,11 @@ class PreferencesSystem {
148152 return defaultPrefs
149153 }
150154
151- return allFieldPrefs [ miraName ]
155+ const defaultPrefs = defaultFieldPreferences ( )
156+ const mergedPrefs = { ...defaultPrefs , ...allFieldPrefs [ miraName ] }
157+ allFieldPrefs [ miraName ] = mergedPrefs
158+
159+ return mergedPrefs
152160 }
153161
154162 /** @returns Preferences for every field that was found in local storage. */
@@ -170,7 +178,12 @@ class PreferencesSystem {
170178 public static getMotorPreferences ( miraName : string ) : MotorPreferences {
171179 const allMotorPrefs = this . getAllMotorPreferences ( )
172180
173- allMotorPrefs [ miraName ] ??= defaultMotorPreferences ( miraName )
181+ if ( allMotorPrefs [ miraName ] == undefined ) {
182+ allMotorPrefs [ miraName ] = defaultMotorPreferences ( miraName )
183+ } else {
184+ const defaultPrefs = defaultMotorPreferences ( miraName )
185+ allMotorPrefs [ miraName ] = { ...defaultPrefs , ...allMotorPrefs [ miraName ] }
186+ }
174187
175188 return allMotorPrefs [ miraName ]
176189 }
@@ -194,6 +207,10 @@ class PreferencesSystem {
194207 if ( graphicsPrefs == undefined ) {
195208 graphicsPrefs = defaultGraphicsPreferences ( )
196209 this . _preferences [ GRAPHICS_PREFERENCE_KEY ] = graphicsPrefs
210+ } else {
211+ const defaultPrefs = defaultGraphicsPreferences ( )
212+ graphicsPrefs = { ...defaultPrefs , ...graphicsPrefs }
213+ this . _preferences [ GRAPHICS_PREFERENCE_KEY ] = graphicsPrefs
197214 }
198215
199216 return graphicsPrefs
0 commit comments