preferenceDetailDefinition function

PreferenceDetailDefinition preferenceDetailDefinition(
  1. PreferenceDetailId id,
  2. Translations strings
)

Implementation

PreferenceDetailDefinition preferenceDetailDefinition(
  PreferenceDetailId id,
  Translations strings,
) {
  final preferences = strings.preferences;
  return switch (id) {
    .language => PreferenceDetailDefinition(
      title: preferences.language.title,
      options: [
        (
          value: 'system',
          icon: Icons.translate,
          title: preferences.language.followSystem,
        ),
        (
          value: 'zh-TW',
          icon: Icons.translate,
          title: preferences.language.traditionalChinese,
        ),
        (
          value: 'en-US',
          icon: Icons.translate,
          title: preferences.language.english,
        ),
      ],
      guide: (
        icon: Icons.language_outlined,
        title: preferences.language.iosGuideTitle,
        description: preferences.language.iosGuideDescription,
        buttonLabel: preferences.language.openSettings,
      ),
      loadError: preferences.language.changeFailed,
      saveError: preferences.language.changeFailed,
      actionError: preferences.language.openFailed,
    ),
    .themeMode => PreferenceDetailDefinition(
      title: preferences.darkMode,
      options: [
        (
          value: 'system',
          icon: Icons.brightness_auto_outlined,
          title: preferences.themeMode.system,
        ),
        (
          value: 'light',
          icon: Icons.light_mode_outlined,
          title: preferences.themeMode.light,
        ),
        (
          value: 'dark',
          icon: Icons.dark_mode_outlined,
          title: preferences.themeMode.dark,
        ),
      ],
      loadError: preferences.loadFailed,
      saveError: preferences.saveFailed,
    ),
  };
}