From 61d666970fc5d911414624cf4cb5acf00562a6f1 Mon Sep 17 00:00:00 2001 From: ttpl-rt-217 Date: Sun, 1 Dec 2024 14:39:59 +0530 Subject: [PATCH 1/2] admin UI enchancement --- src/assets/images/Epub.svg | 9 ++ src/assets/images/HTML.svg | 20 +++++ src/assets/images/MP4.svg | 9 ++ src/assets/images/PDF.svg | 9 ++ src/assets/images/Qml.svg | 20 +++++ src/assets/images/bgEpub.svg | 20 +++++ src/assets/images/bgHtml.svg | 20 +++++ src/assets/images/bgMP4 .svg | 20 +++++ src/assets/images/bgPDF.svg | 20 +++++ src/assets/images/bgQml.svg | 20 +++++ src/assets/images/bgYouTube.svg | 17 ++++ src/assets/images/decorationBg.png | Bin 0 -> 43857 bytes src/assets/images/youtube.svg | 11 +++ src/components/ResourceCard.tsx | 127 ++++++++++++++++++----------- src/pages/resourceList.tsx | 3 +- src/utils/app.constant.ts | 63 +++++++++++++- 16 files changed, 338 insertions(+), 50 deletions(-) create mode 100644 src/assets/images/Epub.svg create mode 100644 src/assets/images/HTML.svg create mode 100644 src/assets/images/MP4.svg create mode 100644 src/assets/images/PDF.svg create mode 100644 src/assets/images/Qml.svg create mode 100644 src/assets/images/bgEpub.svg create mode 100644 src/assets/images/bgHtml.svg create mode 100644 src/assets/images/bgMP4 .svg create mode 100644 src/assets/images/bgPDF.svg create mode 100644 src/assets/images/bgQml.svg create mode 100644 src/assets/images/bgYouTube.svg create mode 100644 src/assets/images/decorationBg.png create mode 100644 src/assets/images/youtube.svg diff --git a/src/assets/images/Epub.svg b/src/assets/images/Epub.svg new file mode 100644 index 00000000..2590f4ea --- /dev/null +++ b/src/assets/images/Epub.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/images/HTML.svg b/src/assets/images/HTML.svg new file mode 100644 index 00000000..32693686 --- /dev/null +++ b/src/assets/images/HTML.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/MP4.svg b/src/assets/images/MP4.svg new file mode 100644 index 00000000..732901b6 --- /dev/null +++ b/src/assets/images/MP4.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/images/PDF.svg b/src/assets/images/PDF.svg new file mode 100644 index 00000000..74ad5abb --- /dev/null +++ b/src/assets/images/PDF.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/images/Qml.svg b/src/assets/images/Qml.svg new file mode 100644 index 00000000..556e3193 --- /dev/null +++ b/src/assets/images/Qml.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/bgEpub.svg b/src/assets/images/bgEpub.svg new file mode 100644 index 00000000..e88631b2 --- /dev/null +++ b/src/assets/images/bgEpub.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/bgHtml.svg b/src/assets/images/bgHtml.svg new file mode 100644 index 00000000..7e652b18 --- /dev/null +++ b/src/assets/images/bgHtml.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/bgMP4 .svg b/src/assets/images/bgMP4 .svg new file mode 100644 index 00000000..3bf17de5 --- /dev/null +++ b/src/assets/images/bgMP4 .svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/bgPDF.svg b/src/assets/images/bgPDF.svg new file mode 100644 index 00000000..83e751c8 --- /dev/null +++ b/src/assets/images/bgPDF.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/bgQml.svg b/src/assets/images/bgQml.svg new file mode 100644 index 00000000..aaf9be54 --- /dev/null +++ b/src/assets/images/bgQml.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/bgYouTube.svg b/src/assets/images/bgYouTube.svg new file mode 100644 index 00000000..cc24522f --- /dev/null +++ b/src/assets/images/bgYouTube.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/decorationBg.png b/src/assets/images/decorationBg.png new file mode 100644 index 0000000000000000000000000000000000000000..44373c05ca98c6cdb183a25a2e2014029597619d GIT binary patch literal 43857 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 z z$LNTPfX^?>LLPSHcVWCIx1{^uG|+n{^O&w_4uwbZ`CS-}Z4Tz|;}O)VRHuMg80jiB zZo@tAurpCitxvSupP6i4Cs~Il{Kw%?*Fpm0@yV2PH$;@Hz76=k^j2xTXn59~t0%3PMcyw`@mp zvbpSLuNqXhZsQTCDKyBNKr6+$N%ChLM;t#{ZU4*n$rs1Q#w2K5qnKp4> zhKrR&`oB=8Tw}b1$vt+6&A9~DEq!Rwc=3T>oW^tCp-sP~T05&R2_T!?V8?H^w6xZ~u&V><2K6a6|a;+e?2kMpU1 z*G+t#Iy4eMqLl6;mXpX>GMPINwlV@-Zoocw2K(h>nAlG_p5Ro`HH4qt4|pnmfDNs< Su5t)?UAc7iBK>~?AN?=9l8;9K literal 0 HcmV?d00001 diff --git a/src/assets/images/youtube.svg b/src/assets/images/youtube.svg new file mode 100644 index 00000000..d5cebce5 --- /dev/null +++ b/src/assets/images/youtube.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/components/ResourceCard.tsx b/src/components/ResourceCard.tsx index 1fd4c954..11c0f536 100644 --- a/src/components/ResourceCard.tsx +++ b/src/components/ResourceCard.tsx @@ -4,6 +4,7 @@ import Image, { StaticImageData } from "next/image"; import placeholderImage from "../../public/placeholderImage.png"; import router from "next/router"; import { fetchContent } from "@/services/PlayerService"; +import { ContentCardsTypes, FileType } from "@/utils/app.constant"; interface ResourceCardProps { title: string; @@ -11,6 +12,7 @@ interface ResourceCardProps { resource: string; identifier: string; appIcon?: string; + mimeType?: string; } const ResourceCard: React.FC = ({ @@ -19,26 +21,9 @@ const ResourceCard: React.FC = ({ resource, identifier, appIcon, + mimeType }) => { - // const [thumbnailUrl, setThumbnailUrl] = useState(placeholderImage); - const thumbnailUrl = appIcon || placeholderImage; - - // useEffect(() => { - // const loadContent = async () => { - // try { - // if (identifier) { - // const data = await fetchContent(identifier); - // if (data?.appIcon) { - // setThumbnailUrl(data.appIcon); - // } - // } - // } catch (error) { - // console.error("Unable to fetch content", error); - // } - // } - // loadContent(); - - // }, [identifier]) + const openPlayers = () => { sessionStorage.setItem("previousPage", window.location.href); @@ -49,45 +34,91 @@ const ResourceCard: React.FC = ({ } }; + const getBackgroundImage = () => { + if (appIcon) { + return appIcon; + } else if (ContentCardsTypes[mimeType as keyof FileType]?.BgImgPath?.src) { + return ContentCardsTypes[mimeType as keyof FileType]?.BgImgPath?.src; + } else { + return placeholderImage.src; + } + } + return ( - - + - Resource Placeholder + + {title} + - - {title} - - - {/* {type} */} - - - + + Content Thumbnail + + {ContentCardsTypes[mimeType as keyof FileType]?.name} + + + + ); }; diff --git a/src/pages/resourceList.tsx b/src/pages/resourceList.tsx index 5c736aab..8d1eed21 100644 --- a/src/pages/resourceList.tsx +++ b/src/pages/resourceList.tsx @@ -91,13 +91,14 @@ const ResourceList = () => { {learnersPreReq.length > 0 ? ( {learnersPreReq.map((item, index) => ( - + ))} diff --git a/src/utils/app.constant.ts b/src/utils/app.constant.ts index a6bd5d03..22299b63 100644 --- a/src/utils/app.constant.ts +++ b/src/utils/app.constant.ts @@ -1,3 +1,24 @@ +import { TFunction } from 'i18next'; +import pdf from "./../assets/images/PDF.svg"; +import epub from "../assets/images/Epub.svg"; +import html from "../assets/images/HTML.svg"; +import mp4 from "../assets/images/MP4.svg"; +import qml from "../assets/images/Qml.svg"; +import youtube from "../assets/images/youtube.svg"; + +// background image + +import bgpdf from "./../assets/images/bgPDF.svg"; +import bgepub from "../assets/images/bgEpub.svg"; +import bghtml from "../assets/images/bgHtml.svg"; +import bgmp4 from "../assets/images/bgMP4 .svg"; +import bgqml from "../assets/images/bgQml.svg"; +import bgyoutube from "../assets/images/bgYouTube.svg"; + + + + + export enum Role { STUDENT = "Student", TEACHER = "Teacher", @@ -138,4 +159,44 @@ export enum ResourceType { LEARNER_PRE_REQUISITE = "prerequisite", LEARNER_POST_REQUISITE = "postrequisite", FACILITATOR_REQUISITE = "facilitator-requisite", -} \ No newline at end of file +} + +import { StaticImageData } from "next/image"; // Import StaticImageData for type safety with images + +export enum ContentType { + PDF = "application/pdf", + EPUB = "application/epub", + HTML = "application/html", + VIDEO_MP4 = "video/mp4", + QUESTION_SET = "application/vnd.sunbird.questionset", + H5P = "application/vnd.ekstep.h5p-archive", + YOUTUBE_VIDEO = "video/youtube", + YOUTUBE_X_VIDEO = "video/x-youtube", + WEBM_VIDEO = "video/webm", + VND = "application/vnd.ekstep.content-collection" +} + + + + +export type FileType = { + [key in ContentType]: { + name: string; + imgPath: StaticImageData; + BgImgPath?: StaticImageData; + }; +}; + +// Create the mapping object with enum keys +export const ContentCardsTypes: FileType = { + [ContentType.PDF]: { name: "PDF", imgPath: pdf, BgImgPath: bgpdf }, + [ContentType.EPUB]: { name: "EPUB", imgPath: epub, BgImgPath: bgepub }, + [ContentType.HTML]: { name: "HTML", imgPath: html, BgImgPath: bghtml }, + [ContentType.VIDEO_MP4]: { name: "Video", imgPath: mp4, BgImgPath: bgmp4 }, + [ContentType.QUESTION_SET]: { name: "Question Set", imgPath: qml, BgImgPath: bgqml }, + [ContentType.H5P]: { name: "H5P", imgPath: html, BgImgPath: bghtml }, + [ContentType.YOUTUBE_X_VIDEO]: { name: "YouTube", imgPath: youtube, BgImgPath: bgyoutube }, + [ContentType.YOUTUBE_VIDEO]: { name: "YouTube", imgPath: youtube, BgImgPath: bgyoutube }, + [ContentType.WEBM_VIDEO]: { name: "WEBM", imgPath: mp4, BgImgPath: bgmp4 }, + [ContentType.VND]: { name: "WEBM", imgPath: html, BgImgPath: bghtml }, +}; \ No newline at end of file From f8bc6f17e01aebef07ad9a1462e438163a26975b Mon Sep 17 00:00:00 2001 From: ttpl-rt-217 Date: Sun, 1 Dec 2024 15:09:12 +0530 Subject: [PATCH 2/2] admin UI enchancement --- src/assets/images/HTML.svg | 21 +++++---------------- src/assets/images/Qml.svg | 21 +++++---------------- 2 files changed, 10 insertions(+), 32 deletions(-) diff --git a/src/assets/images/HTML.svg b/src/assets/images/HTML.svg index 32693686..b5df0301 100644 --- a/src/assets/images/HTML.svg +++ b/src/assets/images/HTML.svg @@ -1,20 +1,9 @@ - - - - - - + + - - + + - - - - - - - - + diff --git a/src/assets/images/Qml.svg b/src/assets/images/Qml.svg index 556e3193..10a9d5ec 100644 --- a/src/assets/images/Qml.svg +++ b/src/assets/images/Qml.svg @@ -1,20 +1,9 @@ - - - - - - + + - - + + - - - - - - - - +