diff --git a/frontend/src/components/CompletedQuests.jsx b/frontend/src/components/CompletedQuests.jsx index 73c16fe5ef..f5d40a3145 100644 --- a/frontend/src/components/CompletedQuests.jsx +++ b/frontend/src/components/CompletedQuests.jsx @@ -37,6 +37,7 @@ export const CompletedQuests = () => { id={quest._id} message={quest.message} done={quest.done} + timeNeeded={quest.timeNeeded} handleChecked={completeQuest} onDelete={deleteQuest} /> diff --git a/frontend/src/components/cards/FriendQuestCard.jsx b/frontend/src/components/cards/FriendQuestCard.jsx index d78dbf7435..53f7424575 100644 --- a/frontend/src/components/cards/FriendQuestCard.jsx +++ b/frontend/src/components/cards/FriendQuestCard.jsx @@ -139,6 +139,16 @@ const Time = styled.div` font-weight: 400; `; +const TimeP = styled.p` + font-family: Roboto; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: normal; + color: var(--medium-purple); + margin: 0; +`; + const Done = styled.div` font-size: 10px; font-weight: 400; diff --git a/frontend/src/pages/QuestPage.jsx b/frontend/src/pages/QuestPage.jsx index 32fc98a16c..c5c9f8f9e1 100644 --- a/frontend/src/pages/QuestPage.jsx +++ b/frontend/src/pages/QuestPage.jsx @@ -3,6 +3,7 @@ import { useQuestStore } from '../stores/useQuestStore' import { useUserStore } from '../stores/useUserStore' import { useReducer } from 'react' import { Link, useNavigate } from 'react-router-dom' +import { Checkbox } from '../components/Checkbox' // Defines initial state in one object instead of three separate useState calls const initialState = { @@ -67,8 +68,16 @@ const handleComplete = async (id, checked) => { return } + // Filter out already completed quests first + const notDone = freshQuests.filter(quest => !quest.done) + + if (notDone.length === 0) { + dispatch({ type: 'noMatch', message: 'You have no quests left to do!' }) + return + } + // Filter quests. Show only quests under chosen time frame - const filtered = freshQuests.filter(quest => quest.timeNeeded <= Number(state.timeAvailable)) + const filtered = notDone.filter(quest => quest.timeNeeded <= Number(state.timeAvailable)) if (filtered.length === 0) { dispatch({ type: 'noMatch', message: `No quests under ${state.timeAvailable} minutes` }) @@ -106,14 +115,22 @@ const handleComplete = async (id, checked) => { {state.randomQuest &&
{state.randomQuest.message}
-Will take about {state.randomQuest.timeNeeded} min
- handleComplete(state.randomQuest._id, event.target.checked)} - /> - Give up +{state.randomQuest.message}
+