diff --git a/packages/common-lib/src/components/Loading.js b/packages/common-lib/src/components/Loading.js
index 1b566bde..e1008d73 100644
--- a/packages/common-lib/src/components/Loading.js
+++ b/packages/common-lib/src/components/Loading.js
@@ -1,42 +1,13 @@
-import { Center, VStack, Text, Spinner, Heading } from 'native-base'
+import { Center, HStack, Spinner, Heading } from 'native-base'
import React from 'react'
-import { useWindowSize } from './helper'
-
-export default function Loading({ message = 'Loading', ...prop }) {
- const [width, height] = useWindowSize()
+export default function Loading({ message = 'Loading...'}) {
return (
-
- {prop?.customComponent ? (
- prop?.customComponent
- ) : (
-
-
- {prop?.icon ? (
- prop.icon
- ) : (
-
- )}
-
-
- {message}
-
-
-
-
- )}
+
+
+
+ {message}
+
)
}
diff --git a/packages/nulp_elite/public/locales/be/translation.json b/packages/nulp_elite/public/locales/be/translation.json
index 971cbef5..00efd639 100644
--- a/packages/nulp_elite/public/locales/be/translation.json
+++ b/packages/nulp_elite/public/locales/be/translation.json
@@ -301,5 +301,6 @@
"PUBLISHED_ON_NULP_BY":"NULP-এ প্রকাশিত",
"ACCEPT_THE_NULP_TERMS_OF_USE" : "আমার বয়স 18+ বছর এবং আমি NULP ব্যবহারের শর্তাবলী বুঝি এবং স্বীকার করি",
"As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "একজন পিতা-মাতা/অভিভাবক হিসাবে আমি NULP ব্যবহারের শর্তাবলী বুঝি এবং স্বীকার করি যে আমার সন্তান প্রদত্ত তথ্যের সাথে NULP-এ নিবন্ধন করতে সম্মত।",
- "CONTENT_DERIVED_FROM": "এই বিষয়বস্তু থেকে সংগৃহীত"
+ "CONTENT_DERIVED_FROM": "এই বিষয়বস্তু থেকে সংগৃহীত",
+ "FILTERS":"ফিল্টার"
}
diff --git a/packages/nulp_elite/public/locales/en/translation.json b/packages/nulp_elite/public/locales/en/translation.json
index 7ffe86dc..fda9c3c5 100644
--- a/packages/nulp_elite/public/locales/en/translation.json
+++ b/packages/nulp_elite/public/locales/en/translation.json
@@ -321,5 +321,6 @@
"PUBLISHED_ON_NULP_BY":"PUBLISHED ON NULP BY",
"ACCEPT_THE_NULP_TERMS_OF_USE" : "I am 18+ years old and understand and accept the NULP Terms of Use",
"As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "As a parent/guardian I understand & accept the NULP Terms of Use agree my child to register on NULP with the given information.",
- "CONTENT_DERIVED_FROM": "This content is derived from"
+ "CONTENT_DERIVED_FROM": "This content is derived from",
+ "FILTERS":"Filters"
}
diff --git a/packages/nulp_elite/public/locales/gg/translation.json b/packages/nulp_elite/public/locales/gg/translation.json
index 4a03c5f3..34fa56fb 100644
--- a/packages/nulp_elite/public/locales/gg/translation.json
+++ b/packages/nulp_elite/public/locales/gg/translation.json
@@ -311,6 +311,6 @@
"PUBLISHED_ON_NULP_BY":"NULP દ્વારા પ્રકાશિત",
"ACCEPT_THE_NULP_TERMS_OF_USE" : "હું 18+ વર્ષનો છું અને NULP ઉપયોગની શરતો સમજું છું અને સ્વીકારું છું",
"As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "માતાપિતા/વાલી તરીકે હું NULP ઉપયોગની શરતોને સમજું છું અને સ્વીકારું છું અને સ્વીકારું છું કે મારા બાળકને આપેલ માહિતી સાથે NULP પર નોંધણી કરાવવા માટે સંમત થાઓ.",
- "CONTENT_DERIVED_FROM": "આ સામગ્રીમાંથી ઉત્પન્ન છે"
-
+ "CONTENT_DERIVED_FROM": "આ સામગ્રીમાંથી ઉત્પન્ન છે",
+ "FILTERS":"ફિલ્ટર્સ"
}
diff --git a/packages/nulp_elite/public/locales/hi/translation.json b/packages/nulp_elite/public/locales/hi/translation.json
index 3abf4b93..84d19fa5 100644
--- a/packages/nulp_elite/public/locales/hi/translation.json
+++ b/packages/nulp_elite/public/locales/hi/translation.json
@@ -302,5 +302,6 @@
"THIS_CONTENT_IS_DERIVED_FROM":"यह सामग्री इससे ली गई है",
"PUBLISHED_ON_NULP_BY":"NULP BY पर प्रकाशित",
"ACCEPT_THE_NULP_TERMS_OF_USE" : "मैं 18+ वर्ष का हूं और NULP उपयोग की शर्तों को समझता हूं और स्वीकार करता हूं",
- "As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "एक माता-पिता/अभिभावक के रूप में मैं NULP उपयोग की शर्तों को समझता हूं और स्वीकार करता हूं और अपने बच्चे को दी गई जानकारी के साथ NULP पर पंजीकरण करने के लिए सहमत करता हूं।"
+ "As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "एक माता-पिता/अभिभावक के रूप में मैं NULP उपयोग की शर्तों को समझता हूं और स्वीकार करता हूं और अपने बच्चे को दी गई जानकारी के साथ NULP पर पंजीकरण करने के लिए सहमत करता हूं।",
+ "FILTERS":"फिल्टर"
}
diff --git a/packages/nulp_elite/public/locales/ma/translation.json b/packages/nulp_elite/public/locales/ma/translation.json
index fbbbe179..6abe1562 100644
--- a/packages/nulp_elite/public/locales/ma/translation.json
+++ b/packages/nulp_elite/public/locales/ma/translation.json
@@ -303,6 +303,7 @@
"PUBLISHED_ON_NULP_BY":"NULP द्वारे प्रकाशित",
"ACCEPT_THE_NULP_TERMS_OF_USE" : "मी 18+ वर्षांचा आहे आणि NULP वापरण्याच्या अटी समजतो आणि स्वीकारतो",
"As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "पालक/पालक म्हणून मी NULP वापराच्या अटी समजतो आणि स्वीकारतो आणि माझ्या मुलाने दिलेल्या माहितीसह NULP वर नोंदणी करण्यास सहमती देतो.",
- "CONTENT_DERIVED_FROM": "ही सामग्री यावरून घेतली आहे"
+ "CONTENT_DERIVED_FROM": "ही सामग्री यावरून घेतली आहे",
+ "FILTERS":"फिल्टर"
}
diff --git a/packages/nulp_elite/public/locales/mal/translation.json b/packages/nulp_elite/public/locales/mal/translation.json
index ba54db24..70ab173d 100644
--- a/packages/nulp_elite/public/locales/mal/translation.json
+++ b/packages/nulp_elite/public/locales/mal/translation.json
@@ -303,5 +303,6 @@
"PUBLISHED_ON_NULP_BY":"NULP-ൽ പ്രസിദ്ധീകരിച്ചത്",
"ACCEPT_THE_NULP_TERMS_OF_USE" : "എനിക്ക് 18+ വയസ്സുണ്ട്, NULP ഉപയോഗ നിബന്ധനകൾ മനസ്സിലാക്കുകയും അംഗീകരിക്കുകയും ചെയ്യുന്നു",
"As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "ഒരു രക്ഷിതാവ്/രക്ഷകൻ എന്ന നിലയിൽ, NULP ഉപയോഗ നിബന്ധനകൾ ഞാൻ മനസ്സിലാക്കുകയും അംഗീകരിക്കുകയും ചെയ്യുന്നു, തന്നിരിക്കുന്ന വിവരങ്ങൾക്കൊപ്പം NULP-ൽ രജിസ്റ്റർ ചെയ്യാൻ എൻ്റെ കുട്ടി സമ്മതിക്കുന്നു.",
- "CONTENT_DERIVED_FROM": "ഈ ഉള്ളടക്കം നിന്നു പ്രാപ്തമായതാണ്"
+ "CONTENT_DERIVED_FROM": "ഈ ഉള്ളടക്കം നിന്നു പ്രാപ്തമായതാണ്",
+ "FILTERS":"ഫിൽട്ടറുകൾ"
}
diff --git a/packages/nulp_elite/public/locales/ta/translation.json b/packages/nulp_elite/public/locales/ta/translation.json
index 7a17e9ea..c149ef4d 100644
--- a/packages/nulp_elite/public/locales/ta/translation.json
+++ b/packages/nulp_elite/public/locales/ta/translation.json
@@ -328,5 +328,6 @@
"PUBLISHED_ON_NULP_BY":"NULP ஆல் வெளியிடப்பட்டது",
"ACCEPT_THE_NULP_TERMS_OF_USE" : "எனக்கு 18+ வயது மற்றும் NULP பயன்பாட்டு விதிமுறைகளைப் புரிந்து ஏற்றுக்கொள்கிறேன்",
"As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "ஒரு பெற்றோர்/பாதுகாவலராக நான் NULP பயன்பாட்டு விதிமுறைகளைப் புரிந்துகொண்டு ஏற்றுக்கொள்கிறேன், கொடுக்கப்பட்ட தகவலுடன் NULP இல் பதிவுசெய்ய என் குழந்தை ஒப்புக்கொள்கிறேன்.",
- "CONTENT_DERIVED_FROM": "இந்த உள்ளடக்கம் இதிலிருந்து பெறப்பட்டுள்ளது"
+ "CONTENT_DERIVED_FROM": "இந்த உள்ளடக்கம் இதிலிருந்து பெறப்பட்டுள்ளது",
+ "FILTERS":"வடிப்பான்கள்"
}
diff --git a/packages/nulp_elite/public/locales/te/translation.json b/packages/nulp_elite/public/locales/te/translation.json
index f13064b9..7e07953d 100644
--- a/packages/nulp_elite/public/locales/te/translation.json
+++ b/packages/nulp_elite/public/locales/te/translation.json
@@ -266,5 +266,6 @@
"PUBLISHED_ON_NULP_BY":"NULP ద్వారా ప్రచురించబడింది",
"ACCEPT_THE_NULP_TERMS_OF_USE" : "నాకు 18+ సంవత్సరాలు మరియు NULP ఉపయోగ నిబంధనలను అర్థం చేసుకుని, అంగీకరిస్తున్నాను",
"As_A_PATENT_GUARDIAN_ACCEPT_THE_NULP_TERMS_OF_USE": "తల్లిదండ్రులుగా/సంరక్షకుడిగా నేను NULP ఉపయోగ నిబంధనలను అర్థం చేసుకున్నాను & అంగీకరిస్తున్నాను, అందించిన సమాచారంతో NULPలో నమోదు చేసుకోవడానికి నా బిడ్డ అంగీకరిస్తున్నాను.",
- "CONTENT_DERIVED_FROM": "ఈ సాంఘికత నుండి పొందినది"
+ "CONTENT_DERIVED_FROM": "ఈ సాంఘికత నుండి పొందినది",
+ "FILTERS":"ఫిల్టర్లు"
}
diff --git a/packages/nulp_elite/src/App.js b/packages/nulp_elite/src/App.js
index 104fe33d..997e07ab 100644
--- a/packages/nulp_elite/src/App.js
+++ b/packages/nulp_elite/src/App.js
@@ -272,7 +272,7 @@ function App() {
);
if (data.result.response.framework.id) {
// setCheckPref(true);
- if (data.result.response.framework.id[0] === "nulp") {
+ if (data.result.response.framework.id[0] !== "nulp-domain") {
setCheckPref(false);
} else {
setCheckPref(true);
diff --git a/packages/nulp_elite/src/components/EventCard.js b/packages/nulp_elite/src/components/EventCard.js
index 5e19b35a..72bc2364 100644
--- a/packages/nulp_elite/src/components/EventCard.js
+++ b/packages/nulp_elite/src/components/EventCard.js
@@ -189,56 +189,12 @@ export default function EventCard({ items, index, onClick }) {
alt="App Icon"
/>
-
- {/* {items.organisation && items.organisation.length > 0 && (
-
-
- {items.organisation.length === 1
- ? items.organisation[0]
- : `${items.organisation[0]} + ${items.organisation.length - 1}`}
-
-
- )} */}
- {/* {(items.board ||
- items.gradeLevel ||
- items.se_boards ||
- items.se_gradeLevels) && (
- <>
-
- {(items.board || items.se_boards) && (
-
-
-
- //
- )}
- {(items.gradeLevel || items.se_gradeLevels) && (
-
-
-
- )}
-
- >
- )} */}
);
}
diff --git a/packages/nulp_elite/src/components/drawerFilter.js b/packages/nulp_elite/src/components/drawerFilter.js
index 56aaffd0..82f9ff08 100644
--- a/packages/nulp_elite/src/components/drawerFilter.js
+++ b/packages/nulp_elite/src/components/drawerFilter.js
@@ -452,7 +452,7 @@ const uniqueFilteredSubCategories = [...new Set(filteredSubCategories.map(item =
onClick={toggleDrawer(anchor, true)}
className="h6-title "
>
- Filters
+ {t("FILTERS")}
diff --git a/packages/nulp_elite/src/pages/content/AllContent.js b/packages/nulp_elite/src/pages/content/AllContent.js
index 65cfe19e..22f307e3 100644
--- a/packages/nulp_elite/src/pages/content/AllContent.js
+++ b/packages/nulp_elite/src/pages/content/AllContent.js
@@ -7,8 +7,6 @@ import Footer from "components/Footer";
import { Link, useNavigate } from "react-router-dom";
import FloatingChatIcon from "../../components/FloatingChatIcon";
import Box from "@mui/material/Box";
-import data from "../../assets/contentSerach.json";
-import SearchBox from "components/search";
import * as frameworkService from "../../services/frameworkService";
import Container from "@mui/material/Container";
import Carousel from "react-multi-carousel";
@@ -23,12 +21,9 @@ const urlConfig = require("../../configs/urlConfig.json");
import ToasterCommon from "../ToasterCommon";
import CollectionIcon from "@mui/icons-material/Collections";
import ResourceIcon from "@mui/icons-material/LibraryBooks";
-import ContentPlaylistIcon from "@mui/icons-material/PlaylistPlay";
import LocalLibraryOutlinedIcon from "@mui/icons-material/LocalLibraryOutlined";
import ContentCopyIcon from "@mui/icons-material/ContentCopy";
-import CardMembershipSharpIcon from "@mui/icons-material/CardMembershipSharp";
import InsertChartOutlinedIcon from "@mui/icons-material/InsertChartOutlined";
-import PlaylistAddCheckOutlinedIcon from "@mui/icons-material/PlaylistAddCheckOutlined";
import FactCheckOutlinedIcon from "@mui/icons-material/FactCheckOutlined";
import AutoStoriesOutlinedIcon from "@mui/icons-material/AutoStoriesOutlined";
import ChecklistOutlinedIcon from "@mui/icons-material/ChecklistOutlined";
@@ -36,6 +31,7 @@ import SkeletonLoader from "components/skeletonLoader";
import NoResult from "./noResultFound";
const routeConfig = require("../../configs/routeConfig.json");
import * as util from "../../services/utilService";
+import { Loading } from "@shiksha/common-lib";
const responsiveCard = {
superLargeDesktop: {
@@ -87,6 +83,7 @@ const AllContent = () => {
const [domainName, setDomainName] = useState();
const [orgId, setOrgId] = useState();
const [framework, setFramework] = useState();
+ const [isLoading, setIsLoading] = useState(false);
const handleResize = () => {
setIsMobile(window.innerWidth <= 767);
@@ -112,7 +109,7 @@ const AllContent = () => {
}, [selectedDomain, domainName]);
useEffect(() => {
fetchData();
- }, [ domainName]);
+ }, [domainName]);
const showErrorMessage = (msg) => {
setToasterMessage(msg);
@@ -123,6 +120,7 @@ const AllContent = () => {
};
const fetchData = async () => {
+ setIsLoading(true);
const newPath = location.pathname;
sessionStorage.setItem("previousRoutes", newPath);
setError(null);
@@ -131,7 +129,7 @@ const AllContent = () => {
filters: {
board: [domainName],
primaryCategory: [
- "course","Manuals/SOPs","Good Practices","Reports","Manual/SOPs"
+ "course", "Manuals/SOPs", "Good Practices", "Reports", "Manual/SOPs"
],
// visibility: ["Default", "Parent"], Commentent because not showing contents on prod
},
@@ -172,7 +170,7 @@ const AllContent = () => {
const filteredAndSortedData = response?.data?.result?.content
?.filter((item) =>
- ["Manuals/SOPs","Manual/SOPs", "Good Practices", "Reports", "Course"].includes(
+ ["Manuals/SOPs", "Manual/SOPs", "Good Practices", "Reports", "Course"].includes(
item.primaryCategory
)
)
@@ -196,6 +194,9 @@ const AllContent = () => {
} catch (error) {
showErrorMessage(t("FAILED_TO_FETCH_DATA"));
}
+ finally {
+ setIsLoading(false);
+ }
};
const getCookieValue = (name) => {
@@ -281,7 +282,7 @@ const AllContent = () => {
}
};
- const clearDomain = ()=>{
+ const clearDomain = () => {
setDomainName(null)
}
@@ -291,14 +292,6 @@ const AllContent = () => {
const renderItems = (items, category) => {
return items.map((item) => (
- //
{
className="d-flex jc-bw my-20 px-10"
style={{ alignItems: "center" }}
>
-
-
- {t("YOU_ARE_VIEWING_CONTENTS_FOR")}
-
-
- {domainName}
-
-
- ✖
-
+ sx={{ marginTop: "10px", alignItems: "center" }}
+ className="d-flex xs-d-none"
+ >
+
+ {t("YOU_ARE_VIEWING_CONTENTS_FOR")}
+
+
+
+ {domainName}
+
+
+ ✖
+
+
+
-
-
- )}
-
- {error && (
+ )}
+ {isLoading ? (
+
+ ) : error ? (
{error}
- )}
- {data?.length > 0 ? (
+ ) : data?.length > 0 ? (
Object.entries(
data.reduce((acc, item) => {
if (!acc[item.primaryCategory]) {
@@ -400,7 +393,7 @@ const AllContent = () => {
display: "inline-block",
margin: "15px 0px 20px",
}}
- className="h4-title "
+ className="h4-title"
>
{" "}
{
}}
className="h3-title"
>
- {category === "Course" ? "Courses" : category}
+ {category === "Course" ? "Courses" : category}
{" "}
@@ -418,7 +411,8 @@ const AllContent = () => {
to={`${routeConfig.ROUTES.VIEW_ALL_PAGE.VIEW_ALL}?${category}?${domainName}`}
className="viewAll mr-22"
>
- {t("VIEW_ALL")} {category === "Course" ? "Courses" : category}
+ {t("VIEW_ALL")}{" "}
+ {category === "Course" ? "Courses" : category}
)}
@@ -442,25 +436,25 @@ const AllContent = () => {
>
{expandedCategory === category
? items?.map((item) => (
-
-
- handleCardClick(item, item.primaryCategory)
- }
- >
-
- ))
+
+
+ handleCardClick(item, item.primaryCategory)
+ }
+ >
+
+ ))
: items?.slice(0, 4).map((item) => (
-
-
- handleCardClick(item, item.primaryCategory)
- }
- >
-
- ))}
+
+
+ handleCardClick(item, item.primaryCategory)
+ }
+ >
+
+ ))}
) : (
<>
@@ -477,6 +471,7 @@ const AllContent = () => {
) : (
)}
+
diff --git a/packages/nulp_elite/src/pages/content/CategoryPage.js b/packages/nulp_elite/src/pages/content/CategoryPage.js
index 6cddbdd0..79836366 100644
--- a/packages/nulp_elite/src/pages/content/CategoryPage.js
+++ b/packages/nulp_elite/src/pages/content/CategoryPage.js
@@ -2,11 +2,9 @@ import React, { useState, useEffect } from "react";
import { useParams, Link, useNavigate, useLocation } from "react-router-dom";
import BoxCard from "components/Card";
import Box from "@mui/material/Box";
-import Grid from "@mui/material/Grid";
import { getAllContents } from "services/contentService";
import Header from "components/header";
import Footer from "components/Footer";
-import ArrowBackOutlinedIcon from "@mui/icons-material/ArrowBackOutlined";
import Container from "@mui/material/Container";
import Pagination from "@mui/material/Pagination";
import Alert from "@mui/material/Alert";
@@ -15,13 +13,13 @@ import domainWithImage from "../../assets/domainImgForm.json";
import DomainCarousel from "components/domainCarousel";
import * as frameworkService from "../../services/frameworkService";
import * as util from "../../services/utilService";
-import SearchBox from "components/search";
import { t } from "i18next";
import appConfig from "../../configs/appConfig.json";
const urlConfig = require("../../configs/urlConfig.json");
import ToasterCommon from "../ToasterCommon";
import SkeletonLoader from "components/skeletonLoader";
import NoResult from "./noResultFound";
+import { Loading } from "@shiksha/common-lib";
const CategoryPage = () => {
const [domain, setDomain] = useState([]);
@@ -40,17 +38,18 @@ const CategoryPage = () => {
const routeConfig = require("../../configs/routeConfig.json");
const [orgId, setOrgId] = useState();
const [framework, setFramework] = useState();
+ const [isLoading, setIsLoading] = useState(false);
const location = useLocation();
const queryString = location.search;
-const cleanQueryString = queryString.startsWith("?")
- ? queryString.slice(1)
- : queryString;
+ const cleanQueryString = queryString.startsWith("?")
+ ? queryString.slice(1)
+ : queryString;
-const [categoryRaw, preselectedDomainRaw] = cleanQueryString.split("?");
+ const [categoryRaw, preselectedDomainRaw] = cleanQueryString.split("?");
-const category = decodeURIComponent(categoryRaw || "");
-const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
+ const category = decodeURIComponent(categoryRaw || "");
+ const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
const showErrorMessage = (msg) => {
setToasterMessage(msg);
@@ -60,24 +59,20 @@ const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
setToasterOpen(true);
};
- const handleSearch = (query) => {
- console.log("Search query:", query);
- };
-
const handleDomainFilter = (query, domainName) => {
setSelectedDomain(query);
setDomainName(domainName);
- fetchMoreItems( domainName);
+ fetchMoreItems(domainName);
};
useEffect(() => {
if (selectedDomain) {
- fetchMoreItems( selectedDomain);
+ fetchMoreItems(selectedDomain);
}
}, [selectedDomain]);
useEffect(() => {
- fetchMoreItems( selectedDomain);
+ fetchMoreItems(selectedDomain);
}, [currentPage]);
const handleGoBack = () => {
@@ -89,6 +84,7 @@ const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
};
const fetchMoreItems = async (selectedDomain) => {
+ setIsLoading(true);
const newPath = location.pathname + "?" + category;
sessionStorage.setItem("previousRoutes", newPath);
setError(null);
@@ -97,9 +93,9 @@ const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
filters: {
primaryCategory: [category],
visibility: [],
- board: domainName
- ? [domainName]
- : (preselectedDomain && preselectedDomain !== "null" ? [preselectedDomain] : undefined)
+ board: domainName
+ ? [domainName]
+ : (preselectedDomain && preselectedDomain !== "null" ? [preselectedDomain] : undefined)
},
limit: 20,
@@ -136,6 +132,7 @@ const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
};
try {
+
const url = `${urlConfig.URLS.PUBLIC_PREFIX}${urlConfig.URLS.CONTENT.SEARCH}?orgdetails=${appConfig.ContentPlayer.contentApiQueryParams.orgdetails}&licenseDetails=${appConfig.ContentPlayer.contentApiQueryParams.licenseDetails}`;
const response = await getAllContents(url, data, headers);
setData(response.data.result.content ?? []);
@@ -143,6 +140,9 @@ const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
} catch (error) {
showErrorMessage(t("FAILED_TO_FETCH_DATA"));
}
+ finally {
+ setIsLoading(false);
+ }
};
// Function to push data to the array
@@ -223,7 +223,7 @@ const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
useEffect(() => {
if (category) {
- fetchMoreItems( selectedDomain);
+ fetchMoreItems(selectedDomain);
}
fetchUserData();
}, [category]);
@@ -289,33 +289,42 @@ const preselectedDomain = decodeURIComponent(preselectedDomainRaw || "");
)}
- {data.length === 0 && !error && }
-
-
- {data &&
- data.map((item) => (
-
-
- handleCardClick(item.identifier, item.contentType)
- }
- >
-
- ))}
-
-
-
-
+ {isLoading ? (
+
+ ) : (
+ <>
+ {data && data.length === 0 && !error && }
+
+
+ {data &&
+ data.map((item) => (
+
+
+ handleCardClick(item.identifier, item.contentType)
+ }
+ />
+
+ ))}
+
+
+ {totalPages > 1 && (
+
+ )}
+
+ >
+ )}
+
>
diff --git a/packages/nulp_elite/src/pages/content/joinCourse.js b/packages/nulp_elite/src/pages/content/joinCourse.js
index 9c525555..2ae667db 100644
--- a/packages/nulp_elite/src/pages/content/joinCourse.js
+++ b/packages/nulp_elite/src/pages/content/joinCourse.js
@@ -1393,7 +1393,7 @@ className="xs-hide accordionBoxShadow"
{userData?.result?.content?.orgDetails?.orgName}
-
diff --git a/packages/nulp_elite/src/pages/events/eventDetails.js b/packages/nulp_elite/src/pages/events/eventDetails.js
index 4d52f631..5defa02d 100644
--- a/packages/nulp_elite/src/pages/events/eventDetails.js
+++ b/packages/nulp_elite/src/pages/events/eventDetails.js
@@ -765,11 +765,6 @@ const formatTimeWithTimezone = (date) => {
className="eventCardImg"
alt="App Icon"
/>
- {/*
*/}
{
const [search, setSearch] = useState(true);
@@ -80,7 +50,6 @@ const EventList = (props) => {
location.state?.domainName || undefined
);
const [domainList, setDomainList] = useState([]);
- const { domainquery } = location.state || {};
const [totalPages, setTotalPages] = useState(1);
const [totalPage, setTotalPage] = useState(1)
const [currentPage, setCurrentPage] = useState(1);
@@ -88,7 +57,6 @@ const EventList = (props) => {
const [toasterOpen, setToasterOpen] = useState(false);
const [toasterMessage, setToasterMessage] = useState("");
const [isMobile, setIsMobile] = useState(window.innerWidth <= 767);
- const [channelData, setChannelData] = React.useState(true);
const [globalSearchQuery, setGlobalSearchQuery] = useState(
location.state?.globalSearchQuery || undefined
);
@@ -246,39 +214,6 @@ const EventList = (props) => {
setIsLoading(false);
}
};
-
- // const fetchMyEvents = async () => {
- // setIsLoading(true);
- // setError(null);
-
- // const _userId = util.userId();
-
- // let data = JSON.stringify({
- // request: {
- // filters: { objectType: ["Event"] },
- // limit: 10,
- // sort_by: { lastPublishedOn: "desc" },
- // offset: 0,
- // },
- // });
- // const headers = {
- // "Content-Type": "application/json",
- // };
-
- // try {
- // const url = `${urlConfig.URLS.LEARNER_PREFIX}${urlConfig.URLS.COURSE.GET_ENROLLED_COURSES}/${_userId}?contentType=Event`;
- // const response = await fetch(url, headers);
- // const responseData = await response.json();
- // console.log("My data ---", responseData.result.courses);
- // // setMyData(responseData.result.courses);
- // } catch (error) {
- // console.log("m data error---", error);
- // showErrorMessage(t("FAILED_TO_FETCH_DATA"));
- // } finally {
- // setIsLoading(false);
- // }
- // };
-
const fetchUserData = async () => {
try {
const uservData = await util.userData();
@@ -393,7 +328,7 @@ const EventList = (props) => {
{isLoading ? (
- {t("LOADING")}
+
) : error ? (
{error}
) : data ? (
diff --git a/packages/nulp_elite/src/pages/profile/continueLearning.js b/packages/nulp_elite/src/pages/profile/continueLearning.js
index d45b2c88..65226f6c 100644
--- a/packages/nulp_elite/src/pages/profile/continueLearning.js
+++ b/packages/nulp_elite/src/pages/profile/continueLearning.js
@@ -1,19 +1,12 @@
import React, { useState, useEffect, useMemo } from "react";
import { useTranslation } from "react-i18next";
-import Footer from "components/Footer";
-import Header from "components/header";
import Container from "@mui/material/Container";
import Box from "@mui/material/Box";
-import Typography from "@mui/material/Typography";
-import Link from "@mui/material/Link";
import Grid from "@mui/material/Grid";
-import Breadcrumbs from "@mui/material/Breadcrumbs";
-import Filter from "components/filter";
import BoxCard from "components/Card";
import FloatingChatIcon from "../../components/FloatingChatIcon";
-import { useParams, useNavigate, useLocation } from "react-router-dom";
+import { useNavigate, useLocation } from "react-router-dom";
import * as util from "../../services/utilService";
-import Search from "components/search";
import NoResult from "pages/content/noResultFound";
import Alert from "@mui/material/Alert";
import Pagination from "@mui/material/Pagination";
@@ -22,6 +15,7 @@ const urlConfig = require("../../configs/urlConfig.json");
import ToasterCommon from "../ToasterCommon";
import { TextField } from "@mui/material";
const routeConfig = require("../../configs/routeConfig.json");
+import { Loading } from "@shiksha/common-lib";
const ContinueLearning = () => {
const { t } = useTranslation();
const [data, setData] = useState([]);
@@ -88,6 +82,7 @@ const ContinueLearning = () => {
fetchGradeLevels();
}
}, [orgId, framework]);
+
const fetchGradeLevels = async () => {
try {
const url = `${urlConfig.URLS.PUBLIC_PREFIX}${urlConfig.URLS.FRAMEWORK.READ}/${framework}?categories=${urlConfig.params.framework}`;
@@ -114,10 +109,6 @@ const ContinueLearning = () => {
showErrorMessage(t("FAILED_TO_FETCH_DATA"));
}
};
- const handleCourseStatusChange = (selectedOptions) => {
- const selectedValues = selectedOptions.map((option) => option.value);
- setCourseStatus(selectedValues);
- };
const filteredCourses = useMemo(() => {
let filtered = data;
@@ -155,6 +146,7 @@ const ContinueLearning = () => {
const startIndex = (currentPage - 1) * itemsPerPage;
return filteredCourses.slice(startIndex, startIndex + itemsPerPage);
}, [currentPage, itemsPerPage, filteredCourses]);
+
return (
{toasterMessage &&
}
@@ -167,13 +159,6 @@ const ContinueLearning = () => {
{error}
)}
- {/*
-
- */}
({
backgroundColor: theme.palette.mode === "dark" ? "#1A2027" : "#fff",
@@ -58,30 +51,8 @@ theme.typography.h3 = {
},
};
-const responsive = {
- superLargeDesktop: {
- breakpoint: { max: 4000, min: 3000 },
- items: 5,
- },
- desktop: {
- breakpoint: { max: 3000, min: 1024 },
- items: 8,
- },
- tablet: {
- breakpoint: { max: 1024, min: 464 },
- items: 2,
- },
- mobile: {
- breakpoint: { max: 464, min: 0 },
- items: 1,
- },
-};
-
const DomainList = ({ globalSearchQuery }) => {
const { t } = useTranslation();
- // console.log(data.result.categories.terms.category);
- // const [search, setSearch] = React.useState(true);
- // const [searchState, setSearchState] = React.useState(false);
const [data, setData] = React.useState();
const [channelData, setChannelData] = React.useState(true);
const [isLoading, setIsLoading] = useState(false);
@@ -472,19 +443,10 @@ const DomainList = ({ globalSearchQuery }) => {
{term.name}
@@ -533,22 +495,13 @@ const DomainList = ({ globalSearchQuery }) => {
{isMobile ? (
{isLoading ? (
- {t("LOADING")}
+
) : error ? (
{error}
) : popularCourses.length > 0 ? (
{popularCourses.slice(0, 10).map((items, index) => (
- //
{
) : (
{isLoading ? (
- {t("LOADING")}
+
) : error ? (
{error}
) : popularCourses.length > 0 ? (
{popularCourses.slice(0, 10).map((items) => (
- //
{
{isMobile ? (
{isLoading ? (
- {t("LOADING")}
+
) : error ? (
{error}
) : recentlyAddedCourses.length > 0 ? (
{recentlyAddedCourses.slice(0, 10).map((items, index) => (
- //
{
) : (
{isLoading ? (
- {t("LOADING")}
+
) : error ? (
{error}
) : recentlyAddedCourses.length > 0 ? (
{recentlyAddedCourses.slice(0, 10).map((items) => (
- //
{
-
);
diff --git a/packages/nulp_elite/src/pages/voting/votingDashboard.js b/packages/nulp_elite/src/pages/voting/votingDashboard.js
index b4e26703..ba169623 100644
--- a/packages/nulp_elite/src/pages/voting/votingDashboard.js
+++ b/packages/nulp_elite/src/pages/voting/votingDashboard.js
@@ -49,6 +49,7 @@ import Toast from "../Toast";
import Loader from "pages/Loader";
import Unauthorized from "pages/Unauthorized";
import moment from "moment";
+import { Loading } from "@shiksha/common-lib";
const votingDashboard = () => {
const { t } = useTranslation();
@@ -408,8 +409,10 @@ const votingDashboard = () => {
- {visibleLivePolls && visibleLivePolls?.length >= 1 ? (
- visibleLivePolls?.map((items, index) => (
+ {isLoading ? (
+
+ ) : visibleLivePolls && visibleLivePolls.length >= 1 ? (
+ visibleLivePolls.map((items, index) => (
{
{items.title && (
{items.title}
@@ -453,13 +456,13 @@ const votingDashboard = () => {
>
- {moment(items?.start_date).format(
+ {moment(items.start_date).format(
"dddd, MMMM Do YYYY, h:mm:ss a"
)}
- {items?.poll_keywords && items.poll_keywords.length > 0 ? (
+ {items.poll_keywords && items.poll_keywords.length > 0 ? (
<>
{items.poll_keywords.slice(0, 2).map((keyword, index) => (
{
)}
>
) : (
-
-
+
)}
-
{
openSocialMediaLink(event, shareUrl);
}}
>
-
+
- openSocialMediaLink(event, shareUrl)
- }
+ onClick={(event) => openSocialMediaLink(event, shareUrl)}
>
@@ -536,9 +531,7 @@ const votingDashboard = () => {
className="pr-4"
title={items.title}
summary={`Participate in this poll: ${items.title}`}
- onClick={(event) => {
- openSocialMediaLink(event, shareUrl);
- }}
+ onClick={(event) => openSocialMediaLink(event, shareUrl)}
>
@@ -546,9 +539,7 @@ const votingDashboard = () => {
url={shareUrl}
className="pr-4"
title={`Check out this poll: ${items.title}`}
- onClick={(event) => {
- openSocialMediaLink(event, shareUrl);
- }}
+ onClick={(event) => openSocialMediaLink(event, shareUrl)}
>
{
- handleOpenModal(items.poll_id, event)
- }
+ onClick={(event) => handleOpenModal(items.poll_id, event)}
>
{t("VIEW_STATUS")}{" "}
@@ -578,20 +567,19 @@ const votingDashboard = () => {
>
{t("EDIT")}
- {admin ||
- (contentCreator && (
- {
- event.stopPropagation();
- handleDialogOpen(items.poll_id, event);
- }}
- >
- {t("DELETE")}{" "}
-
-
- ))}
+ {(admin || contentCreator) && (
+ {
+ event.stopPropagation();
+ handleDialogOpen(items.poll_id, event);
+ }}
+ >
+ {t("DELETE")}{" "}
+
+
+ )}
@@ -599,9 +587,7 @@ const votingDashboard = () => {
url={shareUrl}
className="pr-4"
quote={`Check out this poll: ${items.title}`}
- onClick={(event) => {
- openSocialMediaLink(event, shareUrl);
- }}
+ onClick={(event) => openSocialMediaLink(event, shareUrl)}
>
@@ -610,9 +596,7 @@ const votingDashboard = () => {
title={`Check out this poll: ${items.title}`}
separator=":: "
className="pr-4"
- onClick={(event) =>
- openSocialMediaLink(event, shareUrl)
- }
+ onClick={(event) => openSocialMediaLink(event, shareUrl)}
>
@@ -621,9 +605,7 @@ const votingDashboard = () => {
className="pr-4"
title={items.title}
summary={`Participate in this poll: ${items.title}`}
- onClick={(event) => {
- openSocialMediaLink(event, shareUrl);
- }}
+ onClick={(event) => openSocialMediaLink(event, shareUrl)}
>
@@ -631,9 +613,7 @@ const votingDashboard = () => {
url={shareUrl}
className="pr-4"
title={`Check out this poll: ${items.title}`}
- onClick={(event) => {
- openSocialMediaLink(event, shareUrl);
- }}
+ onClick={(event) => openSocialMediaLink(event, shareUrl)}
>
{
)}
- {visibleDraftPolls && visibleDraftPolls?.length >= 1 ? (
+ {isLoading ? (
+
+ ) : visibleDraftPolls && visibleDraftPolls?.length >= 1 ? (
visibleDraftPolls?.map((items, index) => (
{
className="customlabeltwo cardLabelEllips"
>
- {index < 2
- ? keyword
- : `${keyword} + ${
- items.poll_keywords.length - 2
- }`}
+ {index < 2
+ ? keyword
+ : `${keyword} + ${items.poll_keywords.length - 2
+ }`}
))}
@@ -822,20 +803,6 @@ const votingDashboard = () => {
- {/*
-
- */}
@@ -910,7 +877,7 @@ const votingDashboard = () => {
))
- ) : (
+ ) : (
{
)}
- {visibleClosedPolls && visibleClosedPolls?.length >= 1 ? (
+ {isLoading ? (
+
+ ) : visibleClosedPolls && visibleClosedPolls?.length >= 1 ? (
visibleClosedPolls?.map((items, index) => (
{
className="customlabeltwo cardLabelEllips"
>
- {index < 2
+ {index < 2
? keyword
- : `${keyword} + ${
- items.poll_keywords.length - 2
- }`}
+ : `${keyword} + ${items.poll_keywords.length - 2
+ }`}
))}
@@ -1076,8 +1044,8 @@ const votingDashboard = () => {
className="customlabeltwo cardLabelEllips"
>
- {items.poll_keywords[2]} +{" "}
- {items.poll_keywords.length - 3}
+ {items.poll_keywords[2]} +{" "}
+ {items.poll_keywords.length - 3}
)}
diff --git a/packages/nulp_elite/src/pages/voting/votingList.js b/packages/nulp_elite/src/pages/voting/votingList.js
index d3fb6653..03110642 100644
--- a/packages/nulp_elite/src/pages/voting/votingList.js
+++ b/packages/nulp_elite/src/pages/voting/votingList.js
@@ -2,8 +2,6 @@ import React, { useState, useEffect } from "react";
import { useNavigate, useLocation } from "react-router-dom";
import Box from "@mui/material/Box";
import VotingCard from "../../components/VotingCard";
-import Search from "components/search";
-import Filter from "components/filter";
import Grid from "@mui/material/Grid";
import Footer from "components/Footer";
import Header from "components/header";
@@ -15,7 +13,6 @@ import ToasterCommon from "../ToasterCommon";
import VotingDrawerFilter from "../../components/VotingDrawerFilter";
import Tab from "@mui/material/Tab";
import TabContext from "@mui/lab/TabContext";
-// import TabContext from "@material-ui/lab/TabContext";
import TabList from "@mui/lab/TabList";
import TabPanel from "@mui/lab/TabPanel";
import PublicOutlinedIcon from "@mui/icons-material/PublicOutlined";
@@ -23,6 +20,7 @@ import RecentActorsOutlinedIcon from "@mui/icons-material/RecentActorsOutlined";
import FloatingChatIcon from "components/FloatingChatIcon";
const urlConfig = require("../../configs/urlConfig.json");
import { useTranslation } from "react-i18next";
+import { Loading } from "@shiksha/common-lib";
const VotingList = () => {
const [toasterOpen, setToasterOpen] = useState(false);
@@ -184,7 +182,7 @@ const VotingList = () => {
{isLoading ? (
- Loading...
+
) : error ? (
{error}
) : data && data?.length ? (
diff --git a/packages/nulp_elite/src/styles/style.css b/packages/nulp_elite/src/styles/style.css
index 56fdf9b5..2bb470b3 100644
--- a/packages/nulp_elite/src/styles/style.css
+++ b/packages/nulp_elite/src/styles/style.css
@@ -228,9 +228,6 @@ button {
.domainHover {
cursor: pointer;
- display: block;
- height: 37px;
- margin: auto;
}
.carousel-active-ui {
@@ -2112,7 +2109,6 @@ button {
@media (min-width: 1201px) {
.domainText {
- width: 82px !important;
margin: 0 20px !important;
}
@@ -3327,13 +3323,6 @@ custom-chip {
color: #0e7a9c !important;
}
-/* .domainHover:hover {
- transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
- border-radius: 4px;
-
- cursor: pointer;
-} */
-
.searchUser {
font-size: 13px !important;
}
@@ -3580,6 +3569,7 @@ header .MuiContainer-maxWidthLg {
}
.my-class {
margin: 20px 0px 10px 0px !important;
+ text-align: center;
}
thead th {
font-weight: 600 !important;