diff --git a/src/App.js b/src/App.js index b0eb553..546dc83 100644 --- a/src/App.js +++ b/src/App.js @@ -21,7 +21,7 @@ import Loading from './components/generic/Loading'; import { FlexColumn } from './utils/containers'; import PopupMessage from './components/generic/PopupMessage'; import PolicyPrivacy from './pages/PolicyPrivacy'; -import Challenge from './components/specific_challenge/Challenge'; +import Challenge from './pages/Challenge'; const App = () => { const [loggedBarVisible, setLoggedBarVisible] = React.useState('100vw'); diff --git a/src/components/challenges_list/MiniChallenge.js b/src/components/challenges_list/MiniChallenge.js deleted file mode 100644 index d8505a0..0000000 --- a/src/components/challenges_list/MiniChallenge.js +++ /dev/null @@ -1,122 +0,0 @@ -import React from 'react'; -import {Container, FlexColumn, FlexRow, Grid} from '../../utils/containers'; -import {Body, H3} from '../../utils/fonts'; -import styled from 'styled-components'; -import IconLabel from '../generic/IconLabel'; -import {Link} from 'react-router-dom'; -import {CHALLENGE_PAGE, MINI_DESCRIPTION_RENDER} from '../../utils/globals'; -import theme from '../../utils/theme'; -import PropsTypes from 'prop-types'; - -const ChallengeStyle = styled(FlexColumn)` - padding: 12px; - border: 1px solid ${({theme}) => theme.colors.dark05}; - cursor: pointer; - transition: transform 0.3s ease-in-out; - position: relative; - max-width: 420px; - - * { - cursor: pointer; - } - - &:hover { - transform: scale(1.05); - } - - article { - width: 100%; - align-items: flex-start; - - p { - width: 80%; - } - } - - @media (min-width: ${({theme}) => theme.overMobile}) { - width: 360px; - padding: 20px; - justify-content: flex-start; - } -`; - -const IconsGrid = styled(Grid)` - width: 100%; - grid-gap: 14px; - grid-template-columns: 1fr 1fr; - grid-template-rows: 1fr 1fr; - - @media (min-width: 500px) { - grid-template-columns: auto auto auto; - } -`; - -const MiniChallenge = (props) => { - const deadlineRender = () => { - if (props.deadline) { - return ( - - {props.deadline.slice(0, 10)} - - ); - } - }; - - return ( - - - -

- {props.title} -

- {props.type ? : 'xxx'} -
- - - {props.description ? MINI_DESCRIPTION_RENDER(props.description) : 'xxx'} - - - - {props.metric ? props.metric : 'xxx'} - - - {props.bestScore ? props.bestScore : 'xxx'} - - {deadlineRender()} - - {props.baseline ? props.baseline : 'xxx'} - - {props.prize ? - {props.prize} - : ''} - -
-
- ); -}; - -MiniChallenge.propTypes = { - name: PropsTypes.string, - title: PropsTypes.string, - type: PropsTypes.string, - description: PropsTypes.string, - metric: PropsTypes.string, - bestScore: PropsTypes.string, - deadline: PropsTypes.string, - baseline: PropsTypes.string, - prize: PropsTypes.string -}; - -MiniChallenge.defaultProps = { - name: 'xxx', - title: 'xxx', - type: 'xxx', - description: 'xxx', - metric: 'xxx', - bestScore: 'xxx', - deadline: 'xxx', - baseline: 'xxx', - prize: 'xxx' -}; - -export default MiniChallenge; \ No newline at end of file diff --git a/src/components/specific_challenge/ColumnFilterIcon.js b/src/components/generic/ColumnFilterIcon.js similarity index 100% rename from src/components/specific_challenge/ColumnFilterIcon.js rename to src/components/generic/ColumnFilterIcon.js diff --git a/src/components/specific_challenge/Table.js b/src/components/generic/Table.js similarity index 100% rename from src/components/specific_challenge/Table.js rename to src/components/generic/Table.js diff --git a/src/components/specific_challenge/AllEntries/AllEntries.js b/src/pages/AllEntries/AllEntries.js similarity index 94% rename from src/components/specific_challenge/AllEntries/AllEntries.js rename to src/pages/AllEntries/AllEntries.js index cb5d7a7..eddcdd1 100644 --- a/src/components/specific_challenge/AllEntries/AllEntries.js +++ b/src/pages/AllEntries/AllEntries.js @@ -1,20 +1,20 @@ import React from 'react'; -import theme from '../../../utils/theme'; +import theme from '../../utils/theme'; import Media from 'react-media'; -import { FlexColumn } from '../../../utils/containers'; -import { H2 } from '../../../utils/fonts'; +import { FlexColumn } from '../../utils/containers'; +import { H2 } from '../../utils/fonts'; import { CALC_PAGES, EVALUATIONS_FORMAT, RENDER_WHEN, IS_MOBILE, -} from '../../../utils/globals'; -import Loading from '../../generic/Loading'; -import Pager from '../../generic/Pager'; -import Table from '../Table'; -import Search from '../../generic/Search'; +} from '../../utils/globals'; +import Loading from '../../components/generic/Loading'; +import Pager from '../../components/generic/Pager'; +import Table from '../../components/generic/Table'; +import Search from '../../components/generic/Search'; import allEntriesSearchQueryHandler from './allEntriesSearchQueryHandler'; -import getAllEntries from '../../../api/getAllEntries'; +import getAllEntries from '../../api/getAllEntries'; const AllEntries = (props) => { const [entriesFromApi, setEntriesFromApi] = React.useState([]); diff --git a/src/components/specific_challenge/AllEntries/allEntriesSearchQueryHandler.js b/src/pages/AllEntries/allEntriesSearchQueryHandler.js similarity index 100% rename from src/components/specific_challenge/AllEntries/allEntriesSearchQueryHandler.js rename to src/pages/AllEntries/allEntriesSearchQueryHandler.js diff --git a/src/components/specific_challenge/AllEntries/index.js b/src/pages/AllEntries/index.js similarity index 100% rename from src/components/specific_challenge/AllEntries/index.js rename to src/pages/AllEntries/index.js diff --git a/src/pages/Challanges/Challenges.js b/src/pages/Challanges/Challenges.js index c4f7186..79daa46 100644 --- a/src/pages/Challanges/Challenges.js +++ b/src/pages/Challanges/Challenges.js @@ -3,7 +3,7 @@ import Media from 'react-media'; import theme from '../../utils/theme'; import getChallenges from '../../api/getChallenges'; import { CHALLENGES_STATUS_FILTER } from '../../utils/globals'; -import FiltersMenu from '../../components/challenges_list/FiltersMenu'; +import FiltersMenu from './components/FiltersMenu'; import statusFilterHandle from './functions/statusFilterHandle'; import ChallengesMobile from './components/ChallengesMobile'; import ChallengesDesktop from './components/ChallengesDesktop'; diff --git a/src/components/challenges_list/FilterBy.js b/src/pages/Challanges/components/FilterBy.js similarity index 87% rename from src/components/challenges_list/FilterBy.js rename to src/pages/Challanges/components/FilterBy.js index f198cc6..93ea726 100644 --- a/src/components/challenges_list/FilterBy.js +++ b/src/pages/Challanges/components/FilterBy.js @@ -1,10 +1,10 @@ import React from 'react'; -import { FlexColumn, Grid, Svg } from '../../utils/containers'; -import Filter from '../generic/Filter'; -import { Body, H3, Medium } from '../../utils/fonts'; -import arrow from '../../assets/arrow.svg'; +import { FlexColumn, Grid, Svg } from '../../../utils/containers'; +import Filter from '../../../components/generic/Filter'; +import { Body, H3, Medium } from '../../../utils/fonts'; +import arrow from '../../../assets/arrow.svg'; import Media from 'react-media'; -import theme from '../../utils/theme'; +import theme from '../../../utils/theme'; const FilterBy = (props) => { const renderFilterOptions = () => { diff --git a/src/components/challenges_list/FiltersMenu/FiltersMenu.js b/src/pages/Challanges/components/FiltersMenu/FiltersMenu.js similarity index 93% rename from src/components/challenges_list/FiltersMenu/FiltersMenu.js rename to src/pages/Challanges/components/FiltersMenu/FiltersMenu.js index acef5ef..8e10e33 100644 --- a/src/components/challenges_list/FiltersMenu/FiltersMenu.js +++ b/src/pages/Challanges/components/FiltersMenu/FiltersMenu.js @@ -1,12 +1,12 @@ import React from 'react'; -import { FlexColumn, FlexRow, TransBack } from '../../../utils/containers'; -import Button from '../../generic/Button'; -import theme from '../../../utils/theme'; +import { FlexColumn, FlexRow, TransBack } from '../../../../utils/containers'; +import Button from '../../../../components/generic/Button'; +import theme from '../../../../utils/theme'; import styled from 'styled-components'; import FilterBy from '../FilterBy'; import filterOptions from './filterOptions'; import Media from 'react-media'; -import CHALLENGES_ACTION from '../../../pages/Challanges/model/ChallengesActionEnum'; +import CHALLENGES_ACTION from '../../model/ChallengesActionEnum'; const FiltersMenuStyle = styled(FlexColumn)` position: fixed; diff --git a/src/components/challenges_list/FiltersMenu/filterOptions.js b/src/pages/Challanges/components/FiltersMenu/filterOptions.js similarity index 100% rename from src/components/challenges_list/FiltersMenu/filterOptions.js rename to src/pages/Challanges/components/FiltersMenu/filterOptions.js diff --git a/src/components/challenges_list/FiltersMenu/index.js b/src/pages/Challanges/components/FiltersMenu/index.js similarity index 100% rename from src/components/challenges_list/FiltersMenu/index.js rename to src/pages/Challanges/components/FiltersMenu/index.js diff --git a/src/pages/Challanges/components/MiniChallenge.js b/src/pages/Challanges/components/MiniChallenge.js new file mode 100644 index 0000000..33ad4ec --- /dev/null +++ b/src/pages/Challanges/components/MiniChallenge.js @@ -0,0 +1,121 @@ +import React from 'react'; +import { + Container, + FlexColumn, + FlexRow, + Grid, +} from '../../../utils/containers'; +import { Body, H3 } from '../../../utils/fonts'; +import styled from 'styled-components'; +import IconLabel from '../../../components/generic/IconLabel'; +import { Link } from 'react-router-dom'; +import { + CHALLENGE_PAGE, + MINI_DESCRIPTION_RENDER, +} from '../../../utils/globals'; +import theme from '../../../utils/theme'; + +const ChallengeStyle = styled(FlexColumn)` + padding: 12px; + border: 1px solid ${({ theme }) => theme.colors.dark05}; + cursor: pointer; + transition: transform 0.3s ease-in-out; + position: relative; + max-width: 420px; + + * { + cursor: pointer; + } + + &:hover { + transform: scale(1.05); + } + + article { + width: 100%; + align-items: flex-start; + + p { + width: 80%; + } + } + + @media (min-width: ${({ theme }) => theme.overMobile}) { + width: 360px; + padding: 20px; + justify-content: flex-start; + } +`; + +const IconsGrid = styled(Grid)` + width: 100%; + grid-gap: 14px; + grid-template-columns: 1fr 1fr; + grid-template-rows: 1fr 1fr; + + @media (min-width: 500px) { + grid-template-columns: auto auto auto; + } +`; + +const MiniChallenge = (props) => { + const deadlineRender = () => { + if (props.deadline) { + return ( + + {props.deadline.slice(0, 10)} + + ); + } + }; + + return ( + + + +

+ {props.title} +

+ {props.type ? : 'xxx'} +
+ + + {props.description + ? MINI_DESCRIPTION_RENDER(props.description) + : 'xxx'} + + + + {props.metric ? props.metric : 'xxx'} + + + {props.bestScore ? props.bestScore : 'xxx'} + + {deadlineRender()} + + {props.baseline ? props.baseline : 'xxx'} + + {props.prize ? ( + + {props.prize} + + ) : ( + '' + )} + +
+
+ ); +}; + +export default MiniChallenge; diff --git a/src/pages/Challanges/functions/renderChallenges.js b/src/pages/Challanges/functions/renderChallenges.js index bf2f530..5f83f06 100644 --- a/src/pages/Challanges/functions/renderChallenges.js +++ b/src/pages/Challanges/functions/renderChallenges.js @@ -1,5 +1,5 @@ import { ELEMENTS_PER_PAGE } from '../../../utils/globals'; -import MiniChallenge from '../../../components/challenges_list/MiniChallenge'; +import MiniChallenge from '../components/MiniChallenge'; import { Grid } from '../../../utils/containers'; import styled from 'styled-components'; diff --git a/src/components/specific_challenge/Challenge.js b/src/pages/Challenge/Challenge.js similarity index 90% rename from src/components/specific_challenge/Challenge.js rename to src/pages/Challenge/Challenge.js index f739a5d..5f58272 100644 --- a/src/components/specific_challenge/Challenge.js +++ b/src/pages/Challenge/Challenge.js @@ -3,20 +3,20 @@ import { Container, FlexColumn, FlexRow, Svg } from '../../utils/containers'; import { useParams } from 'react-router-dom'; import { H1, Medium } from '../../utils/fonts'; import theme from '../../utils/theme'; -import MobileChallengeMenu from './MobileChallengeMenu'; -import Leaderboard from './Leaderboard/Leaderboard'; -import Readme from './Readme'; -import HowTo from './HowTo/HowTo'; -import MyEntries from './MyEntries/MyEntries'; -import Submit from './Submit'; +import MobileChallengeMenu from './components/MobileChallengeMenu'; +import Leaderboard from '../Leaderboard/Leaderboard'; +import Readme from '../Readme'; +import HowTo from '../HowTo/HowTo'; +import MyEntries from '../MyEntries/MyEntries'; +import Submit from '../Submit'; import Media from 'react-media'; -import DesktopChallengeMenu from './DesktopChallengeMenu'; +import DesktopChallengeMenu from './components/DesktopChallengeMenu'; import { CHALLENGE_SECTIONS, RENDER_ICO } from '../../utils/globals'; import textIco from '../../assets/text_ico.svg'; import getChallengeInfo from '../../api/getChallengeInfo'; -import Loading from '../generic/Loading'; +import Loading from '../../components/generic/Loading'; import getUser from '../../api/getUser'; -import AllEntries from './AllEntries/AllEntries'; +import AllEntries from '../AllEntries/AllEntries'; const Challenge = (props) => { const challengeName = useParams().challengeId; diff --git a/src/components/specific_challenge/DesktopChallengeMenu.js b/src/pages/Challenge/components/DesktopChallengeMenu.js similarity index 90% rename from src/components/specific_challenge/DesktopChallengeMenu.js rename to src/pages/Challenge/components/DesktopChallengeMenu.js index 6d56525..05d43f6 100644 --- a/src/components/specific_challenge/DesktopChallengeMenu.js +++ b/src/pages/Challenge/components/DesktopChallengeMenu.js @@ -1,15 +1,15 @@ import React from 'react'; import styled from 'styled-components'; -import { FlexColumn } from '../../utils/containers'; -import { H3 } from '../../utils/fonts'; +import { FlexColumn } from '../../../utils/containers'; +import { H3 } from '../../../utils/fonts'; import PropsTypes from 'prop-types'; -import KeyCloakService from '../../services/KeyCloakService'; +import KeyCloakService from '../../../services/KeyCloakService'; import { Link } from 'react-router-dom'; import { MENU_CHALLENGE_SECTIONS_WITH_LOGIN, MENU_CHALLENGE_SECTIONS_NO_LOGIN, IS_MOBILE, -} from '../../utils/globals'; +} from '../../../utils/globals'; const DesktopChallengeMenuStyle = styled(FlexColumn)` justify-content: flex-start; diff --git a/src/components/specific_challenge/MobileChallengeMenu.js b/src/pages/Challenge/components/MobileChallengeMenu.js similarity index 94% rename from src/components/specific_challenge/MobileChallengeMenu.js rename to src/pages/Challenge/components/MobileChallengeMenu.js index c3325a3..4a315fa 100644 --- a/src/components/specific_challenge/MobileChallengeMenu.js +++ b/src/pages/Challenge/components/MobileChallengeMenu.js @@ -1,14 +1,14 @@ import React from 'react'; -import { FlexRow } from '../../utils/containers'; +import { FlexRow } from '../../../utils/containers'; import styled from 'styled-components'; -import { Medium } from '../../utils/fonts'; +import { Medium } from '../../../utils/fonts'; import PropsTypes from 'prop-types'; -import KeyCloakService from '../../services/KeyCloakService'; +import KeyCloakService from '../../../services/KeyCloakService'; import { CHALLENGE_SECTIONS, MENU_CHALLENGE_SECTIONS_WITH_LOGIN, MENU_CHALLENGE_SECTIONS_NO_LOGIN, -} from '../../utils/globals'; +} from '../../../utils/globals'; import { Link } from 'react-router-dom'; const MenuOption = styled(Medium)` diff --git a/src/pages/Challenge/index.js b/src/pages/Challenge/index.js new file mode 100644 index 0000000..eeccdd9 --- /dev/null +++ b/src/pages/Challenge/index.js @@ -0,0 +1 @@ +export { default } from './Challenge'; diff --git a/src/components/specific_challenge/HowTo/HowTo.js b/src/pages/HowTo/HowTo.js similarity index 77% rename from src/components/specific_challenge/HowTo/HowTo.js rename to src/pages/HowTo/HowTo.js index d60de4f..07b50ae 100644 --- a/src/components/specific_challenge/HowTo/HowTo.js +++ b/src/pages/HowTo/HowTo.js @@ -1,9 +1,9 @@ import React from 'react'; -import getFullUser from '../../../api/getFullUserInfo'; -import KeyCloakService from '../../../services/KeyCloakService'; -import { FlexColumn } from '../../../utils/containers'; -import { IS_MOBILE } from '../../../utils/globals'; -import HowToContent from './sections/HowToContent'; +import getFullUser from '../../api/getFullUserInfo'; +import KeyCloakService from '../../services/KeyCloakService'; +import { FlexColumn } from '../../utils/containers'; +import { IS_MOBILE } from '../../utils/globals'; +import HowToContent from './components/HowToContent'; const HowTo = (props) => { const [userFullInfo, setUserFullInfo] = React.useState(null); diff --git a/src/components/specific_challenge/HowTo/sections/HowToContent.js b/src/pages/HowTo/components/HowToContent.js similarity index 92% rename from src/components/specific_challenge/HowTo/sections/HowToContent.js rename to src/pages/HowTo/components/HowToContent.js index 8472f2e..2394acf 100644 --- a/src/components/specific_challenge/HowTo/sections/HowToContent.js +++ b/src/pages/HowTo/components/HowToContent.js @@ -1,9 +1,9 @@ import React from 'react'; -import { IS_MOBILE } from '../../../../utils/globals'; -import { Body, H2, Medium } from '../../../../utils/fonts'; -import { FlexColumn, Grid } from '../../../../utils/containers'; -import CircleNumber from '../../../generic/CircleNumber'; -import CodeShell from '../../../generic/CodeShell'; +import { IS_MOBILE } from '../../../utils/globals'; +import { Body, H2, Medium } from '../../../utils/fonts'; +import { FlexColumn, Grid } from '../../../utils/containers'; +import CircleNumber from '../../../components/generic/CircleNumber'; +import CodeShell from '../../../components/generic/CodeShell'; const HowToContent = (props) => { const pullCodeLineRender = () => { diff --git a/src/components/specific_challenge/HowTo/index.js b/src/pages/HowTo/index.js similarity index 100% rename from src/components/specific_challenge/HowTo/index.js rename to src/pages/HowTo/index.js diff --git a/src/components/specific_challenge/Leaderboard/Leaderboard.js b/src/pages/Leaderboard/Leaderboard.js similarity index 95% rename from src/components/specific_challenge/Leaderboard/Leaderboard.js rename to src/pages/Leaderboard/Leaderboard.js index 8ffb2c6..e02cdf2 100644 --- a/src/components/specific_challenge/Leaderboard/Leaderboard.js +++ b/src/pages/Leaderboard/Leaderboard.js @@ -1,20 +1,20 @@ import React from 'react'; import Media from 'react-media'; -import theme from '../../../utils/theme'; -import { FlexColumn } from '../../../utils/containers'; -import { H2 } from '../../../utils/fonts'; -import Table from '../Table'; +import theme from '../../utils/theme'; +import { FlexColumn } from '../../utils/containers'; +import { H2 } from '../../utils/fonts'; +import Table from '../../components/generic/Table'; import PropsTypes from 'prop-types'; -import getChallengeLeaderboard from '../../../api/getChallengeLeaderboard'; +import getChallengeLeaderboard from '../../api/getChallengeLeaderboard'; import leaderboardSearchQueryHandler from './leaderboardSearchQueryHandler'; import { CALC_PAGES, EVALUATIONS_FORMAT, RENDER_WHEN, -} from '../../../utils/globals'; -import Search from '../../generic/Search'; -import Pager from '../../generic/Pager'; -import Loading from '../../generic/Loading'; +} from '../../utils/globals'; +import Search from '../../components/generic/Search'; +import Pager from '../../components/generic/Pager'; +import Loading from '../../components/generic/Loading'; const Leaderboard = (props) => { const [entriesFromApi, setEntriesFromApi] = React.useState([]); diff --git a/src/components/specific_challenge/Leaderboard/index.js b/src/pages/Leaderboard/index.js similarity index 100% rename from src/components/specific_challenge/Leaderboard/index.js rename to src/pages/Leaderboard/index.js diff --git a/src/components/specific_challenge/Leaderboard/leaderboardSearchQueryHandler.js b/src/pages/Leaderboard/leaderboardSearchQueryHandler.js similarity index 100% rename from src/components/specific_challenge/Leaderboard/leaderboardSearchQueryHandler.js rename to src/pages/Leaderboard/leaderboardSearchQueryHandler.js diff --git a/src/components/specific_challenge/Leaderboard/sortOptions.js b/src/pages/Leaderboard/sortOptions.js similarity index 100% rename from src/components/specific_challenge/Leaderboard/sortOptions.js rename to src/pages/Leaderboard/sortOptions.js diff --git a/src/components/specific_challenge/MyEntries/MyEntries.js b/src/pages/MyEntries/MyEntries.js similarity index 93% rename from src/components/specific_challenge/MyEntries/MyEntries.js rename to src/pages/MyEntries/MyEntries.js index 0411c63..a83e867 100644 --- a/src/components/specific_challenge/MyEntries/MyEntries.js +++ b/src/pages/MyEntries/MyEntries.js @@ -1,20 +1,20 @@ import React from 'react'; -import { FlexColumn } from '../../../utils/containers'; -import { H2 } from '../../../utils/fonts'; -import getMyEntries from '../../../api/getMyEntries'; -import Pager from '../../generic/Pager'; +import { FlexColumn } from '../../utils/containers'; +import { H2 } from '../../utils/fonts'; +import getMyEntries from '../../api/getMyEntries'; +import Pager from '../../components/generic/Pager'; import { CALC_PAGES, EVALUATIONS_FORMAT, IS_MOBILE, RENDER_WHEN, -} from '../../../utils/globals'; +} from '../../utils/globals'; import Media from 'react-media'; -import theme from '../../../utils/theme'; -import Loading from '../../generic/Loading'; -import Table from '../Table'; +import theme from '../../utils/theme'; +import Loading from '../../components/generic/Loading'; +import Table from '../../components/generic/Table'; import myEntriesSearchQueryHandler from './myEntriesSearchQueryHandler'; -import Search from '../../generic/Search'; +import Search from '../../components/generic/Search'; const MyEntries = (props) => { const [myEntriesFromAPI, setMyEntriesFromAPI] = React.useState({}); diff --git a/src/components/specific_challenge/MyEntries/index.js b/src/pages/MyEntries/index.js similarity index 100% rename from src/components/specific_challenge/MyEntries/index.js rename to src/pages/MyEntries/index.js diff --git a/src/components/specific_challenge/MyEntries/myEntriesSearchQueryHandler.js b/src/pages/MyEntries/myEntriesSearchQueryHandler.js similarity index 100% rename from src/components/specific_challenge/MyEntries/myEntriesSearchQueryHandler.js rename to src/pages/MyEntries/myEntriesSearchQueryHandler.js diff --git a/src/components/specific_challenge/Readme.js b/src/pages/Readme.js similarity index 86% rename from src/components/specific_challenge/Readme.js rename to src/pages/Readme.js index cac39d9..463d625 100644 --- a/src/components/specific_challenge/Readme.js +++ b/src/pages/Readme.js @@ -1,14 +1,12 @@ import React from 'react'; -import { FlexColumn } from '../../utils/containers'; -import { Body, H2 } from '../../utils/fonts'; +import { FlexColumn } from '../utils/containers'; +import { Body, H2 } from '../utils/fonts'; import Media from 'react-media'; -import theme from '../../utils/theme'; -import getChallengeFullDescription from '../../api/getChallengeFullDescription'; +import theme from '../utils/theme'; +import getChallengeFullDescription from '../api/getChallengeFullDescription'; import styled from 'styled-components'; -import InfoList from '../generic/InfoList'; -import Loading from '../generic/Loading'; -import PropsTypes from 'prop-types'; -import MiniChallenge from '../challenges_list/MiniChallenge'; +import InfoList from '../components/generic/InfoList'; +import Loading from '../components/generic/Loading'; import { marked } from 'marked'; const ReadmeStyle = styled(Body)` @@ -154,14 +152,4 @@ const Readme = (props) => { ); }; -MiniChallenge.propTypes = { - challengeName: PropsTypes.string, - description: PropsTypes.string, -}; - -MiniChallenge.defaultProps = { - challengeName: '', - description: '', -}; - export default Readme; diff --git a/src/components/specific_challenge/Submit.js b/src/pages/Submit.js similarity index 81% rename from src/components/specific_challenge/Submit.js rename to src/pages/Submit.js index 48c7a71..5592868 100644 --- a/src/components/specific_challenge/Submit.js +++ b/src/pages/Submit.js @@ -1,14 +1,14 @@ import React from 'react'; import { createPortal } from 'react-dom'; -import { FlexColumn } from '../../utils/containers'; -import { H2, Menu } from '../../utils/fonts'; -import SubmitInput from '../generic/SubmitInput'; -import Button from '../generic/Button'; -import theme from '../../utils/theme'; -import challengeSubmission from '../../api/challengeSubmissionPost'; -import Loading from '../generic/Loading'; -import getTags from '../../api/getTags'; -import DropdownWithPopup from '../generic/DropdownWithPopup'; +import { FlexColumn } from '../utils/containers'; +import { H2, Menu } from '../utils/fonts'; +import SubmitInput from '../components/generic/SubmitInput'; +import Button from '../components/generic/Button'; +import theme from '../utils/theme'; +import challengeSubmission from '../api/challengeSubmissionPost'; +import Loading from '../components/generic/Loading'; +import getTags from '../api/getTags'; +import DropdownWithPopup from '../components/generic/DropdownWithPopup'; const Submit = (props) => { const [description, setDescription] = React.useState('');