diff --git a/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx b/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx index 6adb5836..bdb133f6 100644 --- a/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx +++ b/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx @@ -29,9 +29,31 @@ const CourseClient = (props: any) => { const isMobile = useMediaQuery('(max-width: 768px)') function getLearningTags() { - // create array of learnings from a string object (comma separated) - let learnings = course?.learnings ? course?.learnings.split('|') : [] - setLearnings(learnings) + if (!course?.learnings) { + setLearnings([]) + return + } + + try { + // Try to parse as JSON (new format) + const parsedLearnings = JSON.parse(course.learnings) + if (Array.isArray(parsedLearnings)) { + // New format: array of learning items with text and emoji + setLearnings(parsedLearnings) + return + } + } catch (e) { + // Not valid JSON, continue to legacy format handling + } + + // Legacy format: comma-separated string (changed from pipe-separated) + const learningItems = course.learnings.split(',').map((text: string) => ({ + id: crypto.randomUUID ? crypto.randomUUID() : Date.now().toString(), + text: text.trim(), // Trim whitespace that might be present after commas + emoji: '📝' // Default emoji for legacy items + })) + + setLearnings(learningItems) } useEffect(() => { @@ -90,22 +112,44 @@ const CourseClient = (props: any) => {
{course.about}
- {learnings.length > 0 && learnings[0] !== 'null' && ( + {learnings.length > 0 && learnings[0]?.text !== 'null' && ({learning}
+{learningText}
+ {learning.link && ( + + Link to {learningText} +