Added pricing parser

This commit is contained in:
Joao Ramos
2024-02-12 12:40:45 +00:00
parent 80c0a9e21c
commit 9ff096f323
2 changed files with 57 additions and 2 deletions

View File

@@ -21,6 +21,28 @@ interface Package {
} }
export default function Page({language}: {language: "en" | "ar"}) { export default function Page({language}: {language: "en" | "ar"}) {
const getDurationUnit = (duration: number, durationUnitSingular: string, durationUnitPlural: string) => {
if(duration >= 2 && duration <= 10) {
return durationUnitPlural;
}
return durationUnitSingular;
}
const durationAndDurationUnitParser = (duration: number, duration_unit: DurationUnit) => {
if(language === 'ar') {
switch (duration_unit) {
case "days":
return `${duration} ${getDurationUnit(duration, translation.days.singular[language], translation.days.plural[language])}`;
case "weeks":
return `${duration} ${getDurationUnit(duration, translation.weeks.singular[language], translation.weeks.plural[language])}`;
case "months":
return `${duration} ${getDurationUnit(duration, translation.months.singular[language], translation.months.plural[language])}`;
}
}
return capitalize(duration === 1 ? duration_unit.slice(0, duration_unit.length - 1) : duration_unit);
}
const [payments, setPayments] = React.useState<Package[]>([]); const [payments, setPayments] = React.useState<Package[]>([]);
const getData = async () => { const getData = async () => {
// Fetch data from external API // Fetch data from external API
@@ -51,8 +73,7 @@ export default function Page({language}: {language: "en" | "ar"}) {
<div className="flex flex-col items-start mb-2"> <div className="flex flex-col items-start mb-2">
<Image src="/logo_title.png" alt="EnCoach's Logo" width={32} height={32} /> <Image src="/logo_title.png" alt="EnCoach's Logo" width={32} height={32} />
<span className="font-semibold text-xl"> <span className="font-semibold text-xl">
EnCoach - {p.duration}{" "} {translation.encoach[language]} - {durationAndDurationUnitParser(p.duration, p.duration_unit)}
{capitalize(p.duration === 1 ? p.duration_unit.slice(0, p.duration_unit.length - 1) : p.duration_unit)}
</span> </span>
</div> </div>
<div className="flex flex-col gap-2 items-start w-full"> <div className="flex flex-col gap-2 items-start w-full">

View File

@@ -22,5 +22,39 @@
"packageIncludesC": { "packageIncludesC": {
"en": "Allow yourself to correctly prepare for the exam", "en": "Allow yourself to correctly prepare for the exam",
"ar": "امنح نفسك الفرصة للتحضير بشكل صحيح للإختبار" "ar": "امنح نفسك الفرصة للتحضير بشكل صحيح للإختبار"
},
"days": {
"singular": {
"en": "Day",
"ar": "يوم"
},
"plural": {
"en": "Days",
"ar": "أيام"
}
},
"weeks": {
"singular": {
"en": "Week",
"ar": "أسبوع"
},
"plural": {
"en": "Weeks",
"ar": "أسابيع"
}
},
"months": {
"singular": {
"en": "Month",
"ar": "شهر"
},
"plural": {
"en": "Months",
"ar": "شهور"
}
},
"encoach": {
"en": "EnCoach",
"ar": "إنكوتش"
} }
} }