Skip to content

Commit c2aea8f

Browse files
authored
refactor: simplify formatDisplayText() (#206)
Use a loop instead of repeating the replace() calls.
1 parent 8f5f2fb commit c2aea8f

File tree

1 file changed

+12
-33
lines changed

1 file changed

+12
-33
lines changed

src/app/models/trainrunsection.model.ts

+12-33
Original file line numberDiff line numberDiff line change
@@ -178,46 +178,25 @@ export class TrainrunSection {
178178
if (!time?.timeFormatter?.stylePattern) {
179179
return undefined;
180180
}
181-
const stylePattern = time.timeFormatter.stylePattern;
182-
let formattedText = "";
183-
const consecutiveTimePatternHHMMSS = "{{consecutiveTime}}.format(HH:mm:ss)";
184-
const consecutiveTimePatternHHMM = "{{consecutiveTime}}.format(HH:mm)";
185-
const consecutiveTimePattern = "{{consecutiveTime}}";
186-
const timePatternHHMMSS = "{{time}}.format(HH:mm:ss)";
187-
const timePatternHHMM = "{{time}}.format(HH:mm)";
188-
const timePattern = "{{time}}";
189181

190182
const consecutiveTimeDate = new Date(null);
191183
consecutiveTimeDate.setSeconds((time.consecutiveTime + offset) * 60);
192184
const timeDate = new Date(null);
193185
timeDate.setSeconds(((time.time + offset + 24 * 60) % 60) * 60);
194186

195-
formattedText = stylePattern;
196-
formattedText = formattedText.replace(
197-
consecutiveTimePatternHHMMSS,
198-
formatDate(consecutiveTimeDate.toISOString(), "HH:mm:ss", "en-US", "UTC"),
199-
);
200-
formattedText = formattedText.replace(
201-
consecutiveTimePatternHHMM,
202-
formatDate(consecutiveTimeDate.toISOString(), "HH:mm", "en-US", "UTC"),
203-
);
204-
formattedText = formattedText.replace(
205-
consecutiveTimePattern,
206-
"" + time.consecutiveTime,
207-
);
187+
const patterns = {
188+
"{{consecutiveTime}}.format(HH:mm:ss)": formatDate(consecutiveTimeDate.toISOString(), "HH:mm:ss", "en-US", "UTC"),
189+
"{{consecutiveTime}}.format(HH:mm)": formatDate(consecutiveTimeDate.toISOString(), "HH:mm", "en-US", "UTC"),
190+
"{{consecutiveTime}}": "" + time.consecutiveTime,
191+
"{{time}}.format(HH:mm:ss)": formatDate(timeDate.toISOString(), "HH:mm:ss", "en-US", "UTC"),
192+
"{{time}}.format(HH:mm)": formatDate(timeDate.toISOString(), "HH:mm", "en-US", "UTC"),
193+
"{{time}}": "" + ((time.time + offset + 24 * 60) % 60),
194+
};
208195

209-
formattedText = formattedText.replace(
210-
timePatternHHMMSS,
211-
formatDate(timeDate.toISOString(), "HH:mm:ss", "en-US", "UTC"),
212-
);
213-
formattedText = formattedText.replace(
214-
timePatternHHMM,
215-
formatDate(timeDate.toISOString(), "HH:mm", "en-US", "UTC"),
216-
);
217-
formattedText = formattedText.replace(
218-
timePattern,
219-
"" + ((time.time + offset + 24 * 60) % 60),
220-
);
196+
let formattedText = time.timeFormatter.stylePattern;
197+
for (const pattern in patterns) {
198+
formattedText = formattedText.replace(pattern, patterns[pattern]);
199+
}
221200

222201
return formattedText;
223202
}

0 commit comments

Comments
 (0)