Merge branch 'accessibility-settings-7.6' into accessibility-settings-8_x

# Conflicts:
#	src/app/accessibility/accessibility-settings.service.spec.ts
This commit is contained in:
Andreas Awouters
2025-01-22 16:08:24 +01:00
2 changed files with 34 additions and 2 deletions

View File

@@ -18,7 +18,7 @@ import {
ACCESSIBILITY_COOKIE,
ACCESSIBILITY_SETTINGS_METADATA_KEY,
AccessibilitySettings,
AccessibilitySettingsService,
AccessibilitySettingsService, AccessibilitySettingsFormValues, FullAccessibilitySettings,
} from './accessibility-settings.service';
@@ -363,4 +363,27 @@ describe('accessibilitySettingsService', () => {
});
});
describe('convertFormValuesToStoredValues', () => {
it('should reset the notificationTimeOut when timeOut is enabled but set to "0"', () => {
const formValues: AccessibilitySettingsFormValues = {
notificationTimeOutEnabled: true,
notificationTimeOut: '0',
liveRegionTimeOut: null,
};
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
expect('notificationTimeOut' in storedValues).toBeFalse();
});
});
it('should keep the notificationTimeOut when timeOut is enabled and differs from "0"', () => {
const formValues: AccessibilitySettingsFormValues = {
notificationTimeOutEnabled: true,
notificationTimeOut: '3',
liveRegionTimeOut: null,
};
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
expect('notificationTimeOut' in storedValues).toBeTrue();
});
});

View File

@@ -260,11 +260,20 @@ export class AccessibilitySettingsService {
* Convert values in the provided accessibility settings object to values ready to be stored.
*/
convertFormValuesToStoredValues(settings: AccessibilitySettingsFormValues): FullAccessibilitySettings {
return {
const storedValues = {
notificationTimeOut: settings.notificationTimeOutEnabled ?
secondsToMilliseconds(settings.notificationTimeOut) : '0',
liveRegionTimeOut: secondsToMilliseconds(settings.liveRegionTimeOut),
};
// When the user enables the timeout but does not change the timeout duration from 0,
// it is removed from the values to be stored so the default value is used.
// Keeping it at 0 would mean the notifications are not automatically removed.
if (settings.notificationTimeOutEnabled && settings.notificationTimeOut === '0') {
delete storedValues.notificationTimeOut;
}
return storedValues;
}
/**