From 432516de73cc2b17530ed964cccd88541212535f Mon Sep 17 00:00:00 2001 From: Akshata Katwal Date: Thu, 26 Dec 2024 12:51:36 +0530 Subject: [PATCH 1/8] Issue feat PS-2921:If pagination applied, and after that filter gets changed, then pagination should reset to first page --- .../workspace/content/allContents/index.tsx | 19 ++++- .../content/discover-contents/index.tsx | 76 +++++++++++-------- src/pages/workspace/content/draft/index.tsx | 18 ++++- src/pages/workspace/content/publish/index.tsx | 18 ++++- .../workspace/content/submitted/index.tsx | 19 ++++- .../workspace/content/up-review/index.tsx | 19 ++++- 6 files changed, 126 insertions(+), 43 deletions(-) diff --git a/src/pages/workspace/content/allContents/index.tsx b/src/pages/workspace/content/allContents/index.tsx index 398b7ed..8104259 100644 --- a/src/pages/workspace/content/allContents/index.tsx +++ b/src/pages/workspace/content/allContents/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState, useCallback } from "react"; +import React, { useEffect, useMemo, useState, useCallback, useRef } from "react"; import Layout from "../../../../components/Layout"; import { Typography, @@ -61,6 +61,8 @@ const AllContentsPage = () => { const [loading, setLoading] = useState(false); const [contentDeleted, setContentDeleted] = React.useState(false); + const prevFilterRef = useRef(filter); + const fetchContentAPI = useSharedStore( (state: any) => state.fetchContentAPI ); @@ -152,7 +154,20 @@ const AllContentsPage = () => { const sort_by = { lastUpdatedOn: order, }; - const offset =debouncedSearchTerm!==""? 0: page * LIMIT; + let offset =debouncedSearchTerm!==""? 0: page * LIMIT; + if (prevFilterRef.current !== filter) { + offset=0; + setPage(0); + router.push( + { + pathname: router.pathname, + query: { ...router.query, page: 1 }, + }, + undefined, + { shallow: true } + ); + prevFilterRef.current = filter; + } console.log("seraching", debouncedSearchTerm) const response = await getContent( status, diff --git a/src/pages/workspace/content/discover-contents/index.tsx b/src/pages/workspace/content/discover-contents/index.tsx index 3b2af00..9155ba8 100644 --- a/src/pages/workspace/content/discover-contents/index.tsx +++ b/src/pages/workspace/content/discover-contents/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState, useCallback } from "react"; +import React, { useEffect, useMemo, useState, useCallback, useRef } from "react"; import Layout from "../../../../components/Layout"; import { Typography, @@ -59,6 +59,7 @@ const ContentsPage = () => { const [sortBy, setSortBy] = useState("Modified On"); const [contentList, setContentList] = React.useState([]); const [data, setData] = React.useState([]); + const prevFilterRef = useRef(filter); const [loading, setLoading] = useState(false); const [contentDeleted, setContentDeleted] = React.useState(false); @@ -126,38 +127,46 @@ const ContentsPage = () => { const sort_by = { lastUpdatedOn: order, }; - const offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - - const contentType="discover-contents" -let response; -if(state!=="All") -{ - response = await getContent( - status, - query, - LIMIT, - offset, - primaryCategory, - sort_by, - contentType, - state - ); -} -else{ - response = await getContent( - status, - query, - LIMIT, - offset, - primaryCategory, - sort_by, - contentType - ); -} - - const contentList = (response?.content || []).concat( - response?.QuestionSet || [] - ); + let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; + if (prevFilterRef.current !== filter) { + offset=0; + setPage(0); + router.push( + { + pathname: router.pathname, + query: { ...router.query, page: 1 }, + }, + undefined, + { shallow: true } + ); + prevFilterRef.current = filter; + } + const contentType = "discover-contents"; + let response; + if (state !== "All") { + response = await getContent( + status, + query, + LIMIT, + offset, + primaryCategory, + sort_by, + contentType, + state + ); + } else { + response = await getContent( + status, + query, + LIMIT, + offset, + primaryCategory, + sort_by, + contentType + ); + } + + const contentList = (response?.content || []).concat(response?.QuestionSet || []); setContentList(contentList); setTotalCount(response?.count); setLoading(false); @@ -166,6 +175,7 @@ else{ } }; getContentList(); + }, [debouncedSearchTerm, filter,fetchContentAPI, sortBy, state, page]); useEffect(() => { diff --git a/src/pages/workspace/content/draft/index.tsx b/src/pages/workspace/content/draft/index.tsx index e1ee0a2..cc168dd 100644 --- a/src/pages/workspace/content/draft/index.tsx +++ b/src/pages/workspace/content/draft/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState } from "react"; +import React, { useEffect, useMemo, useRef, useState } from "react"; import Layout from "../../../../components/Layout"; import { Typography, @@ -50,6 +50,7 @@ const DraftPage = () => { const fetchContentAPI = useSharedStore( (state: any) => state.fetchContentAPI ); + const prevFilterRef = useRef(filter); const [debouncedSearchTerm, setDebouncedSearchTerm] = useState(searchTerm); @@ -108,8 +109,21 @@ const DraftPage = () => { try { setLoading(true); const query = debouncedSearchTerm || ""; - const offset =debouncedSearchTerm!==""? 0 : page * LIMIT; + let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; const primaryCategory = filter.length ? filter : []; + if (prevFilterRef.current !== filter) { + offset=0; + setPage(0); + router.push( + { + pathname: router.pathname, + query: { ...router.query, page: 1 }, + }, + undefined, + { shallow: true } + ); + prevFilterRef.current = filter; + } const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order }; const response = await getContent( diff --git a/src/pages/workspace/content/publish/index.tsx b/src/pages/workspace/content/publish/index.tsx index ff55a1c..b032e1f 100644 --- a/src/pages/workspace/content/publish/index.tsx +++ b/src/pages/workspace/content/publish/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState } from "react"; +import React, { useEffect, useMemo, useRef, useState } from "react"; import Layout from "../../../../components/Layout"; import { Typography, @@ -54,6 +54,7 @@ const PublishPage = () => { useState(searchTerm); const router = useRouter(); + const prevFilterRef = useRef(filter); useEffect(() => { const handler = setTimeout(() => { @@ -119,8 +120,21 @@ const PublishPage = () => { try { setLoading(true); const query = debouncedSearchTerm || ""; - const offset =debouncedSearchTerm!==""? 0 : page * LIMIT; + let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; const primaryCategory = filter.length ? filter : []; + if (prevFilterRef.current !== filter) { + offset=0; + setPage(0); + router.push( + { + pathname: router.pathname, + query: { ...router.query, page: 1 }, + }, + undefined, + { shallow: true } + ); + prevFilterRef.current = filter; + } const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order }; const response = await getContent( diff --git a/src/pages/workspace/content/submitted/index.tsx b/src/pages/workspace/content/submitted/index.tsx index b2e6f45..2b4b2ad 100644 --- a/src/pages/workspace/content/submitted/index.tsx +++ b/src/pages/workspace/content/submitted/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import React, { useEffect, useRef, useState } from "react"; import Layout from "../../../../components/Layout"; import { Typography, @@ -49,6 +49,8 @@ const SubmittedForReviewPage = () => { const fetchContentAPI = useSharedStore( (state: any) => state.fetchContentAPI ); + const prevFilterRef = useRef(filter); + useEffect(() => { const handler = setTimeout(() => { setDebouncedSearchTerm(searchTerm); @@ -94,8 +96,21 @@ const SubmittedForReviewPage = () => { try { setLoading(true); const query = debouncedSearchTerm || ""; - const offset =debouncedSearchTerm!==""? 0 : page * LIMIT; + let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; const primaryCategory = filter.length ? filter : []; + if (prevFilterRef.current !== filter) { + offset=0; + setPage(0); + router.push( + { + pathname: router.pathname, + query: { ...router.query, page: 1 }, + }, + undefined, + { shallow: true } + ); + prevFilterRef.current = filter; + } const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order }; const response = await getContent( diff --git a/src/pages/workspace/content/up-review/index.tsx b/src/pages/workspace/content/up-review/index.tsx index 229e692..999bbe3 100644 --- a/src/pages/workspace/content/up-review/index.tsx +++ b/src/pages/workspace/content/up-review/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import React, { useEffect, useRef, useState } from "react"; import Layout from "../../../../components/Layout"; import { Typography, @@ -48,6 +48,8 @@ const UpForReviewPage = () => { const [page, setPage] = useState(0); const [totalCount, setTotalCount] = useState(0); const [data, setData] = React.useState([]); + const prevFilterRef = useRef(filter); + const fetchContentAPI = useSharedStore( (state: any) => state.fetchContentAPI ); @@ -103,8 +105,21 @@ const UpForReviewPage = () => { try { setLoading(true); const query = debouncedSearchTerm || ""; - const offset =debouncedSearchTerm!==""? 0 : page * LIMIT; + let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; const primaryCategory = filter.length ? filter : []; + if (prevFilterRef.current !== filter) { + offset=0; + setPage(0); + router.push( + { + pathname: router.pathname, + query: { ...router.query, page: 1 }, + }, + undefined, + { shallow: true } + ); + prevFilterRef.current = filter; + } const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order }; const contentType="upReview" From 3e128ca624e21c4e05d4f6c9d01b534554fe953e Mon Sep 17 00:00:00 2001 From: Akshata Katwal Date: Thu, 26 Dec 2024 15:19:36 +0530 Subject: [PATCH 2/8] Issue feat PS-2920:Filters and pagination should retain on page refresh on Admin workspace --- src/components/SearchBox.tsx | 10 +++++++++- src/components/SideBar.tsx | 1 + src/pages/workspace/content/allContents/index.tsx | 5 ++++- .../workspace/content/discover-contents/index.tsx | 4 +++- src/pages/workspace/content/draft/index.tsx | 6 ++++-- src/pages/workspace/content/publish/index.tsx | 6 ++++-- src/pages/workspace/content/submitted/index.tsx | 5 ++++- src/pages/workspace/content/up-review/index.tsx | 5 ++++- 8 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/components/SearchBox.tsx b/src/components/SearchBox.tsx index 882c6bd..38440ea 100644 --- a/src/components/SearchBox.tsx +++ b/src/components/SearchBox.tsx @@ -60,7 +60,14 @@ const SearchBox: React.FC = ({ const [stateOptions, setStateOptions] = useState([]); const [primaryCategory, setPrimaryCategory] = useState(); - + useEffect(() => { + const localSelectedFilters= localStorage.getItem("selectedFilters"); + const selectedFilter = localSelectedFilters?JSON.parse(localSelectedFilters ): null; + if(selectedFilters){ + setSelectedFilters(selectedFilter); + } + + }, []); useEffect(() => { const PrimaryCategoryData = async () => { const response = await getPrimaryCategory(); @@ -128,6 +135,7 @@ const SearchBox: React.FC = ({ const handleFilterChange = (event: SelectChangeEvent) => { const value = event.target.value as string[]; + localStorage.setItem("selectedFilters", JSON.stringify(value)); setSelectedFilters(value); onFilterChange && onFilterChange(value); }; diff --git a/src/components/SideBar.tsx b/src/components/SideBar.tsx index a561981..ea8567a 100644 --- a/src/components/SideBar.tsx +++ b/src/components/SideBar.tsx @@ -58,6 +58,7 @@ const Sidebar: React.FC = ({ selectedKey, onSelect }) => { const handleNavigation = (key: string) => { console.log(key); router.push(`/workspace/content/${key}`); + localStorage.setItem("selectedFilters", JSON.stringify([])) onSelect(key); if (isMobile) { setDrawerOpen(false); // Close drawer after selecting in mobile view diff --git a/src/pages/workspace/content/allContents/index.tsx b/src/pages/workspace/content/allContents/index.tsx index 8104259..2eda127 100644 --- a/src/pages/workspace/content/allContents/index.tsx +++ b/src/pages/workspace/content/allContents/index.tsx @@ -149,7 +149,10 @@ const AllContentsPage = () => { } const query = debouncedSearchTerm || ""; - const primaryCategory = filter.length ? filter : []; + const localSelectedFilters= localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; + const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; + const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order, diff --git a/src/pages/workspace/content/discover-contents/index.tsx b/src/pages/workspace/content/discover-contents/index.tsx index 9155ba8..5b0445f 100644 --- a/src/pages/workspace/content/discover-contents/index.tsx +++ b/src/pages/workspace/content/discover-contents/index.tsx @@ -122,7 +122,9 @@ const ContentsPage = () => { // "FlagReview", ]; const query = debouncedSearchTerm || ""; - const primaryCategory = filter.length ? filter : []; + const localSelectedFilters= localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; + const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order, diff --git a/src/pages/workspace/content/draft/index.tsx b/src/pages/workspace/content/draft/index.tsx index cc168dd..4a6f9e0 100644 --- a/src/pages/workspace/content/draft/index.tsx +++ b/src/pages/workspace/content/draft/index.tsx @@ -110,8 +110,10 @@ const DraftPage = () => { setLoading(true); const query = debouncedSearchTerm || ""; let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - const primaryCategory = filter.length ? filter : []; - if (prevFilterRef.current !== filter) { + const localSelectedFilters= localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; + const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; + if (prevFilterRef.current !== filter) { offset=0; setPage(0); router.push( diff --git a/src/pages/workspace/content/publish/index.tsx b/src/pages/workspace/content/publish/index.tsx index b032e1f..09c8704 100644 --- a/src/pages/workspace/content/publish/index.tsx +++ b/src/pages/workspace/content/publish/index.tsx @@ -121,8 +121,10 @@ const PublishPage = () => { setLoading(true); const query = debouncedSearchTerm || ""; let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - const primaryCategory = filter.length ? filter : []; - if (prevFilterRef.current !== filter) { + const localSelectedFilters= localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; + const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; + if (prevFilterRef.current !== filter) { offset=0; setPage(0); router.push( diff --git a/src/pages/workspace/content/submitted/index.tsx b/src/pages/workspace/content/submitted/index.tsx index 2b4b2ad..4d81f55 100644 --- a/src/pages/workspace/content/submitted/index.tsx +++ b/src/pages/workspace/content/submitted/index.tsx @@ -97,7 +97,10 @@ const SubmittedForReviewPage = () => { setLoading(true); const query = debouncedSearchTerm || ""; let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - const primaryCategory = filter.length ? filter : []; + const localSelectedFilters= localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; + const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; + if (prevFilterRef.current !== filter) { offset=0; setPage(0); diff --git a/src/pages/workspace/content/up-review/index.tsx b/src/pages/workspace/content/up-review/index.tsx index 999bbe3..ac72a06 100644 --- a/src/pages/workspace/content/up-review/index.tsx +++ b/src/pages/workspace/content/up-review/index.tsx @@ -106,7 +106,10 @@ const UpForReviewPage = () => { setLoading(true); const query = debouncedSearchTerm || ""; let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - const primaryCategory = filter.length ? filter : []; + const localSelectedFilters= localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; + const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; + if (prevFilterRef.current !== filter) { offset=0; setPage(0); From db3a48371a920abc09fb421bbdd643284857f29d Mon Sep 17 00:00:00 2001 From: Akshata Katwal Date: Fri, 27 Dec 2024 11:32:25 +0530 Subject: [PATCH 3/8] Issue feat optimize code --- .env | 19 +++++++------------ src/components/SearchBox.tsx | 9 +++++++++ .../workspace/content/allContents/index.tsx | 9 +-------- .../content/discover-contents/index.tsx | 16 ++++++++-------- src/pages/workspace/content/draft/index.tsx | 8 -------- src/pages/workspace/content/publish/index.tsx | 9 +-------- .../workspace/content/submitted/index.tsx | 9 +-------- .../workspace/content/up-review/index.tsx | 9 +-------- 8 files changed, 28 insertions(+), 60 deletions(-) diff --git a/.env b/.env index 981c209..b9c2db2 100644 --- a/.env +++ b/.env @@ -1,12 +1,7 @@ -BASE_URL="" # Middleware Path - eg : "https://middleware.prathamdigital.org" -AUTH_API_TOKEN="" # User Auth Access Token -NEXT_PUBLIC_TENANT_ID="" # Tenant Id of User -NEXT_PUBLIC_CLOUD_STORAGE_URL="" # Use environment variable for S3 Cloud Storage URL - should have / at the end. -NEXT_PUBLIC_CHANNEL_ID="" # Channel Id of knowlg-inQuiry setup -NEXT_PUBLIC_FRAMEWORK_ID="" # Framework Id of knowlg-inQuiry setup -NEXT_PUBLIC_CONTENT_FRAMEWORK_ID="" # Learning Framework Id for Content Creation -NEXT_PUBLIC_TELEMETRY_URL="" #telemetry service path -AWS_ACCESS_KEY_ID="" # For AWS S3 large file chunks upload -AWS_ACCESS_SECRET_KEY="" # For AWS S3 large file chunks upload -AWS_BUCKET_NAME="" # For AWS S3 large file chunks upload -AWS_REGION="" # For AWS S3 large file chunks upload \ No newline at end of file +BASE_URL="https://middleware.prathamdigital.org" +AUTH_API_TOKEN="eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJha0d1WG1zVTVxMXhOczZxUkVTWWZkTkRyUWRiZ2ZGekRFMEswRkFDNUVzIn0.eyJleHAiOjE3MzE5OTA5MzMsImlhdCI6MTczMTkwNDUzMywianRpIjoiYzI3YzNjZDEtNWJmZC00ZjMwLTljMzktNGViODc3N2EyNzEyIiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5wcmF0aGFtZGlnaXRhbC5vcmcvYXV0aC9yZWFsbXMvcHJhdGhhbSIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiIzZTBiZGE2Yi1jNTA2LTQ2NmYtODg3NS1lMzdkZTUyYTBlOGYiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJwcmF0aGFtIiwic2Vzc2lvbl9zdGF0ZSI6IjRkYWI2YWRhLWZmYWItNGZkZS05N2UwLWQwYTZkNTAyMDliOSIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiLyoiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iLCJkZWZhdWx0LXJvbGVzLXByYXRoYW0iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJzaWQiOiI0ZGFiNmFkYS1mZmFiLTRmZGUtOTdlMC1kMGE2ZDUwMjA5YjkiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsIm5hbWUiOiJSYWh1bCIsInByZWZlcnJlZF91c2VybmFtZSI6InJhaHVsX3Rla2RpIiwiZ2l2ZW5fbmFtZSI6IlJhaHVsIiwiZmFtaWx5X25hbWUiOiIifQ.TKrgbwBQe8NnpzqxgxtltzD_gFXs9XKDvLjqmAUZoAZAOtxd66vWGuE8VJouVrFMKbrLy-HeX8cf4Uh39wrPJzYcK5vayi2J0fCmMK84XechQIDOT7oIQ6rbKB7mpeV8tM3kBluoHvjLt0-Kh71JY0kv_WQ8eZCpC2VygM9dQcl79UUkSWr4KD9T4T_sdhCITYazPEntbix1TknFyavZoCnvqSkPg6ARxStTbNDnf7HmQWAqtg1XpVLB7CUT2IoBJjGwB2uAILZ4EglkhZD9I4N8PhlPRTiyjWX_E5w-tAeGZOdHO5bW8wGyC_JyFPbk1Z_1sqwIvGECyYLgDqBr7w" +NEXT_PRIVATE_LOCAL_WEBPACK=true +NEXT_PUBLIC_TENANT_ID="ef99949b-7f3a-4a5f-806a-e67e683e38f3" +NEXT_PUBLIC_CLOUD_STORAGE_URL="https://knowlg-public.s3-ap-south-1.amazonaws.com/" +NEXT_PUBLIC_CHANNEL_ID="scp-channel" +NEXT_PUBLIC_FRAMEWORK_ID="scp-framework" diff --git a/src/components/SearchBox.tsx b/src/components/SearchBox.tsx index 38440ea..d30f964 100644 --- a/src/components/SearchBox.tsx +++ b/src/components/SearchBox.tsx @@ -23,6 +23,7 @@ import { getPrimaryCategory, } from "@/services/ContentService"; import { SortOptions, StatusOptions } from "@/utils/app.constant"; +import router from "next/router"; export interface SearchBarProps { onSearch: (value: string) => void; @@ -136,6 +137,14 @@ const SearchBox: React.FC = ({ const handleFilterChange = (event: SelectChangeEvent) => { const value = event.target.value as string[]; localStorage.setItem("selectedFilters", JSON.stringify(value)); + router.push( + { + pathname: router.pathname, + query: { ...router.query, page: 1 }, + }, + undefined, + { shallow: true } + ); setSelectedFilters(value); onFilterChange && onFilterChange(value); }; diff --git a/src/pages/workspace/content/allContents/index.tsx b/src/pages/workspace/content/allContents/index.tsx index 2eda127..ff7ef05 100644 --- a/src/pages/workspace/content/allContents/index.tsx +++ b/src/pages/workspace/content/allContents/index.tsx @@ -161,14 +161,7 @@ const AllContentsPage = () => { if (prevFilterRef.current !== filter) { offset=0; setPage(0); - router.push( - { - pathname: router.pathname, - query: { ...router.query, page: 1 }, - }, - undefined, - { shallow: true } - ); + prevFilterRef.current = filter; } console.log("seraching", debouncedSearchTerm) diff --git a/src/pages/workspace/content/discover-contents/index.tsx b/src/pages/workspace/content/discover-contents/index.tsx index 5b0445f..2c017e4 100644 --- a/src/pages/workspace/content/discover-contents/index.tsx +++ b/src/pages/workspace/content/discover-contents/index.tsx @@ -133,14 +133,14 @@ const ContentsPage = () => { if (prevFilterRef.current !== filter) { offset=0; setPage(0); - router.push( - { - pathname: router.pathname, - query: { ...router.query, page: 1 }, - }, - undefined, - { shallow: true } - ); + // router.push( + // { + // pathname: router.pathname, + // query: { ...router.query, page: 1 }, + // }, + // undefined, + // { shallow: true } + // ); prevFilterRef.current = filter; } const contentType = "discover-contents"; diff --git a/src/pages/workspace/content/draft/index.tsx b/src/pages/workspace/content/draft/index.tsx index 4a6f9e0..21e2d2a 100644 --- a/src/pages/workspace/content/draft/index.tsx +++ b/src/pages/workspace/content/draft/index.tsx @@ -116,14 +116,6 @@ const DraftPage = () => { if (prevFilterRef.current !== filter) { offset=0; setPage(0); - router.push( - { - pathname: router.pathname, - query: { ...router.query, page: 1 }, - }, - undefined, - { shallow: true } - ); prevFilterRef.current = filter; } const order = sortBy === "Created On" ? "asc" : "desc"; diff --git a/src/pages/workspace/content/publish/index.tsx b/src/pages/workspace/content/publish/index.tsx index 09c8704..e6902c9 100644 --- a/src/pages/workspace/content/publish/index.tsx +++ b/src/pages/workspace/content/publish/index.tsx @@ -127,14 +127,7 @@ const PublishPage = () => { if (prevFilterRef.current !== filter) { offset=0; setPage(0); - router.push( - { - pathname: router.pathname, - query: { ...router.query, page: 1 }, - }, - undefined, - { shallow: true } - ); + prevFilterRef.current = filter; } const order = sortBy === "Created On" ? "asc" : "desc"; diff --git a/src/pages/workspace/content/submitted/index.tsx b/src/pages/workspace/content/submitted/index.tsx index 4d81f55..8719e9d 100644 --- a/src/pages/workspace/content/submitted/index.tsx +++ b/src/pages/workspace/content/submitted/index.tsx @@ -104,14 +104,7 @@ const SubmittedForReviewPage = () => { if (prevFilterRef.current !== filter) { offset=0; setPage(0); - router.push( - { - pathname: router.pathname, - query: { ...router.query, page: 1 }, - }, - undefined, - { shallow: true } - ); + prevFilterRef.current = filter; } const order = sortBy === "Created On" ? "asc" : "desc"; diff --git a/src/pages/workspace/content/up-review/index.tsx b/src/pages/workspace/content/up-review/index.tsx index ac72a06..5d0bbd1 100644 --- a/src/pages/workspace/content/up-review/index.tsx +++ b/src/pages/workspace/content/up-review/index.tsx @@ -113,14 +113,7 @@ const UpForReviewPage = () => { if (prevFilterRef.current !== filter) { offset=0; setPage(0); - router.push( - { - pathname: router.pathname, - query: { ...router.query, page: 1 }, - }, - undefined, - { shallow: true } - ); + prevFilterRef.current = filter; } const order = sortBy === "Created On" ? "asc" : "desc"; From 35e196f7e1b4116d62accf2a011e6b3f90705c3a Mon Sep 17 00:00:00 2001 From: Akshata Katwal Date: Fri, 27 Dec 2024 11:33:44 +0530 Subject: [PATCH 4/8] format files --- .../workspace/content/allContents/index.tsx | 157 +++++++++++------- .../content/discover-contents/index.tsx | 144 +++++++++------- src/pages/workspace/content/draft/index.tsx | 102 ++++++++---- src/pages/workspace/content/publish/index.tsx | 104 ++++++++---- .../workspace/content/submitted/index.tsx | 91 ++++++---- 5 files changed, 378 insertions(+), 220 deletions(-) diff --git a/src/pages/workspace/content/allContents/index.tsx b/src/pages/workspace/content/allContents/index.tsx index ff7ef05..d93ca59 100644 --- a/src/pages/workspace/content/allContents/index.tsx +++ b/src/pages/workspace/content/allContents/index.tsx @@ -1,4 +1,10 @@ -import React, { useEffect, useMemo, useState, useCallback, useRef } from "react"; +import React, { + useEffect, + useMemo, + useState, + useCallback, + useRef, +} from "react"; import Layout from "../../../../components/Layout"; import { Typography, @@ -24,8 +30,8 @@ import router from "next/router"; import PaginationComponent from "@/components/PaginationComponent"; import { LIMIT } from "@/utils/app.constant"; import WorkspaceText from "@/components/WorkspaceText"; -import { Table as KaTable } from 'ka-table'; -import { DataType } from 'ka-table/enums'; +import { Table as KaTable } from "ka-table"; +import { DataType } from "ka-table/enums"; import "ka-table/style.css"; import KaTableComponent from "@/components/KaTableComponent"; import useSharedStore from "@/utils/useSharedState"; @@ -37,14 +43,32 @@ import useSharedStore from "@/utils/useSharedState"; // ] const columns = [ - { key: 'title_and_description', title: 'TITLE & DESCRIPTION', dataType: DataType.String, width: "450px" }, - { key: 'contentType', title: 'CONTENT TYPE', dataType: DataType.String, width: "200px" }, - { key: 'status', title: 'STATUS', dataType: DataType.String, width: "100px" }, - { key: 'lastUpdatedOn', title: 'LAST MODIFIED', dataType: DataType.String, width: "180px" }, - { key: 'contentAction', title: 'ACTION', dataType: DataType.String, width: "100px" }, - - -] + { + key: "title_and_description", + title: "TITLE & DESCRIPTION", + dataType: DataType.String, + width: "450px", + }, + { + key: "contentType", + title: "CONTENT TYPE", + dataType: DataType.String, + width: "200px", + }, + { key: "status", title: "STATUS", dataType: DataType.String, width: "100px" }, + { + key: "lastUpdatedOn", + title: "LAST MODIFIED", + dataType: DataType.String, + width: "180px", + }, + { + key: "contentAction", + title: "ACTION", + dataType: DataType.String, + width: "100px", + }, +]; const AllContentsPage = () => { const theme = useTheme(); @@ -56,20 +80,18 @@ const AllContentsPage = () => { const [sortBy, setSortBy] = useState("Modified On"); const [statusBy, setStatusBy] = useState("All"); - const [contentList, setContentList] = React.useState([]); + const [contentList, setContentList] = React.useState([]); const [data, setData] = React.useState([]); const [loading, setLoading] = useState(false); const [contentDeleted, setContentDeleted] = React.useState(false); const prevFilterRef = useRef(filter); - const fetchContentAPI = useSharedStore( - (state: any) => state.fetchContentAPI - ); + const fetchContentAPI = useSharedStore((state: any) => state.fetchContentAPI); const [debouncedSearchTerm, setDebouncedSearchTerm] = useState(searchTerm); const [totalCount, setTotalCount] = useState(0); - + const handleChangePage = (event: unknown, newPage: number) => { setPage(newPage - 1); }; @@ -100,19 +122,18 @@ const AllContentsPage = () => { }; const handleSortChange = (sortBy: string) => { - console.log("sortBy", sortBy) + console.log("sortBy", sortBy); setSortBy(sortBy); }; const handleStatusChange = (statusBy: string) => { setStatusBy(statusBy); }; - useEffect(() => { const getContentList = async () => { try { setLoading(true); - let status=[ + let status = [ "Draft", "FlagDraft", "Review", @@ -122,7 +143,7 @@ const AllContentsPage = () => { "FlagReview", ]; if (statusBy === "" || statusBy === "All") { - status = [ + status = [ "Draft", "FlagDraft", "Review", @@ -131,40 +152,41 @@ const AllContentsPage = () => { "Unlisted", "FlagReview", ]; - } - else if (statusBy === "Live") { + } else if (statusBy === "Live") { status = ["Live"]; - } - else if (statusBy === "Review") { + } else if (statusBy === "Review") { status = ["Review"]; - } - else if (statusBy === "Draft") { + } else if (statusBy === "Draft") { status = ["Draft"]; - } - else if (statusBy === "Unlisted") { + } else if (statusBy === "Unlisted") { status = ["Unlisted"]; - } - else if (statusBy === "FlagReview") { + } else if (statusBy === "FlagReview") { status = ["FlagReview"]; } - + const query = debouncedSearchTerm || ""; - const localSelectedFilters= localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; - const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; - + const localSelectedFilters = localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters + ? JSON.parse(localSelectedFilters) + : null; + const primaryCategory = selectedFilters + ? selectedFilters + : filter.length + ? filter + : []; + const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order, }; - let offset =debouncedSearchTerm!==""? 0: page * LIMIT; + let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; if (prevFilterRef.current !== filter) { - offset=0; + offset = 0; setPage(0); - + prevFilterRef.current = filter; } - console.log("seraching", debouncedSearchTerm) + console.log("seraching", debouncedSearchTerm); const response = await getContent( status, query, @@ -184,10 +206,10 @@ const AllContentsPage = () => { } }; getContentList(); - }, [debouncedSearchTerm, filter,fetchContentAPI, sortBy, statusBy, page]); + }, [debouncedSearchTerm, filter, fetchContentAPI, sortBy, statusBy, page]); useEffect(() => { - const filteredArray = contentList.map(item => ({ + const filteredArray = contentList.map((item) => ({ image: item?.appIcon, contentType: item.primaryCategory, name: item.name, @@ -197,15 +219,12 @@ const AllContentsPage = () => { identifier: item.identifier, mimeType: item.mimeType, mode: item.mode, - description: item?.description - + description: item?.description, })); - setData(filteredArray) - console.log(filteredArray) + setData(filteredArray); + console.log(filteredArray); }, [contentList]); - - const filteredData = useMemo( () => contentList?.filter((content) => @@ -214,21 +233,32 @@ const AllContentsPage = () => { [debouncedSearchTerm, contentList] ); - const displayedRows = filteredData.slice( page * rowsPerPage, page * rowsPerPage + rowsPerPage - ); - - console.log("contentList", contentList) + ); + + console.log("contentList", contentList); return ( - + - LIMIT ? '15px' : '0px' }}> + LIMIT ? "15px" : "0px", + }} + > - All My Contents + + All My Contents + {/* Here you see all your content. */} @@ -242,16 +272,20 @@ const AllContentsPage = () => { allContents={true} /> - {loading ? ( + {loading ? ( ) : ( <> - - - - + + + + )} - {totalCount > LIMIT && ( + {totalCount > LIMIT && ( { /> )} - - - ); }; diff --git a/src/pages/workspace/content/discover-contents/index.tsx b/src/pages/workspace/content/discover-contents/index.tsx index 2c017e4..f86612d 100644 --- a/src/pages/workspace/content/discover-contents/index.tsx +++ b/src/pages/workspace/content/discover-contents/index.tsx @@ -1,4 +1,10 @@ -import React, { useEffect, useMemo, useState, useCallback, useRef } from "react"; +import React, { + useEffect, + useMemo, + useState, + useCallback, + useRef, +} from "react"; import Layout from "../../../../components/Layout"; import { Typography, @@ -24,8 +30,8 @@ import router from "next/router"; import PaginationComponent from "@/components/PaginationComponent"; import { LIMIT } from "@/utils/app.constant"; import WorkspaceText from "@/components/WorkspaceText"; -import { Table as KaTable } from 'ka-table'; -import { DataType } from 'ka-table/enums'; +import { Table as KaTable } from "ka-table"; +import { DataType } from "ka-table/enums"; import "ka-table/style.css"; import KaTableComponent from "@/components/KaTableComponent"; import useSharedStore from "@/utils/useSharedState"; @@ -37,17 +43,35 @@ import useSharedStore from "@/utils/useSharedState"; // ] const columns = [ - { key: 'title_and_description', title: 'TITLE & DESCRIPTION', dataType: DataType.String, width: "350px" }, - { key: 'create-by', title: 'CREATED BY', dataType: DataType.String, width: "100px" }, + { + key: "title_and_description", + title: "TITLE & DESCRIPTION", + dataType: DataType.String, + width: "350px", + }, + { + key: "create-by", + title: "CREATED BY", + dataType: DataType.String, + width: "100px", + }, - { key: 'contentType', title: 'CONTENT TYPE', dataType: DataType.String, width: "100px" }, - { key: 'state', title: 'STATE', dataType: DataType.String, width: "100px" }, + { + key: "contentType", + title: "CONTENT TYPE", + dataType: DataType.String, + width: "100px", + }, + { key: "state", title: "STATE", dataType: DataType.String, width: "100px" }, - { key: 'status', title: 'STATUS', dataType: DataType.String, width: "100px" }, - { key: 'lastUpdatedOn', title: 'LAST MODIFIED', dataType: DataType.String, width: "100px" }, - - -] + { key: "status", title: "STATUS", dataType: DataType.String, width: "100px" }, + { + key: "lastUpdatedOn", + title: "LAST MODIFIED", + dataType: DataType.String, + width: "100px", + }, +]; const ContentsPage = () => { const theme = useTheme(); @@ -57,15 +81,13 @@ const ContentsPage = () => { const [searchTerm, setSearchTerm] = useState(""); const [filter, setFilter] = useState([]); const [sortBy, setSortBy] = useState("Modified On"); - const [contentList, setContentList] = React.useState([]); + const [contentList, setContentList] = React.useState([]); const [data, setData] = React.useState([]); const prevFilterRef = useRef(filter); const [loading, setLoading] = useState(false); const [contentDeleted, setContentDeleted] = React.useState(false); - const fetchContentAPI = useSharedStore( - (state: any) => state.fetchContentAPI - ); + const fetchContentAPI = useSharedStore((state: any) => state.fetchContentAPI); const [debouncedSearchTerm, setDebouncedSearchTerm] = useState(searchTerm); const [totalCount, setTotalCount] = useState(0); @@ -101,11 +123,11 @@ const ContentsPage = () => { }; const handleSortChange = (sortBy: string) => { - console.log("sortBy", sortBy) + console.log("sortBy", sortBy); setSortBy(sortBy); }; const handleStateChange = (state: string) => { - setState(state) + setState(state); }; useEffect(() => { @@ -122,25 +144,24 @@ const ContentsPage = () => { // "FlagReview", ]; const query = debouncedSearchTerm || ""; - const localSelectedFilters= localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; - const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; + const localSelectedFilters = localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters + ? JSON.parse(localSelectedFilters) + : null; + const primaryCategory = selectedFilters + ? selectedFilters + : filter.length + ? filter + : []; const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order, }; let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; if (prevFilterRef.current !== filter) { - offset=0; + offset = 0; setPage(0); - // router.push( - // { - // pathname: router.pathname, - // query: { ...router.query, page: 1 }, - // }, - // undefined, - // { shallow: true } - // ); + prevFilterRef.current = filter; } const contentType = "discover-contents"; @@ -168,7 +189,9 @@ const ContentsPage = () => { ); } - const contentList = (response?.content || []).concat(response?.QuestionSet || []); + const contentList = (response?.content || []).concat( + response?.QuestionSet || [] + ); setContentList(contentList); setTotalCount(response?.count); setLoading(false); @@ -177,11 +200,10 @@ const ContentsPage = () => { } }; getContentList(); - - }, [debouncedSearchTerm, filter,fetchContentAPI, sortBy, state, page]); + }, [debouncedSearchTerm, filter, fetchContentAPI, sortBy, state, page]); useEffect(() => { - const filteredArray = contentList.map(item => ({ + const filteredArray = contentList.map((item) => ({ image: item?.appIcon, contentType: item.primaryCategory, name: item.name, @@ -194,14 +216,12 @@ const ContentsPage = () => { creator: item.creator, description: item?.description, state: item?.state, - author: item.author + author: item.author, })); - setData(filteredArray) - console.log(filteredArray) + setData(filteredArray); + console.log(filteredArray); }, [contentList]); - - const filteredData = useMemo( () => contentList?.filter((content) => @@ -210,21 +230,32 @@ const ContentsPage = () => { [debouncedSearchTerm, contentList] ); - const displayedRows = filteredData.slice( page * rowsPerPage, page * rowsPerPage + rowsPerPage - ); - - console.log("contentList", contentList) + ); + + console.log("contentList", contentList); return ( - + - LIMIT ? '15px' : '0px' }}> + LIMIT ? "15px" : "0px", + }} + > - Discover Contents + + Discover Contents + {/* Here you see all your content. */} @@ -238,28 +269,29 @@ const ContentsPage = () => { discoverContents={true} /> - {loading ? ( + {loading ? ( ) : ( <> - - - - + + + + )} - {totalCount > LIMIT && ( + {totalCount > LIMIT && ( setPage(newPage - 1)} + onPageChange={(event, newPage) => setPage(newPage - 1)} /> )} - - - ); }; diff --git a/src/pages/workspace/content/draft/index.tsx b/src/pages/workspace/content/draft/index.tsx index 21e2d2a..d5049d1 100644 --- a/src/pages/workspace/content/draft/index.tsx +++ b/src/pages/workspace/content/draft/index.tsx @@ -21,20 +21,33 @@ import { LIMIT } from "@/utils/app.constant"; import { useRouter } from "next/router"; import { MIME_TYPE } from "@/utils/app.config"; import WorkspaceText from "@/components/WorkspaceText"; -import { DataType } from 'ka-table/enums'; +import { DataType } from "ka-table/enums"; import KaTableComponent from "@/components/KaTableComponent"; -import Paper from '@mui/material/Paper'; +import Paper from "@mui/material/Paper"; import { timeAgo } from "@/utils/Helper"; import useSharedStore from "@/utils/useSharedState"; const columns = [ - { key: 'title_and_description', title: 'TITLE & DESCRIPTION', dataType: DataType.String, width: "450px" }, - { key: 'contentType', title: 'CONTENT TYPE', dataType: DataType.String, width: "200px" }, - { key: 'lastUpdatedOn', title: 'LAST MODIFIED', dataType: DataType.String, width: "180px" }, - { key: 'action', title: 'ACTION', dataType: DataType.String, width: "100px" }, - - -] + { + key: "title_and_description", + title: "TITLE & DESCRIPTION", + dataType: DataType.String, + width: "450px", + }, + { + key: "contentType", + title: "CONTENT TYPE", + dataType: DataType.String, + width: "200px", + }, + { + key: "lastUpdatedOn", + title: "LAST MODIFIED", + dataType: DataType.String, + width: "180px", + }, + { key: "action", title: "ACTION", dataType: DataType.String, width: "100px" }, +]; const DraftPage = () => { const [selectedKey, setSelectedKey] = useState("draft"); const [page, setPage] = useState(0); @@ -47,9 +60,7 @@ const DraftPage = () => { const [loading, setLoading] = useState(false); const [totalCount, setTotalCount] = useState(0); const [data, setData] = React.useState([]); - const fetchContentAPI = useSharedStore( - (state: any) => state.fetchContentAPI - ); + const fetchContentAPI = useSharedStore((state: any) => state.fetchContentAPI); const prevFilterRef = useRef(filter); const [debouncedSearchTerm, setDebouncedSearchTerm] = @@ -77,10 +88,10 @@ const DraftPage = () => { status: item.status, identifier: item.identifier, mimeType: item.mimeType, - mode: item.mode + mode: item.mode, })); - setData(filteredArray) - console.log(filteredArray) + setData(filteredArray); + console.log(filteredArray); }, [contentList]); const handleSearch = (search: string) => { @@ -102,19 +113,23 @@ const DraftPage = () => { const router = useRouter(); - - useEffect(() => { const getDraftContentList = async () => { try { setLoading(true); const query = debouncedSearchTerm || ""; - let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - const localSelectedFilters= localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; - const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; - if (prevFilterRef.current !== filter) { - offset=0; + let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; + const localSelectedFilters = localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters + ? JSON.parse(localSelectedFilters) + : null; + const primaryCategory = selectedFilters + ? selectedFilters + : filter.length + ? filter + : []; + if (prevFilterRef.current !== filter) { + offset = 0; setPage(0); prevFilterRef.current = filter; } @@ -140,14 +155,27 @@ const DraftPage = () => { } }; getDraftContentList(); - }, [debouncedSearchTerm, filter, sortBy, contentDeleted, fetchContentAPI,page]); - + }, [ + debouncedSearchTerm, + filter, + sortBy, + contentDeleted, + fetchContentAPI, + page, + ]); return ( - - LIMIT ? '15px' : '0px' }}> + + LIMIT ? "15px" : "0px", + }} + > { onSortChange={handleSortChange} /> - {loading ? ( + {loading ? ( - ) :(<> - - - - + ) : ( + <> + + + + )} {totalCount > LIMIT && ( setPage(newPage - 1)} + onPageChange={(event, newPage) => setPage(newPage - 1)} /> )} - ); }; diff --git a/src/pages/workspace/content/publish/index.tsx b/src/pages/workspace/content/publish/index.tsx index e6902c9..46d8cd7 100644 --- a/src/pages/workspace/content/publish/index.tsx +++ b/src/pages/workspace/content/publish/index.tsx @@ -21,20 +21,33 @@ import { LIMIT } from "@/utils/app.constant"; import { useRouter } from "next/router"; import { MIME_TYPE } from "@/utils/app.config"; import WorkspaceText from "@/components/WorkspaceText"; -import { DataType } from 'ka-table/enums'; +import { DataType } from "ka-table/enums"; import KaTableComponent from "@/components/KaTableComponent"; import { timeAgo } from "@/utils/Helper"; import useSharedStore from "@/utils/useSharedState"; const columns = [ - { key: 'title_and_description', title: 'TITLE & DESCRIPTION', dataType: DataType.String, width: "450px" }, - { key: 'contentType', title: 'CONTENT TYPE', dataType: DataType.String, width: "200px" }, + { + key: "title_and_description", + title: "TITLE & DESCRIPTION", + dataType: DataType.String, + width: "450px", + }, + { + key: "contentType", + title: "CONTENT TYPE", + dataType: DataType.String, + width: "200px", + }, // { key: 'status', title: 'STATUS', dataType: DataType.String, width: "100px" }, - { key: 'lastUpdatedOn', title: 'LAST MODIFIED', dataType: DataType.String, width: "180px" }, - { key: 'action', title: 'ACTION', dataType: DataType.String, width: "100px" }, - - -] + { + key: "lastUpdatedOn", + title: "LAST MODIFIED", + dataType: DataType.String, + width: "180px", + }, + { key: "action", title: "ACTION", dataType: DataType.String, width: "100px" }, +]; const PublishPage = () => { const [selectedKey, setSelectedKey] = useState("publish"); const [page, setPage] = useState(0); @@ -47,9 +60,7 @@ const PublishPage = () => { const [loading, setLoading] = useState(false); const [totalCount, setTotalCount] = useState(0); const [data, setData] = React.useState([]); - const fetchContentAPI = useSharedStore( - (state: any) => state.fetchContentAPI - ); + const fetchContentAPI = useSharedStore((state: any) => state.fetchContentAPI); const [debouncedSearchTerm, setDebouncedSearchTerm] = useState(searchTerm); @@ -77,10 +88,10 @@ const PublishPage = () => { status: item.status, identifier: item.identifier, mimeType: item.mimeType, - mode: item.mode + mode: item.mode, })); - setData(filteredArray) - console.log(filteredArray) + setData(filteredArray); + console.log(filteredArray); }, [contentList]); const handleSearch = (search: string) => { setSearchTerm(search.toLowerCase()); @@ -94,8 +105,6 @@ const PublishPage = () => { setSortBy(sortBy); }; - - const openEditor = (content: any) => { const identifier = content?.identifier; const mode = "read"; @@ -120,14 +129,20 @@ const PublishPage = () => { try { setLoading(true); const query = debouncedSearchTerm || ""; - let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - const localSelectedFilters= localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; - const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; - if (prevFilterRef.current !== filter) { - offset=0; + let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; + const localSelectedFilters = localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters + ? JSON.parse(localSelectedFilters) + : null; + const primaryCategory = selectedFilters + ? selectedFilters + : filter.length + ? filter + : []; + if (prevFilterRef.current !== filter) { + offset = 0; setPage(0); - + prevFilterRef.current = filter; } const order = sortBy === "Created On" ? "asc" : "desc"; @@ -152,14 +167,27 @@ const PublishPage = () => { } }; getPublishContentList(); - }, [debouncedSearchTerm, filter, sortBy,fetchContentAPI, contentDeleted, page]); - + }, [ + debouncedSearchTerm, + filter, + sortBy, + fetchContentAPI, + contentDeleted, + page, + ]); return ( - LIMIT ? '15px' : '0px' }} > + LIMIT ? "15px" : "0px", + }} + > { > Published - { /> {/* Here you see all your published content. */} -{loading ? ( + {loading ? ( - ) : (<> - - - - )} - {totalCount > LIMIT && ( + ) : ( + <> + + + + + )} + {totalCount > LIMIT && ( setPage(newPage - 1)} + onPageChange={(event, newPage) => setPage(newPage - 1)} /> )} - ); diff --git a/src/pages/workspace/content/submitted/index.tsx b/src/pages/workspace/content/submitted/index.tsx index 8719e9d..2140fc5 100644 --- a/src/pages/workspace/content/submitted/index.tsx +++ b/src/pages/workspace/content/submitted/index.tsx @@ -21,19 +21,32 @@ import { LIMIT } from "@/utils/app.constant"; import { MIME_TYPE } from "@/utils/app.config"; import router from "next/router"; import WorkspaceText from "@/components/WorkspaceText"; -import { DataType } from 'ka-table/enums'; +import { DataType } from "ka-table/enums"; import KaTableComponent from "@/components/KaTableComponent"; import { timeAgo } from "@/utils/Helper"; import useSharedStore from "@/utils/useSharedState"; const columns = [ - { key: 'title_and_description', title: 'TITLE & DESCRIPTION', dataType: DataType.String, width: "450px" }, - { key: 'contentType', title: 'CONTENT TYPE', dataType: DataType.String, width: "200px" }, + { + key: "title_and_description", + title: "TITLE & DESCRIPTION", + dataType: DataType.String, + width: "450px", + }, + { + key: "contentType", + title: "CONTENT TYPE", + dataType: DataType.String, + width: "200px", + }, // { key: 'status', title: 'STATUS', dataType: DataType.String, width: "100px" }, - { key: 'lastUpdatedOn', title: 'LAST MODIFIED', dataType: DataType.String, width: "180px" }, - { key: 'action', title: 'ACTION', dataType: DataType.String, width: "100px" }, - - -] + { + key: "lastUpdatedOn", + title: "LAST MODIFIED", + dataType: DataType.String, + width: "180px", + }, + { key: "action", title: "ACTION", dataType: DataType.String, width: "100px" }, +]; const SubmittedForReviewPage = () => { const [selectedKey, setSelectedKey] = useState("submitted"); const [filter, setFilter] = useState([]); @@ -46,9 +59,7 @@ const SubmittedForReviewPage = () => { const [page, setPage] = useState(0); const [totalCount, setTotalCount] = useState(0); const [data, setData] = React.useState([]); - const fetchContentAPI = useSharedStore( - (state: any) => state.fetchContentAPI - ); + const fetchContentAPI = useSharedStore((state: any) => state.fetchContentAPI); const prevFilterRef = useRef(filter); useEffect(() => { @@ -72,10 +83,10 @@ const SubmittedForReviewPage = () => { status: item.status, identifier: item.identifier, mimeType: item.mimeType, - mode: item.mode + mode: item.mode, })); - setData(filteredArray) - console.log(filteredArray) + setData(filteredArray); + console.log(filteredArray); }, [contentList]); const handleSearch = (search: string) => { setSearchTerm(search.toLowerCase()); @@ -89,22 +100,26 @@ const SubmittedForReviewPage = () => { setSortBy(sortBy); }; - - useEffect(() => { const getReviewContentList = async () => { try { setLoading(true); const query = debouncedSearchTerm || ""; - let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - const localSelectedFilters= localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; - const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; - + let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; + const localSelectedFilters = localStorage.getItem("selectedFilters"); + const selectedFilters = localSelectedFilters + ? JSON.parse(localSelectedFilters) + : null; + const primaryCategory = selectedFilters + ? selectedFilters + : filter.length + ? filter + : []; + if (prevFilterRef.current !== filter) { - offset=0; + offset = 0; setPage(0); - + prevFilterRef.current = filter; } const order = sortBy === "Created On" ? "asc" : "desc"; @@ -129,14 +144,27 @@ const SubmittedForReviewPage = () => { } }; getReviewContentList(); - }, [debouncedSearchTerm, filter, sortBy, fetchContentAPI,contentDeleted, page]); + }, [ + debouncedSearchTerm, + filter, + sortBy, + fetchContentAPI, + contentDeleted, + page, + ]); - return ( - LIMIT ? '15px' : '0px' }}> + LIMIT ? "15px" : "0px", + }} + > { /> - {/* {loading ? ( @@ -170,16 +197,20 @@ const SubmittedForReviewPage = () => { ) : ( )} */} - {loading ? ( + {loading ? ( ) : ( - + )} - {totalCount > LIMIT && ( + {totalCount > LIMIT && ( Date: Tue, 31 Dec 2024 11:43:41 +0530 Subject: [PATCH 5/8] update pr: resolved comments --- .../workspace/content/allContents/index.tsx | 60 ++++++++++++------- .../content/discover-contents/index.tsx | 36 ++++------- 2 files changed, 52 insertions(+), 44 deletions(-) diff --git a/src/pages/workspace/content/allContents/index.tsx b/src/pages/workspace/content/allContents/index.tsx index d93ca59..22a5013 100644 --- a/src/pages/workspace/content/allContents/index.tsx +++ b/src/pages/workspace/content/allContents/index.tsx @@ -142,27 +142,47 @@ const AllContentsPage = () => { "Unlisted", "FlagReview", ]; - if (statusBy === "" || statusBy === "All") { - status = [ - "Draft", - "FlagDraft", - "Review", - "Processing", - "Live", - "Unlisted", - "FlagReview", - ]; - } else if (statusBy === "Live") { - status = ["Live"]; - } else if (statusBy === "Review") { - status = ["Review"]; - } else if (statusBy === "Draft") { - status = ["Draft"]; - } else if (statusBy === "Unlisted") { - status = ["Unlisted"]; - } else if (statusBy === "FlagReview") { - status = ["FlagReview"]; + + switch (statusBy) { + case "": + case "All": + status = [ + "Draft", + "FlagDraft", + "Review", + "Processing", + "Live", + "Unlisted", + "FlagReview", + ]; + break; + case "Live": + status = ["Live"]; + break; + case "Review": + status = ["Review"]; + break; + case "Draft": + status = ["Draft"]; + break; + case "Unlisted": + status = ["Unlisted"]; + break; + case "FlagReview": + status = ["FlagReview"]; + break; + default: + status = [ + "Draft", + "FlagDraft", + "Review", + "Processing", + "Live", + "Unlisted", + "FlagReview", + ];; } + const query = debouncedSearchTerm || ""; const localSelectedFilters = localStorage.getItem("selectedFilters"); diff --git a/src/pages/workspace/content/discover-contents/index.tsx b/src/pages/workspace/content/discover-contents/index.tsx index f86612d..dabe7ef 100644 --- a/src/pages/workspace/content/discover-contents/index.tsx +++ b/src/pages/workspace/content/discover-contents/index.tsx @@ -165,30 +165,18 @@ const ContentsPage = () => { prevFilterRef.current = filter; } const contentType = "discover-contents"; - let response; - if (state !== "All") { - response = await getContent( - status, - query, - LIMIT, - offset, - primaryCategory, - sort_by, - contentType, - state - ); - } else { - response = await getContent( - status, - query, - LIMIT, - offset, - primaryCategory, - sort_by, - contentType - ); - } - + + const response = await getContent( + status, + query, + LIMIT, + offset, + primaryCategory, + sort_by, + contentType, + state !== "All" ? state : undefined + ); + const contentList = (response?.content || []).concat( response?.QuestionSet || [] ); From a334ba0afef630b8bf2871af1238a1db23cc55bd Mon Sep 17 00:00:00 2001 From: Akshata Katwal Date: Tue, 31 Dec 2024 11:45:29 +0530 Subject: [PATCH 6/8] update env --- .env | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.env b/.env index b9c2db2..981c209 100644 --- a/.env +++ b/.env @@ -1,7 +1,12 @@ -BASE_URL="https://middleware.prathamdigital.org" -AUTH_API_TOKEN="eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJha0d1WG1zVTVxMXhOczZxUkVTWWZkTkRyUWRiZ2ZGekRFMEswRkFDNUVzIn0.eyJleHAiOjE3MzE5OTA5MzMsImlhdCI6MTczMTkwNDUzMywianRpIjoiYzI3YzNjZDEtNWJmZC00ZjMwLTljMzktNGViODc3N2EyNzEyIiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5wcmF0aGFtZGlnaXRhbC5vcmcvYXV0aC9yZWFsbXMvcHJhdGhhbSIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiIzZTBiZGE2Yi1jNTA2LTQ2NmYtODg3NS1lMzdkZTUyYTBlOGYiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJwcmF0aGFtIiwic2Vzc2lvbl9zdGF0ZSI6IjRkYWI2YWRhLWZmYWItNGZkZS05N2UwLWQwYTZkNTAyMDliOSIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiLyoiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iLCJkZWZhdWx0LXJvbGVzLXByYXRoYW0iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJzaWQiOiI0ZGFiNmFkYS1mZmFiLTRmZGUtOTdlMC1kMGE2ZDUwMjA5YjkiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsIm5hbWUiOiJSYWh1bCIsInByZWZlcnJlZF91c2VybmFtZSI6InJhaHVsX3Rla2RpIiwiZ2l2ZW5fbmFtZSI6IlJhaHVsIiwiZmFtaWx5X25hbWUiOiIifQ.TKrgbwBQe8NnpzqxgxtltzD_gFXs9XKDvLjqmAUZoAZAOtxd66vWGuE8VJouVrFMKbrLy-HeX8cf4Uh39wrPJzYcK5vayi2J0fCmMK84XechQIDOT7oIQ6rbKB7mpeV8tM3kBluoHvjLt0-Kh71JY0kv_WQ8eZCpC2VygM9dQcl79UUkSWr4KD9T4T_sdhCITYazPEntbix1TknFyavZoCnvqSkPg6ARxStTbNDnf7HmQWAqtg1XpVLB7CUT2IoBJjGwB2uAILZ4EglkhZD9I4N8PhlPRTiyjWX_E5w-tAeGZOdHO5bW8wGyC_JyFPbk1Z_1sqwIvGECyYLgDqBr7w" -NEXT_PRIVATE_LOCAL_WEBPACK=true -NEXT_PUBLIC_TENANT_ID="ef99949b-7f3a-4a5f-806a-e67e683e38f3" -NEXT_PUBLIC_CLOUD_STORAGE_URL="https://knowlg-public.s3-ap-south-1.amazonaws.com/" -NEXT_PUBLIC_CHANNEL_ID="scp-channel" -NEXT_PUBLIC_FRAMEWORK_ID="scp-framework" +BASE_URL="" # Middleware Path - eg : "https://middleware.prathamdigital.org" +AUTH_API_TOKEN="" # User Auth Access Token +NEXT_PUBLIC_TENANT_ID="" # Tenant Id of User +NEXT_PUBLIC_CLOUD_STORAGE_URL="" # Use environment variable for S3 Cloud Storage URL - should have / at the end. +NEXT_PUBLIC_CHANNEL_ID="" # Channel Id of knowlg-inQuiry setup +NEXT_PUBLIC_FRAMEWORK_ID="" # Framework Id of knowlg-inQuiry setup +NEXT_PUBLIC_CONTENT_FRAMEWORK_ID="" # Learning Framework Id for Content Creation +NEXT_PUBLIC_TELEMETRY_URL="" #telemetry service path +AWS_ACCESS_KEY_ID="" # For AWS S3 large file chunks upload +AWS_ACCESS_SECRET_KEY="" # For AWS S3 large file chunks upload +AWS_BUCKET_NAME="" # For AWS S3 large file chunks upload +AWS_REGION="" # For AWS S3 large file chunks upload \ No newline at end of file From b0d2d5056489800870191fa683510c6c4a145fc6 Mon Sep 17 00:00:00 2001 From: Akshata Katwal Date: Tue, 31 Dec 2024 13:47:35 +0530 Subject: [PATCH 7/8] update pr:set retension by route query for filter, status, and sort , state --- src/components/SearchBox.tsx | 64 +++++++++++++++---- .../workspace/content/allContents/index.tsx | 28 ++++---- .../content/discover-contents/index.tsx | 23 ++++--- src/pages/workspace/content/draft/index.tsx | 21 +++--- src/pages/workspace/content/publish/index.tsx | 26 ++++---- .../workspace/content/submitted/index.tsx | 23 +++---- .../workspace/content/up-review/index.tsx | 17 +++-- 7 files changed, 124 insertions(+), 78 deletions(-) diff --git a/src/components/SearchBox.tsx b/src/components/SearchBox.tsx index d30f964..c8e7d47 100644 --- a/src/components/SearchBox.tsx +++ b/src/components/SearchBox.tsx @@ -54,21 +54,36 @@ const SearchBox: React.FC = ({ }) => { const theme = useTheme(); const [searchTerm, setSearchTerm] = useState(value); - const [selectedFilters, setSelectedFilters] = useState([]); - const [sortBy, setSortBy] = useState("Modified On"); - const [status, setStatus] = useState("All"); - const [state, setState] = useState("All"); + const sort: string = typeof router.query.sort === "string" + ? router.query.sort + : "Modified On"; + + const [sortBy, setSortBy] = useState(sort); + const statusQuery : string = typeof router.query.status === "string" + ? router.query.status + : "All"; + const [status, setStatus] = useState(statusQuery); + const stateQuery : string = typeof router.query.state === "string" + ? router.query.state + : "All"; + const [state, setState] = useState(stateQuery); const [stateOptions, setStateOptions] = useState([]); + const filterOption: string[] = router.query.filterOptions + ? JSON.parse(router.query.filterOptions as string) + : []; + const [selectedFilters, setSelectedFilters] = useState(filterOption); + +console.log("filterOption", filterOption); const [primaryCategory, setPrimaryCategory] = useState(); - useEffect(() => { - const localSelectedFilters= localStorage.getItem("selectedFilters"); - const selectedFilter = localSelectedFilters?JSON.parse(localSelectedFilters ): null; - if(selectedFilters){ - setSelectedFilters(selectedFilter); - } + // useEffect(() => { + // const localSelectedFilters= localStorage.getItem("selectedFilters"); + // const selectedFilter = localSelectedFilters?JSON.parse(localSelectedFilters ): null; + // if(selectedFilters){ + // setSelectedFilters(selectedFilter); + // } - }, []); + // }, []); useEffect(() => { const PrimaryCategoryData = async () => { const response = await getPrimaryCategory(); @@ -136,11 +151,10 @@ const SearchBox: React.FC = ({ const handleFilterChange = (event: SelectChangeEvent) => { const value = event.target.value as string[]; - localStorage.setItem("selectedFilters", JSON.stringify(value)); router.push( { pathname: router.pathname, - query: { ...router.query, page: 1 }, + query: { ...router.query, page: 1 , filterOptions: JSON.stringify(value)}, }, undefined, { shallow: true } @@ -151,17 +165,41 @@ const SearchBox: React.FC = ({ const handleSortChange = (event: SelectChangeEvent) => { const value = event.target.value as string; + router.push( + { + pathname: router.pathname, + query: { ...router.query, sort: value}, + }, + undefined, + { shallow: true } + ); setSortBy(value); onSortChange && onSortChange(value); }; const handleStatusChange = (event: SelectChangeEvent) => { const value = event.target.value as string; + router.push( + { + pathname: router.pathname, + query: { ...router.query, status: value}, + }, + undefined, + { shallow: true } + ); setStatus(value); onStatusChange && onStatusChange(value); }; const handleStateChange = (event: SelectChangeEvent) => { const value = event.target.value as string; + router.push( + { + pathname: router.pathname, + query: { ...router.query, state: value}, + }, + undefined, + { shallow: true } + ); setState(value); onStateChange && onStateChange(value); }; diff --git a/src/pages/workspace/content/allContents/index.tsx b/src/pages/workspace/content/allContents/index.tsx index 22a5013..5f7f02d 100644 --- a/src/pages/workspace/content/allContents/index.tsx +++ b/src/pages/workspace/content/allContents/index.tsx @@ -76,9 +76,18 @@ const AllContentsPage = () => { const [page, setPage] = useState(0); const [rowsPerPage, setRowsPerPage] = useState(10); const [searchTerm, setSearchTerm] = useState(""); - const [filter, setFilter] = useState([]); - const [sortBy, setSortBy] = useState("Modified On"); - const [statusBy, setStatusBy] = useState("All"); + const filterOption: string[] = router.query.filterOptions + ? JSON.parse(router.query.filterOptions as string) + : []; + const [filter, setFilter] = useState(filterOption); + const sort: string = typeof router.query.sort === "string" + ? router.query.sort + : "Modified On"; + const [sortBy, setSortBy] = useState(sort); + const statusQuery : string = typeof router.query.status === "string" + ? router.query.status + : "All"; + const [statusBy, setStatusBy] = useState(statusQuery); const [contentList, setContentList] = React.useState([]); const [data, setData] = React.useState([]); @@ -185,17 +194,8 @@ const AllContentsPage = () => { const query = debouncedSearchTerm || ""; - const localSelectedFilters = localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters - ? JSON.parse(localSelectedFilters) - : null; - const primaryCategory = selectedFilters - ? selectedFilters - : filter.length - ? filter - : []; - - const order = sortBy === "Created On" ? "asc" : "desc"; + const primaryCategory = filter.length ? filter : []; + const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order, }; diff --git a/src/pages/workspace/content/discover-contents/index.tsx b/src/pages/workspace/content/discover-contents/index.tsx index dabe7ef..7b96596 100644 --- a/src/pages/workspace/content/discover-contents/index.tsx +++ b/src/pages/workspace/content/discover-contents/index.tsx @@ -79,8 +79,15 @@ const ContentsPage = () => { const [page, setPage] = useState(0); const [rowsPerPage, setRowsPerPage] = useState(10); const [searchTerm, setSearchTerm] = useState(""); - const [filter, setFilter] = useState([]); - const [sortBy, setSortBy] = useState("Modified On"); + + const filterOption: string[] = router.query.filterOptions + ? JSON.parse(router.query.filterOptions as string) + : []; + const [filter, setFilter] = useState(filterOption); + const sort: string = typeof router.query.sort === "string" + ? router.query.sort + : "Modified On"; + const [sortBy, setSortBy] = useState(sort); const [contentList, setContentList] = React.useState([]); const [data, setData] = React.useState([]); const prevFilterRef = useRef(filter); @@ -91,8 +98,10 @@ const ContentsPage = () => { const [debouncedSearchTerm, setDebouncedSearchTerm] = useState(searchTerm); const [totalCount, setTotalCount] = useState(0); - const [state, setState] = useState("All"); - + const stateQuery : string = typeof router.query.state === "string" + ? router.query.state + : "All"; + const [state, setState] = useState(stateQuery); const handleChangePage = (event: unknown, newPage: number) => { setPage(newPage - 1); }; @@ -148,11 +157,7 @@ const ContentsPage = () => { const selectedFilters = localSelectedFilters ? JSON.parse(localSelectedFilters) : null; - const primaryCategory = selectedFilters - ? selectedFilters - : filter.length - ? filter - : []; + const primaryCategory = filter.length ? filter : []; const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { lastUpdatedOn: order, diff --git a/src/pages/workspace/content/draft/index.tsx b/src/pages/workspace/content/draft/index.tsx index d5049d1..df21770 100644 --- a/src/pages/workspace/content/draft/index.tsx +++ b/src/pages/workspace/content/draft/index.tsx @@ -50,12 +50,20 @@ const columns = [ ]; const DraftPage = () => { const [selectedKey, setSelectedKey] = useState("draft"); + const router = useRouter(); + const [page, setPage] = useState(0); const [rowsPerPage, setRowsPerPage] = useState(5); const [searchTerm, setSearchTerm] = useState(""); - const [filter, setFilter] = useState([]); - const [sortBy, setSortBy] = useState("Modified On"); - const [contentList, setContentList] = React.useState([]); + const filterOption: string[] = router.query.filterOptions + ? JSON.parse(router.query.filterOptions as string) + : []; + const [filter, setFilter] = useState(filterOption); + const sort: string = typeof router.query.sort === "string" + ? router.query.sort + : "Modified On"; + const [sortBy, setSortBy] = useState(sort); + const [contentList, setContentList] = React.useState([]); const [contentDeleted, setContentDeleted] = React.useState(false); const [loading, setLoading] = useState(false); const [totalCount, setTotalCount] = useState(0); @@ -111,7 +119,6 @@ const DraftPage = () => { setContentDeleted((prev) => !prev); }; - const router = useRouter(); useEffect(() => { const getDraftContentList = async () => { @@ -123,11 +130,7 @@ const DraftPage = () => { const selectedFilters = localSelectedFilters ? JSON.parse(localSelectedFilters) : null; - const primaryCategory = selectedFilters - ? selectedFilters - : filter.length - ? filter - : []; + const primaryCategory =filter.length? filter: []; if (prevFilterRef.current !== filter) { offset = 0; setPage(0); diff --git a/src/pages/workspace/content/publish/index.tsx b/src/pages/workspace/content/publish/index.tsx index 46d8cd7..8554d8b 100644 --- a/src/pages/workspace/content/publish/index.tsx +++ b/src/pages/workspace/content/publish/index.tsx @@ -49,13 +49,21 @@ const columns = [ { key: "action", title: "ACTION", dataType: DataType.String, width: "100px" }, ]; const PublishPage = () => { + const router = useRouter(); + const [selectedKey, setSelectedKey] = useState("publish"); const [page, setPage] = useState(0); const [rowsPerPage, setRowsPerPage] = useState(5); const [searchTerm, setSearchTerm] = useState(""); - const [filter, setFilter] = useState([]); - const [sortBy, setSortBy] = useState("Modified On"); - const [contentList, setContentList] = React.useState([]); + const filterOption: string[] = router.query.filterOptions + ? JSON.parse(router.query.filterOptions as string) + : []; + const [filter, setFilter] = useState(filterOption); + const sort: string = typeof router.query.sort === "string" + ? router.query.sort + : "Modified On"; + const [sortBy, setSortBy] = useState(sort); + const [contentList, setContentList] = React.useState([]); const [contentDeleted, setContentDeleted] = React.useState(false); const [loading, setLoading] = useState(false); const [totalCount, setTotalCount] = useState(0); @@ -64,7 +72,6 @@ const PublishPage = () => { const [debouncedSearchTerm, setDebouncedSearchTerm] = useState(searchTerm); - const router = useRouter(); const prevFilterRef = useRef(filter); useEffect(() => { @@ -130,15 +137,8 @@ const PublishPage = () => { setLoading(true); const query = debouncedSearchTerm || ""; let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; - const localSelectedFilters = localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters - ? JSON.parse(localSelectedFilters) - : null; - const primaryCategory = selectedFilters - ? selectedFilters - : filter.length - ? filter - : []; + + const primaryCategory = filter.length ? filter : []; if (prevFilterRef.current !== filter) { offset = 0; setPage(0); diff --git a/src/pages/workspace/content/submitted/index.tsx b/src/pages/workspace/content/submitted/index.tsx index 2140fc5..269ed34 100644 --- a/src/pages/workspace/content/submitted/index.tsx +++ b/src/pages/workspace/content/submitted/index.tsx @@ -49,9 +49,15 @@ const columns = [ ]; const SubmittedForReviewPage = () => { const [selectedKey, setSelectedKey] = useState("submitted"); - const [filter, setFilter] = useState([]); - const [sortBy, setSortBy] = useState("Modified On"); - const [searchTerm, setSearchTerm] = useState(""); + const filterOption: string[] = router.query.filterOptions + ? JSON.parse(router.query.filterOptions as string) + : []; + const [filter, setFilter] = useState(filterOption); + const sort: string = typeof router.query.sort === "string" + ? router.query.sort + : "Modified On"; + const [sortBy, setSortBy] = useState(sort); + const [searchTerm, setSearchTerm] = useState(""); const [contentList, setContentList] = useState([]); const [loading, setLoading] = useState(false); const [contentDeleted, setContentDeleted] = useState(false); @@ -106,16 +112,7 @@ const SubmittedForReviewPage = () => { setLoading(true); const query = debouncedSearchTerm || ""; let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; - const localSelectedFilters = localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters - ? JSON.parse(localSelectedFilters) - : null; - const primaryCategory = selectedFilters - ? selectedFilters - : filter.length - ? filter - : []; - + const primaryCategory = filter.length ? filter : []; if (prevFilterRef.current !== filter) { offset = 0; setPage(0); diff --git a/src/pages/workspace/content/up-review/index.tsx b/src/pages/workspace/content/up-review/index.tsx index 5d0bbd1..97a58d4 100644 --- a/src/pages/workspace/content/up-review/index.tsx +++ b/src/pages/workspace/content/up-review/index.tsx @@ -38,9 +38,15 @@ const columns = [ ] const UpForReviewPage = () => { const [selectedKey, setSelectedKey] = useState("up-review"); - const [filter, setFilter] = useState([]); - const [sortBy, setSortBy] = useState("Modified On"); - const [searchTerm, setSearchTerm] = useState(""); + const filterOption: string[] = router.query.filterOptions + ? JSON.parse(router.query.filterOptions as string) + : []; + const [filter, setFilter] = useState(filterOption); + const sort: string = typeof router.query.sort === "string" + ? router.query.sort + : "Modified On"; + const [sortBy, setSortBy] = useState(sort); + const [searchTerm, setSearchTerm] = useState(""); const [contentList, setContentList] = useState([]); const [loading, setLoading] = useState(false); const [contentDeleted, setContentDeleted] = useState(false); @@ -106,10 +112,7 @@ const UpForReviewPage = () => { setLoading(true); const query = debouncedSearchTerm || ""; let offset =debouncedSearchTerm!==""? 0 : page * LIMIT; - const localSelectedFilters= localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters?JSON.parse(localSelectedFilters ): null; - const primaryCategory = selectedFilters? selectedFilters : filter.length ? filter : []; - + const primaryCategory = filter.length ? filter : []; if (prevFilterRef.current !== filter) { offset=0; setPage(0); From 755c66e367ab1f4883d5b70e57302a4b33e6be58 Mon Sep 17 00:00:00 2001 From: Akshata Katwal Date: Tue, 31 Dec 2024 15:45:25 +0530 Subject: [PATCH 8/8] update pr --- src/components/SearchBox.tsx | 9 +-------- src/pages/workspace/content/discover-contents/index.tsx | 5 +---- src/pages/workspace/content/draft/index.tsx | 5 +---- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/src/components/SearchBox.tsx b/src/components/SearchBox.tsx index c8e7d47..1e3f9cd 100644 --- a/src/components/SearchBox.tsx +++ b/src/components/SearchBox.tsx @@ -76,14 +76,7 @@ const SearchBox: React.FC = ({ console.log("filterOption", filterOption); const [primaryCategory, setPrimaryCategory] = useState(); - // useEffect(() => { - // const localSelectedFilters= localStorage.getItem("selectedFilters"); - // const selectedFilter = localSelectedFilters?JSON.parse(localSelectedFilters ): null; - // if(selectedFilters){ - // setSelectedFilters(selectedFilter); - // } - - // }, []); + useEffect(() => { const PrimaryCategoryData = async () => { const response = await getPrimaryCategory(); diff --git a/src/pages/workspace/content/discover-contents/index.tsx b/src/pages/workspace/content/discover-contents/index.tsx index 7b96596..1a2f727 100644 --- a/src/pages/workspace/content/discover-contents/index.tsx +++ b/src/pages/workspace/content/discover-contents/index.tsx @@ -153,10 +153,7 @@ const ContentsPage = () => { // "FlagReview", ]; const query = debouncedSearchTerm || ""; - const localSelectedFilters = localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters - ? JSON.parse(localSelectedFilters) - : null; + const primaryCategory = filter.length ? filter : []; const order = sortBy === "Created On" ? "asc" : "desc"; const sort_by = { diff --git a/src/pages/workspace/content/draft/index.tsx b/src/pages/workspace/content/draft/index.tsx index df21770..8aa5da0 100644 --- a/src/pages/workspace/content/draft/index.tsx +++ b/src/pages/workspace/content/draft/index.tsx @@ -126,10 +126,7 @@ const DraftPage = () => { setLoading(true); const query = debouncedSearchTerm || ""; let offset = debouncedSearchTerm !== "" ? 0 : page * LIMIT; - const localSelectedFilters = localStorage.getItem("selectedFilters"); - const selectedFilters = localSelectedFilters - ? JSON.parse(localSelectedFilters) - : null; + const primaryCategory =filter.length? filter: []; if (prevFilterRef.current !== filter) { offset = 0;