@@ -68,90 +68,15 @@ class AccessibilityInformationCardsList extends HookConsumerWidget {
6868 Widget buildCards (ISet <ModeWithKey > modesToRender) {
6969 if (modesToRender.isEmpty) return const SizedBox .shrink ();
7070
71- final cards = {
72- // Card for blind accessibility
73- const Blind (): AccessibilityInformationCard (
74- icon: Assets .svg.digitalGuide.accessibilityAlerts.blindProfile,
75- color: DigitalGuideConfig .accessibilityLevelColors[accLevels.accessibilityLevelForBlind],
76- text:
77- accComments? .commentForBlind ??
78- context.localize.accessibility_card_information (
79- prefix,
80- accessibilityLevelType (accLevels.accessibilityLevelForBlind.toString ()),
81- context.localize.people_blind,
82- ),
83- ),
84-
85- // Card for visually impaired
86- const LowVision (): AccessibilityInformationCard (
87- icon: Assets .svg.digitalGuide.accessibilityAlerts.visuallyImpaired,
88- color: DigitalGuideConfig .accessibilityLevelColors[accLevels.accessibilityLevelForVisuallyImpaired],
89- text:
90- accComments? .commentForVisuallyImpaired ??
91- context.localize.accessibility_card_information (
92- prefix,
93- accessibilityLevelType (accLevels.accessibilityLevelForVisuallyImpaired.toString ()),
94- context.localize.people_visually_impaired,
95- ),
96- ),
97-
98- // Card for motor disabilities
99- const MotorImpairment (): AccessibilityInformationCard (
100- icon: Assets .svg.digitalGuide.accessibilityAlerts.movementDysfunction,
101- color: DigitalGuideConfig .accessibilityLevelColors[accLevels.accessibilityLevelForMotorDisability],
102- text:
103- accComments? .commentForMotorDisability ??
104- context.localize.accessibility_card_information (
105- prefix,
106- accessibilityLevelType (accLevels.accessibilityLevelForMotorDisability.toString ()),
107- context.localize.people_with_motor_disability,
108- ),
109- ),
110-
111- // Card for cognitive difficulties
112- const CognitiveImpairment (): AccessibilityInformationCard (
113- icon: Assets .svg.digitalGuide.accessibilityAlerts.cognitiveDifficulties,
114- color: DigitalGuideConfig .accessibilityLevelColors[accLevels.accessibilityLevelForCognitiveDifficulties],
115- text:
116- accComments? .commentForCognitiveDifficulties ??
117- context.localize.accessibility_card_information (
118- prefix,
119- accessibilityLevelType (accLevels.accessibilityLevelForCognitiveDifficulties.toString ()),
120- context.localize.people_with_cognitive_difficulties,
121- ),
122- ),
123-
124- // Card for hard of hearing
125- const HearingImpairment (): AccessibilityInformationCard (
126- icon: Assets .svg.digitalGuide.accessibilityAlerts.hearingDysfunction,
127- color: DigitalGuideConfig .accessibilityLevelColors[accLevels.accessibilityLevelForHardOfHearing],
128- text:
129- accComments? .commentForHardOfHearing ??
130- context.localize.accessibility_card_information (
131- prefix,
132- accessibilityLevelType (accLevels.accessibilityLevelForHardOfHearing.toString ()),
133- context.localize.people_with_hard_of_hearing,
134- ),
135- ),
136-
137- // Card for high sensory sensitivity
138- const SensorySensitivity (): AccessibilityInformationCard (
139- icon: Assets .svg.digitalGuide.accessibilityAlerts.sensorySensitivity,
140- color: DigitalGuideConfig .accessibilityLevelColors[accLevels.accessibilityLevelForHighSensorySensitivity],
141- text:
142- accComments? .commentForHighSensorySensitivity ??
143- context.localize.accessibility_card_information (
144- prefix,
145- accessibilityLevelType (accLevels.accessibilityLevelForHighSensorySensitivity.toString ()),
146- context.localize.people_with_high_sensory_sensitivity,
147- ),
148- ),
149- };
71+ final cards = _getCardsMap (
72+ context,
73+ levels: accLevels,
74+ comments: accComments,
75+ prefix: prefix,
76+ accessibilityLevelType: accessibilityLevelType,
77+ );
15078
151- final widgets = modesToRender
152- .map ((m) => cards[m])
153- .whereType <AccessibilityInformationCard >()
154- .toList (growable: false );
79+ final widgets = modesToRender.map ((m) => cards[m]).whereType <AccessibilityInformationCard >().toList ();
15580
15681 return Padding (
15782 padding: padding,
@@ -169,7 +94,73 @@ class AccessibilityInformationCardsList extends HookConsumerWidget {
16994 return currentModesAsync.when (
17095 loading: () => buildCards (cache),
17196 error: (error, stack) => Center (child: Text ("Error: $error " )),
172- data: (modes) => modes.isEmpty ? const SizedBox . shrink () : buildCards (modes) ,
97+ data: buildCards,
17398 );
17499 }
100+
101+ Map <ModeWithKey , AccessibilityInformationCard > _getCardsMap (
102+ BuildContext context, {
103+ required AccessibilityInformationLevelsInput levels,
104+ required AccessibilityInformationOptionalCommentsInput ? comments,
105+ required String prefix,
106+ required String Function (String ) accessibilityLevelType,
107+ }) {
108+ AccessibilityInformationCard createCard ({
109+ required String icon,
110+ required int level,
111+ required String ? comment,
112+ required String peopleLabel,
113+ }) {
114+ return AccessibilityInformationCard (
115+ icon: icon,
116+ color: DigitalGuideConfig .accessibilityLevelColors[level],
117+ text:
118+ comment ??
119+ context.localize.accessibility_card_information (
120+ prefix,
121+ accessibilityLevelType (level.toString ()),
122+ peopleLabel,
123+ ),
124+ );
125+ }
126+
127+ return {
128+ const MotorImpairment (): createCard (
129+ icon: Assets .svg.digitalGuide.accessibilityAlerts.movementDysfunction,
130+ level: levels.accessibilityLevelForMotorDisability,
131+ comment: comments? .commentForMotorDisability,
132+ peopleLabel: context.localize.people_with_motor_disability,
133+ ),
134+ const Blind (): createCard (
135+ icon: Assets .svg.digitalGuide.accessibilityAlerts.blindProfile,
136+ level: levels.accessibilityLevelForBlind,
137+ comment: comments? .commentForBlind,
138+ peopleLabel: context.localize.people_blind,
139+ ),
140+ const LowVision (): createCard (
141+ icon: Assets .svg.digitalGuide.accessibilityAlerts.visuallyImpaired,
142+ level: levels.accessibilityLevelForVisuallyImpaired,
143+ comment: comments? .commentForVisuallyImpaired,
144+ peopleLabel: context.localize.people_visually_impaired,
145+ ),
146+ const CognitiveImpairment (): createCard (
147+ icon: Assets .svg.digitalGuide.accessibilityAlerts.cognitiveDifficulties,
148+ level: levels.accessibilityLevelForCognitiveDifficulties,
149+ comment: comments? .commentForCognitiveDifficulties,
150+ peopleLabel: context.localize.people_with_cognitive_difficulties,
151+ ),
152+ const HearingImpairment (): createCard (
153+ icon: Assets .svg.digitalGuide.accessibilityAlerts.hearingDysfunction,
154+ level: levels.accessibilityLevelForHardOfHearing,
155+ comment: comments? .commentForHardOfHearing,
156+ peopleLabel: context.localize.people_with_hard_of_hearing,
157+ ),
158+ const SensorySensitivity (): createCard (
159+ icon: Assets .svg.digitalGuide.accessibilityAlerts.sensorySensitivity,
160+ level: levels.accessibilityLevelForHighSensorySensitivity,
161+ comment: comments? .commentForHighSensorySensitivity,
162+ peopleLabel: context.localize.people_with_high_sensory_sensitivity,
163+ ),
164+ };
165+ }
175166}
0 commit comments