diff --git a/apps/learner-web-app/src/app/programs/[tenantId]/page.tsx b/apps/learner-web-app/src/app/[programName]/page.tsx similarity index 97% rename from apps/learner-web-app/src/app/programs/[tenantId]/page.tsx rename to apps/learner-web-app/src/app/[programName]/page.tsx index 0383fbec0..58aa3433f 100644 --- a/apps/learner-web-app/src/app/programs/[tenantId]/page.tsx +++ b/apps/learner-web-app/src/app/[programName]/page.tsx @@ -41,7 +41,7 @@ export default function ProgramDetailPage() { const params = useParams(); const router = useRouter(); const { t } = useTranslation(); - const tenantId = params?.tenantId as string; + const programName = decodeURIComponent(params?.programName as string); const [program, setProgram] = useState(null); const [loading, setLoading] = useState(true); @@ -49,12 +49,14 @@ export default function ProgramDetailPage() { const [enrolModalOpen, setEnrolModalOpen] = useState(false); useEffect(() => { - if (!tenantId) return; + if (!programName) return; const fetchProgram = async () => { try { const res = await getTenantInfo(); const all: Program[] = res?.result || []; - const found = all.find((p) => p.tenantId === tenantId); + const found = all.find( + (p) => p.name.toLowerCase() === programName.toLowerCase() + ); if (found) { setProgram(found); } else { @@ -67,14 +69,14 @@ export default function ProgramDetailPage() { } }; fetchProgram(); - }, [tenantId]); + }, [programName]); const handleEnrolNow = () => { setEnrolModalOpen(true); }; const handleLogin = () => { - router.push(`/login?tenantId=${tenantId}`); + router.push(`/login?tenantId=${program?.tenantId}`); }; if (loading) { @@ -358,7 +360,7 @@ export default function ProgramDetailPage() { open={enrolModalOpen} onClose={() => setEnrolModalOpen(false)} programName={program.name} - tenantId={tenantId} + tenantId={program.tenantId} /> ); diff --git a/apps/learner-web-app/src/app/landing/page.tsx b/apps/learner-web-app/src/app/landing/page.tsx index 67b714d0a..3d70269fe 100644 --- a/apps/learner-web-app/src/app/landing/page.tsx +++ b/apps/learner-web-app/src/app/landing/page.tsx @@ -359,8 +359,8 @@ export default function LandingPage() { > {t('LANDING.HOW_WOULD_YOU_LIKE_TO_GET_STARTED')} - - + + } title={t('LANDING.ARE_YOU_HERE_TO_LEARN')} @@ -369,7 +369,7 @@ export default function LandingPage() { onClick={handleScrollToLearner} /> - + } title={t('LANDING.ARE_YOU_HERE_TO_VOLUNTEER')} @@ -422,7 +422,7 @@ export default function LandingPage() { {t('LANDING.NO_PROGRAMS_AVAILABLE')} ) : ( - + {learnerPrograms.map((program, index) => { const imageItem = program.programImages?.[0]; const image = @@ -430,13 +430,13 @@ export default function LandingPage() { ? imageItem : (imageItem as any)?.description || '/images/default.png'; return ( - + router.push(`/programs/${program.tenantId}`)} + onExplore={() => router.push(`/${encodeURIComponent(program.name)}`)} /> ); @@ -484,7 +484,7 @@ export default function LandingPage() { {t('LANDING.LOADING_PROGRAMS')} ) : ( - + {volunteerPrograms.map((program, index) => { const imageItem = program.programImages?.[0]; const image = @@ -492,13 +492,13 @@ export default function LandingPage() { ? imageItem : (imageItem as any)?.description || '/images/default.png'; return ( - + router.push(`/programs/${program.tenantId}`)} + onExplore={() => router.push(`/${encodeURIComponent(program.name)}`)} /> ); diff --git a/apps/learner-web-app/src/app/login/page.tsx b/apps/learner-web-app/src/app/login/page.tsx index 2dfa29e89..53d06c5fd 100644 --- a/apps/learner-web-app/src/app/login/page.tsx +++ b/apps/learner-web-app/src/app/login/page.tsx @@ -849,7 +849,7 @@ const LoginPageContent = () => { primaryText={t('LANDING.ENROL_NOW') || 'Enrol Now'} primaryActionHandler={() => { setNotEnrolledModal(false); - router.push(`/programs/${notEnrolledTenantId}`); + router.push(`/${encodeURIComponent(notEnrolledProgramName)}`); }} // secondaryText={t('LEARNER_APP.PROGRAMS.MY_PROGRAMS') || 'My Programs'} // secondaryActionHandler={() => { setNotEnrolledModal(false); router.push('/programs'); }} diff --git a/apps/learner-web-app/src/components/Header/Header.jsx b/apps/learner-web-app/src/components/Header/Header.jsx index e20f6c46f..85df83e70 100644 --- a/apps/learner-web-app/src/components/Header/Header.jsx +++ b/apps/learner-web-app/src/components/Header/Header.jsx @@ -108,11 +108,17 @@ const Header = ({ isShowLogout = false, isLogin = false }) => { }} style={{ cursor: 'pointer' }} > - Pratham Logo + Pratham Logo {/* Language Selector and Logout */} - + {/* Login Button */} {isLogin && (