From bf9a06682c776f2e5eb22bcf7586f073bc3c9120 Mon Sep 17 00:00:00 2001 From: srijanjeet Date: Tue, 4 Jan 2022 00:34:47 +0530 Subject: [PATCH] Minor changes Upsolve page --- .github/workflows/node.js.yml | 25 ++- public/index.html | 11 +- src/App.js | 18 +- src/helpers/Upsolve/PracticeApi.js | 100 +++++------ src/helpers/Upsolve/SimpleApi.js | 97 +++++----- src/helpers/Upsolve/Upsolve.js | 61 ++++--- src/helpers/Upsolve/VirtualApi.js | 97 +++++----- src/pages/Homepage.js | 2 +- src/pages/Navbar.js | 126 +++++++------ src/pages/Upsolve/CarouselUpsolve.js | 40 ++--- src/pages/Upsolve/CommonQues.js | 2 +- src/pages/Upsolve/Toggle.js | 21 ++- src/pages/Upsolve/mainUpsolve.js | 48 +++-- src/styles/Contests/contests.css | 1 - src/styles/Navbar/Navigation.css | 254 ++++++++++++--------------- src/styles/Upsolve/upsolve.css | 11 +- src/utils/Upsolveresponsive.js | 6 +- 17 files changed, 472 insertions(+), 448 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index c126b8c..ef413da 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -2,13 +2,12 @@ name: CI/CD on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] jobs: build: - runs-on: ubuntu-latest strategy: @@ -16,16 +15,16 @@ jobs: node-version: [12.x] steps: - - name: Checkout repository - uses: actions/checkout@v2 + - name: Checkout repository + uses: actions/checkout@v2 - - name: Set up Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} + - name: Set up Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} - - name: Install dependencies - run: npm install + - name: Install dependencies + run: npm install - - name: Build - run: npm run build + - name: Build + run: npm run build diff --git a/public/index.html b/public/index.html index 7fb47ab..050d51a 100644 --- a/public/index.html +++ b/public/index.html @@ -2,13 +2,14 @@ - + - + diff --git a/src/App.js b/src/App.js index b317967..69156f4 100644 --- a/src/App.js +++ b/src/App.js @@ -35,7 +35,6 @@ import mainUpsolve from './pages/Upsolve/mainUpsolve' import { atcoder, codechef, codeforces } from './actions/upsolve.actions' import Navbar from './pages/Navbar' - const { Header, Footer, Content } = Layout //react context @@ -127,7 +126,7 @@ const App = () => { */} - + @@ -138,11 +137,20 @@ const App = () => { } /> } /> {/* Login/Registration */} - + {/* Codeforces upsolve */} - + {/* Atcoder Upsolve */} - + {/* Codechef upsolve */} } /> {/* Homepage */} } /> diff --git a/src/helpers/Upsolve/PracticeApi.js b/src/helpers/Upsolve/PracticeApi.js index 1650e53..f749476 100644 --- a/src/helpers/Upsolve/PracticeApi.js +++ b/src/helpers/Upsolve/PracticeApi.js @@ -1,55 +1,57 @@ async function PracticeAPI( - setFirstPage, - setLastPage, - page, - PracticeToggle,setPracticeToggle, - setPreviousPage, - setNextPage, - setCurrentPage, - setData, - setLoader,platform - ) { - const creds = JSON.parse(localStorage.getItem('creds')) - const acessToken = creds.access - const response = await platform(acessToken, page, PracticeToggle) - if (response.status === 200) { - const data = await response.json() - if (data.status === 'OK' && data.result.length > 0) { - const newLinks = data.links - setFirstPage(newLinks.first.split('=')[1]) - setLastPage(newLinks.last.split('=')[1]) - if (newLinks.prev !== null) { - setPreviousPage(newLinks.prev.split('=')[1]) - } - if (newLinks.next !== null) { - setNextPage(newLinks.next.split('=')[1]) - } - setLastPage(data.meta.last_page) - setCurrentPage(data.meta.current_page) - const result = await data.result - await setData(result) - } else if (PracticeToggle == true) { - localStorage.setItem( - 'err', - 'Please practice or compete to view this page' - ) - window.location = '/home' - } else { - setPracticeToggle(true) + setFirstPage, + setLastPage, + page, + PracticeToggle, + setPracticeToggle, + setPreviousPage, + setNextPage, + setCurrentPage, + setData, + setLoader, + platform +) { + const creds = JSON.parse(localStorage.getItem('creds')) + const acessToken = creds.access + const response = await platform(acessToken, page, PracticeToggle) + if (response.status === 200) { + const data = await response.json() + if (data.status === 'OK' && data.result.length > 0) { + const newLinks = data.links + setFirstPage(newLinks.first.split('=')[1]) + setLastPage(newLinks.last.split('=')[1]) + if (newLinks.prev !== null) { + setPreviousPage(newLinks.prev.split('=')[1]) } - - setLoader(false) - } else { - const data = await response.json() - - if ( - data.error === - "You haven't Entered your Atcoder Handle in your Profile.. Update Now!" - ) { - localStorage.setItem('err', data.error) - window.location = '/home' + if (newLinks.next !== null) { + setNextPage(newLinks.next.split('=')[1]) } + setLastPage(data.meta.last_page) + setCurrentPage(data.meta.current_page) + const result = await data.result + await setData(result) + } else if (PracticeToggle == true) { + localStorage.setItem( + 'err', + 'Please practice or compete to view this page' + ) + window.location = '/home' + } else { + setPracticeToggle(true) + } + + setLoader(false) + } else { + const data = await response.json() + + if ( + data.error === + "You haven't Entered your Atcoder Handle in your Profile.. Update Now!" + ) { + localStorage.setItem('err', data.error) + window.location = '/home' } } +} - export default PracticeAPI \ No newline at end of file +export default PracticeAPI diff --git a/src/helpers/Upsolve/SimpleApi.js b/src/helpers/Upsolve/SimpleApi.js index dc57a78..b3ee974 100644 --- a/src/helpers/Upsolve/SimpleApi.js +++ b/src/helpers/Upsolve/SimpleApi.js @@ -1,58 +1,59 @@ async function SimpleAPIData( - setFirstPage, - setLastPage, - page, - setPreviousPage, - setNextPage, - setCurrentPage, - setData, - setLoader,platform - ) { - const creds = JSON.parse(localStorage.getItem('creds')) - const acessToken = creds.access - const response = await platform(acessToken, page); - - if (response.status === 200) { - const data = await response.json() - - if (data.status === 'OK') { - if (data.result.length > 0) { - const newLinks = data.links - await setFirstPage(newLinks.first.split('=')[1]) - - await setLastPage(newLinks.last.split('=')[1]) - - if (newLinks.prev !== null) { - setPreviousPage(newLinks.prev.split('=')[1]) - } - if (newLinks.next !== null) { - setNextPage(newLinks.next.split('=')[1]) - } - await setLastPage(data.meta.last_page) - await setCurrentPage(data.meta.current_page) - } else { - localStorage.setItem( - 'err', - 'Codechef upsolve is available when you participate in atleast one contest' - ) - window.location = '/home' + setFirstPage, + setLastPage, + page, + setPreviousPage, + setNextPage, + setCurrentPage, + setData, + setLoader, + platform +) { + const creds = JSON.parse(localStorage.getItem('creds')) + const acessToken = creds.access + const response = await platform(acessToken, page) + + if (response.status === 200) { + const data = await response.json() + + if (data.status === 'OK') { + if (data.result.length > 0) { + const newLinks = data.links + await setFirstPage(newLinks.first.split('=')[1]) + + await setLastPage(newLinks.last.split('=')[1]) + + if (newLinks.prev !== null) { + setPreviousPage(newLinks.prev.split('=')[1]) + } + if (newLinks.next !== null) { + setNextPage(newLinks.next.split('=')[1]) } + await setLastPage(data.meta.last_page) + await setCurrentPage(data.meta.current_page) } else { - localStorage.setItem('err', 'No contest found for this handle') + localStorage.setItem( + 'err', + 'Codechef upsolve is available when you participate in atleast one contest' + ) window.location = '/home' } - - const result = await data.result - await setData(result) - setLoader(false) - } else if (response.status == 500) { - localStorage.setItem('err', 'No contest found for this handle') - window.location = '/home' } else { - const data = await response.json() - localStorage.setItem('err', data.error) + localStorage.setItem('err', 'No contest found for this handle') window.location = '/home' } + + const result = await data.result + await setData(result) + setLoader(false) + } else if (response.status == 500) { + localStorage.setItem('err', 'No contest found for this handle') + window.location = '/home' + } else { + const data = await response.json() + localStorage.setItem('err', data.error) + window.location = '/home' } +} - export default SimpleAPIData \ No newline at end of file +export default SimpleAPIData diff --git a/src/helpers/Upsolve/Upsolve.js b/src/helpers/Upsolve/Upsolve.js index 0fbf6b3..de6fac5 100644 --- a/src/helpers/Upsolve/Upsolve.js +++ b/src/helpers/Upsolve/Upsolve.js @@ -1,46 +1,52 @@ -import SimpleAPIData from "./SimpleApi"; -import PracticeAPI from "./PracticeApi"; -import virtualAPI from "./VirtualApi"; +import SimpleAPIData from './SimpleApi' +import PracticeAPI from './PracticeApi' +import virtualAPI from './VirtualApi' -function APIData(datarequired,setFirstPage, +function APIData( + datarequired, + setFirstPage, setLastPage, page, setPreviousPage, setNextPage, setCurrentPage, setData, - setLoader,platform, PracticeToggle,setPracticeToggle,virtualDataToggle, - setvirtualDataToggle) - -{ - - if(datarequired === "simpleData") - { - - SimpleAPIData(setFirstPage, + setLoader, + platform, + PracticeToggle, + setPracticeToggle, + virtualDataToggle, + setvirtualDataToggle +) { + if (datarequired === 'simpleData') { + SimpleAPIData( + setFirstPage, setLastPage, page, setPreviousPage, setNextPage, setCurrentPage, setData, - setLoader,platform); - } - else if(datarequired === "PracticeData") - { - PracticeAPI(setFirstPage, + setLoader, + platform + ) + } else if (datarequired === 'PracticeData') { + PracticeAPI( + setFirstPage, setLastPage, page, - PracticeToggle,setPracticeToggle, + PracticeToggle, + setPracticeToggle, setPreviousPage, setNextPage, setCurrentPage, setData, - setLoader,platform) - } - else if(datarequired === "virtualData") - { - virtualAPI(setFirstPage, + setLoader, + platform + ) + } else if (datarequired === 'virtualData') { + virtualAPI( + setFirstPage, setLastPage, page, virtualDataToggle, @@ -49,9 +55,10 @@ function APIData(datarequired,setFirstPage, setNextPage, setCurrentPage, setData, - setLoader,platform) + setLoader, + platform + ) } - } -export default APIData \ No newline at end of file +export default APIData diff --git a/src/helpers/Upsolve/VirtualApi.js b/src/helpers/Upsolve/VirtualApi.js index d2de0fa..70689df 100644 --- a/src/helpers/Upsolve/VirtualApi.js +++ b/src/helpers/Upsolve/VirtualApi.js @@ -1,54 +1,55 @@ async function virtualAPI( - setFirstPage, - setLastPage, - page, - virtualDataToggle, - setvirtualDataToggle, - setPreviousPage, - setNextPage, - setCurrentPage, - setData, - setLoader,platform - ) { - const creds = JSON.parse(localStorage.getItem('creds')) - const acessToken = creds.access - - const response = await platform(acessToken, virtualDataToggle, page) - if (response.status == 200) { - const data = await response.json() - - if (data.status === 'OK') { - if (data.result.length > 0) { - const newLinks = data.links - setFirstPage(newLinks.first.split('=')[1]) - setLastPage(newLinks.last.split('=')[1]) - if (newLinks.prev !== null) { - setPreviousPage(newLinks.prev.split('=')[1]) - } - if (newLinks.next !== null) { - setNextPage(newLinks.next.split('=')[1]) - } - await setLastPage(data.meta.last_page) - setCurrentPage(data.meta.current_page) - } else if (virtualDataToggle == false) { - setvirtualDataToggle(true) - } else { - localStorage.setItem( - 'err', - 'Codeforces upsolve is available when you participate in atleast one contest(official/virtual)' - ) - window.location = '/home' + setFirstPage, + setLastPage, + page, + virtualDataToggle, + setvirtualDataToggle, + setPreviousPage, + setNextPage, + setCurrentPage, + setData, + setLoader, + platform +) { + const creds = JSON.parse(localStorage.getItem('creds')) + const acessToken = creds.access + + const response = await platform(acessToken, virtualDataToggle, page) + if (response.status == 200) { + const data = await response.json() + + if (data.status === 'OK') { + if (data.result.length > 0) { + const newLinks = data.links + setFirstPage(newLinks.first.split('=')[1]) + setLastPage(newLinks.last.split('=')[1]) + if (newLinks.prev !== null) { + setPreviousPage(newLinks.prev.split('=')[1]) } + if (newLinks.next !== null) { + setNextPage(newLinks.next.split('=')[1]) + } + await setLastPage(data.meta.last_page) + setCurrentPage(data.meta.current_page) + } else if (virtualDataToggle == false) { + setvirtualDataToggle(true) + } else { + localStorage.setItem( + 'err', + 'Codeforces upsolve is available when you participate in atleast one contest(official/virtual)' + ) + window.location = '/home' } - - const result = await data.result - await setData(result) - setLoader(false) - } else { - setLoader(false) - localStorage.setItem('err', data.error) - window.location = '/home' } + + const result = await data.result + await setData(result) + setLoader(false) + } else { + setLoader(false) + localStorage.setItem('err', data.error) + window.location = '/home' } +} - export default virtualAPI \ No newline at end of file +export default virtualAPI diff --git a/src/pages/Homepage.js b/src/pages/Homepage.js index 9816f36..012c42d 100644 --- a/src/pages/Homepage.js +++ b/src/pages/Homepage.js @@ -2,7 +2,7 @@ import React from 'react' function Homepage(props) { console.log(props) - return
Homepage
+ return
Homepage
} export default Homepage diff --git a/src/pages/Navbar.js b/src/pages/Navbar.js index cc6493c..34a51d0 100644 --- a/src/pages/Navbar.js +++ b/src/pages/Navbar.js @@ -1,60 +1,82 @@ - import React, { useState } from 'react' import logo1 from '../assets/Common/codedigger-logo-64px.png' import '../styles/Navbar/Navigation.css' -import { GiHamburgerMenu } from "react-icons/gi" +import { GiHamburgerMenu } from 'react-icons/gi' export default function Navbar() { - const [hamOnclick, sethamOnclick] = useState(false) - return ( - <> - + + ) } diff --git a/src/pages/Upsolve/CarouselUpsolve.js b/src/pages/Upsolve/CarouselUpsolve.js index 63f4a4a..138212d 100644 --- a/src/pages/Upsolve/CarouselUpsolve.js +++ b/src/pages/Upsolve/CarouselUpsolve.js @@ -14,11 +14,11 @@ export default function Carousel_Upsolve(props) { - + responsive={RESPONSIVE} + > {props.problems.map((prob) => { if (prob.status === 'solved') { if (props.notAttemptedToggle == false) { @@ -38,27 +38,23 @@ export default function Carousel_Upsolve(props) { ) } - } else if (prob.status === 'wrong') { - - return ( - - {' '} -
- -
- - ) - - + return ( + + {' '} +
+ +
+ + ) } else if (prob.status === 'upsolved') { if (props.notAttemptedToggle == false) { return ( diff --git a/src/pages/Upsolve/CommonQues.js b/src/pages/Upsolve/CommonQues.js index 03b40d6..889b83f 100644 --- a/src/pages/Upsolve/CommonQues.js +++ b/src/pages/Upsolve/CommonQues.js @@ -15,7 +15,7 @@ export default function CommonQues(props) { {props.sitename !== 'atcoder' ? ( +
{props.tags.substr(2, props.tags.length - 1)}
diff --git a/src/pages/Upsolve/Toggle.js b/src/pages/Upsolve/Toggle.js index 3a3a328..445edb2 100644 --- a/src/pages/Upsolve/Toggle.js +++ b/src/pages/Upsolve/Toggle.js @@ -1,5 +1,5 @@ import React from 'react' -import { Switch } from 'antd'; +import { Switch } from 'antd' export default function Toggle(props) { return ( @@ -18,17 +18,22 @@ export default function Toggle(props) {
-
+
Include Practice
- { - props.setPracticeToggle(!props.PracticeToggle) - props.setvirtualPracticeToggle(!props.virtualPracticeToggle) - props.setnextPage(1) - }} /> + { + props.setPracticeToggle(!props.PracticeToggle) + props.setvirtualPracticeToggle(!props.virtualPracticeToggle) + props.setnextPage(1) + }} + />
-
+
Only Wrong/Not Attempted
{ +const mainUpsolve = (requiredData, platform, siteName) => { const [notAttemptedToggle, setnotAttemptedToggle] = useState(false) const pageNumbers = [] const [nextpage, setnextPage] = useState(1) @@ -19,13 +19,13 @@ const mainUpsolve = (requiredData,platform,siteName) => { const [firstPage, setFirstPage] = useState(1) const [lastPage, setLastpage] = useState(null) const [APIdata, setData] = useState([]) - + const [virtualPracticeToggle, setvirtualPracticeToggle] = useState(false) const [PracticeToggle, setPracticeToggle] = useState(false) - + const [currentPage, setcurrentPage] = useState(1) let [update, setUpdate] = useState(0) - + useEffect(() => { setFirstPage(null) setLastpage(null) @@ -34,17 +34,29 @@ const mainUpsolve = (requiredData,platform,siteName) => { setNext(null) Validate() - APIData(requiredData,setFirstPage, + APIData( + requiredData, + setFirstPage, setLastpage, nextpage, setpreviousPage, setNext, setcurrentPage, setData, - setLoader,platform, PracticeToggle,setPracticeToggle,virtualPracticeToggle, - setvirtualPracticeToggle) - - },[nextpage, virtualPracticeToggle, notAttemptedToggle,PracticeToggle,update]) + setLoader, + platform, + PracticeToggle, + setPracticeToggle, + virtualPracticeToggle, + setvirtualPracticeToggle + ) + }, [ + nextpage, + virtualPracticeToggle, + notAttemptedToggle, + PracticeToggle, + update, + ]) if (lastPage != null) { for (let i = 1; i <= lastPage; i++) { @@ -70,7 +82,7 @@ const mainUpsolve = (requiredData,platform,siteName) => { {APIdata.length > 0 ? ( <> { refresh={refresh} notAttemptedToggle={notAttemptedToggle} setnotAttemptedToggle={setnotAttemptedToggle} - setPracticeToggle = {setPracticeToggle} - PracticeToggle = {PracticeToggle} - setnextPage = {setnextPage} - setLoader = {setLoader} - setvirtualPracticeToggle = {setvirtualPracticeToggle} - virtualPracticeToggle = {virtualPracticeToggle} + setPracticeToggle={setPracticeToggle} + PracticeToggle={PracticeToggle} + setnextPage={setnextPage} + setLoader={setLoader} + setvirtualPracticeToggle={setvirtualPracticeToggle} + virtualPracticeToggle={virtualPracticeToggle} /> {APIdata.map((res) => { return ( @@ -92,7 +104,7 @@ const mainUpsolve = (requiredData,platform,siteName) => { {res.problems.length > 0 ? ( <>