46122.js.map 13 KB

1
  1. {"version":3,"file":"46122.js","mappings":"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","sources":["webpack://quran.com/./src/components/Course/ContentContainer/ContentContainer.module.scss","webpack://quran.com/./src/components/Course/CoursesList/LessonsList.module.scss","webpack://quran.com/./src/components/Course/CoursesPageLayout/CoursesPageLayout.module.scss","webpack://quran.com/./src/components/dls/Pill/Pill.module.scss","webpack://quran.com/./src/components/Course/ContentContainer/index.tsx","webpack://quran.com/./src/components/Course/CoursesList/index.tsx","webpack://quran.com/./src/components/Course/CoursesPageLayout/index.tsx","webpack://quran.com/./src/components/dls/Pill/index.tsx"],"sourcesContent":["// Exports\nmodule.exports = {\n\t\"container\": \"ContentContainer_container__s7dX2\"\n};\n","// Exports\nmodule.exports = {\n\t\"container\": \"LessonsList_container__sQhlU\",\n\t\"cardContainer\": \"LessonsList_cardContainer__L1414\",\n\t\"allCourses\": \"LessonsList_allCourses__zqklC\",\n\t\"titleContainer\": \"LessonsList_titleContainer__HsM17\",\n\t\"comingSoonContainer\": \"LessonsList_comingSoonContainer__kFoW6\"\n};\n","// Exports\nmodule.exports = {\n\t\"container\": \"CoursesPageLayout_container__nif3j\",\n\t\"title\": \"CoursesPageLayout_title__romC1\",\n\t\"desc\": \"CoursesPageLayout_desc__p5Z4C\"\n};\n","// Exports\nmodule.exports = {\n\t\"container\": \"Pill_container__FoIEg\",\n\t\"small\": \"Pill_small__zCILo\"\n};\n","import React from 'react';\n\nimport styles from './ContentContainer.module.scss';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst ContentContainer: React.FC<Props> = ({ children }) => {\n return <div className={styles.container}>{children}</div>;\n};\n\nexport default ContentContainer;\n","import React from 'react';\n\nimport classNames from 'classnames';\nimport Trans from 'next-translate/Trans';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './LessonsList.module.scss';\n\nimport Card, { CardSize } from '@/dls/Card/Card';\nimport Link, { LinkVariant } from '@/dls/Link/Link';\nimport Pill from '@/dls/Pill';\nimport { Course } from '@/types/auth/Course';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport {\n getCoursesNavigationUrl,\n getCourseNavigationUrl,\n getLessonNavigationUrl,\n} from '@/utils/navigation';\n\ntype Props = {\n courses: Course[];\n isMyCourses: boolean;\n};\n\nconst MIN_COURSES_COUNT = 6;\n\nconst CoursesList: React.FC<Props> = ({ courses, isMyCourses }) => {\n const { t } = useTranslation('learn');\n const onMyCourses = () => {\n logButtonClick('user_no_courses_link');\n };\n\n const onAllCoursesClicked = () => {\n logButtonClick('all_courses_link');\n };\n\n // if the user has no courses, show a message\n if (isMyCourses && courses.length === 0) {\n return (\n <span>\n <Trans\n i18nKey=\"learn:empty-learning-plans\"\n components={{\n link: (\n <Link\n onClick={onMyCourses}\n key={0}\n href={getCoursesNavigationUrl()}\n variant={LinkVariant.Blend}\n />\n ),\n }}\n />\n </span>\n );\n }\n\n let comingSoonCourses = [];\n // if we should put a coming soon placeholder\n if (!isMyCourses && courses.length < MIN_COURSES_COUNT) {\n // just fill the array with 0s\n comingSoonCourses = new Array(MIN_COURSES_COUNT - courses.length).fill(0);\n }\n\n return (\n <div>\n <div className={styles.container}>\n {courses.map((course) => {\n const { slug, id, continueFromLesson, title, isCompleted, thumbnail } = course;\n const navigateTo = continueFromLesson\n ? getLessonNavigationUrl(slug, continueFromLesson)\n : getCourseNavigationUrl(slug);\n return (\n <Link key={id} href={navigateTo}>\n <Card\n shouldShowFullTitle\n imgSrc={thumbnail}\n title={\n <div className={styles.titleContainer}>\n {title}\n {isCompleted ? <Pill>{t('completed')}</Pill> : ''}\n </div>\n }\n imgAlt={title}\n size={CardSize.Large}\n className={classNames(styles.cardContainer, styles.comingSoonContainer)}\n />\n </Link>\n );\n })}\n {/* eslint-disable-next-line @typescript-eslint/naming-convention */}\n {comingSoonCourses.map((_, i) => {\n return (\n <Card\n // eslint-disable-next-line react/no-array-index-key\n key={i}\n imgSrc=\"https://images.quran.com/coming-soon.png\"\n size={CardSize.Large}\n className={classNames(styles.cardContainer, styles.comingSoonContainer)}\n title={t('coming-soon')}\n />\n );\n })}\n </div>\n {isMyCourses && (\n <div className={styles.allCourses}>\n <Link\n variant={LinkVariant.Highlight}\n onClick={onAllCoursesClicked}\n href={getCoursesNavigationUrl()}\n >\n {t('all-learning-plans')}\n </Link>\n </div>\n )}\n </div>\n );\n};\n\nexport default CoursesList;\n","/* eslint-disable react/no-multi-comp */\nimport classNames from 'classnames';\nimport Trans from 'next-translate/Trans';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './CoursesPageLayout.module.scss';\n\nimport ContentContainer from '@/components/Course/ContentContainer';\nimport CoursesList from '@/components/Course/CoursesList';\nimport DataFetcher from '@/components/DataFetcher';\nimport Spinner from '@/dls/Spinner/Spinner';\nimport layoutStyles from '@/pages/index.module.scss';\nimport { CoursesResponse } from '@/types/auth/Course';\nimport { privateFetcher } from '@/utils/auth/api';\nimport { makeGetCoursesUrl } from '@/utils/auth/apiPaths';\n\nconst Loading = () => <Spinner />;\n\ntype Props = {\n isMyCourses?: boolean;\n};\n\nconst CoursesPageLayout: React.FC<Props> = ({ isMyCourses = false }) => {\n const { t } = useTranslation('learn');\n return (\n <div className={layoutStyles.pageContainer}>\n <ContentContainer>\n <p className={styles.title}>\n {isMyCourses ? t('common:my-learning-plans') : t('common:learning-plans')}\n </p>\n {!isMyCourses && (\n <div className={styles.desc}>\n <Trans\n i18nKey=\"learn:learning-plans-desc\"\n components={{\n br: <br key={0} />,\n }}\n />\n </div>\n )}\n\n <div className={classNames(layoutStyles.flow, styles.container)}>\n <DataFetcher\n loading={Loading}\n fetcher={privateFetcher}\n queryKey={makeGetCoursesUrl({ myCourses: isMyCourses })}\n render={(data: CoursesResponse) => (\n <CoursesList courses={data.data} isMyCourses={isMyCourses} />\n )}\n />\n </div>\n </ContentContainer>\n </div>\n );\n};\n\nexport default CoursesPageLayout;\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './Pill.module.scss';\n\nexport enum PillSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n}\n\ntype Props = {\n children: React.ReactNode;\n size?: PillSize;\n};\n\nconst Pill: React.FC<Props> = ({ children, size = PillSize.MEDIUM }) => {\n return (\n <div\n className={classNames(styles.container, {\n [styles.medium]: size === PillSize.MEDIUM,\n [styles.small]: size === PillSize.SMALL,\n })}\n >\n {children}\n </div>\n );\n};\n\nexport default Pill;\n"],"names":["React","styles","ContentContainer","children","div","className","container","classNames","Trans","useTranslation","Card","CardSize","Link","LinkVariant","Pill","logButtonClick","getCoursesNavigationUrl","getCourseNavigationUrl","getLessonNavigationUrl","MIN_COURSES_COUNT","CoursesList","courses","isMyCourses","t","onMyCourses","onAllCoursesClicked","length","span","i18nKey","components","link","onClick","href","variant","Blend","comingSoonCourses","Array","fill","map","course","slug","id","continueFromLesson","title","isCompleted","thumbnail","navigateTo","shouldShowFullTitle","imgSrc","titleContainer","imgAlt","size","Large","cardContainer","comingSoonContainer","_","i","allCourses","Highlight","DataFetcher","Spinner","layoutStyles","privateFetcher","makeGetCoursesUrl","Loading","CoursesPageLayout","pageContainer","p","desc","br","flow","loading","fetcher","queryKey","myCourses","render","data","PillSize","SMALL","MEDIUM","medium","small"],"sourceRoot":""}