fix time splitter when multiples options occurs
All checks were successful
PR Check / lint-and-format (pull_request) Successful in 11s

This commit is contained in:
Mylloon 2024-09-27 14:36:17 +02:00
parent 884b53b8b2
commit 2a1e691d62
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -46,13 +46,23 @@ export type dbReminder = {
* @returns An object with the time and the option * @returns An object with the time and the option
*/ */
export const splitTime = (time: string) => { export const splitTime = (time: string) => {
if (time?.endsWith("@")) { const mapping = {
return { time: time.slice(0, -1), option: OptionReminder.Mention }; [OptionReminder.DirectMessage]: "p",
} else if (time?.toLowerCase().endsWith("p")) { [OptionReminder.Mention]: "@",
return { time: time.slice(0, -1), option: OptionReminder.DirectMessage }; };
}
const lowered = time.toLowerCase();
const trimmed = lowered.replaceAll(new RegExp(Object.values(mapping).join("|"), "g"), "");
// Depending of the last character of the string
switch (lowered.slice(-1)) {
case mapping[OptionReminder.Mention]:
return { time: trimmed, option: OptionReminder.Mention };
case mapping[OptionReminder.DirectMessage]:
return { time: trimmed, option: OptionReminder.DirectMessage };
default:
return { time: time, option: OptionReminder.Nothing }; return { time: time, option: OptionReminder.Nothing };
}
}; };
/** /**