Skip to content

Commit 7253eca

Browse files
authored
Merge pull request #1028 from dacadeorg/ft/show-submission-form-for-multiple-submissions
Ft/show submission form for multiple submissions
2 parents 39f29c0 + ad5f2f5 commit 7253eca

File tree

6 files changed

+34
-9
lines changed

6 files changed

+34
-9
lines changed

public/locales/bg/common.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@
119119
"communities.overview.challenge.team.setup.submit-title": "Изпратете вашия екип",
120120
"communities.overview.challenge.submission.description": "Поставете кода на вашия екип по-долу и той автоматично ще създаде връзки към всички профили.",
121121
"communities.challenge.submission.hint": "Подаването ще бъде активирано, когато всички членове на екипа приемат поканата и екипът бъде напълно сформиран.",
122+
"communities.challenge.submission.multiple-submissions": "Можете да участвате многократно в това предизвикателство.",
123+
"communities.challenge.submission.no-multiple-submissions": "Можете да изпратите само <strong>веднъж</strong> това предизвикателство",
122124
"communities.overview.challenge.deadline": "Краен срок",
123125
"communities.overview.challenge.submissions-closed": "Предложенията за това предизвикателство вече са затворени.",
124126
"communities.reward": "Награди",
@@ -130,7 +132,7 @@
130132
"communities.challenge.criteria.title": "Rating Rubric",
131133
"communities.challenge.criteria.subtitle": "Следните учебни материали ще ви дадат необходимата техническа експертиза, за да се справите успешно с предизвикателството.",
132134
"communities.challenge.criteria.points": "Points",
133-
"communities.challenge.passing.score.description": "За да спечелите {{coinPlaceholder}} <strong>{{amount}}</strong> <strong>{{token}}</strong>, трябва да получите поне <strong>{{minPoints}}</strong> от <strong>{{maxPoints}}</strong> точки в този предизвикателство.",
135+
"communities.challenge.passing.score.description": "За да {{coinPlaceholder}} <strong>{{amount}}</strong> <strong>{{token}}</strong>, трябва да получите поне <strong>{{minPoints}}</strong> от <strong>{{maxPoints}}</strong> точки в този предизвикателство.",
134136
"communities.challenge.hackathon.passing.score": "Трябва да получите <strong>90%</strong>, за да влезете в наградния фонд и да спечелите награди на стойност <strong>7 000 щатски долара.</strong>",
135137
"communities.challenge.submission": "заявка",
136138
"communities.challenge.submit": "Изпращане",

public/locales/en/common.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,8 @@
125125
"communities.overview.challenge.team.setup.submit-title": "Submit your team",
126126
"communities.overview.challenge.submission.description": "Paste the code of your team below and it will automatically link to all the profiles",
127127
"communities.challenge.submission.hint": "Submissions will be enabled when when all the team members accept the invitation and the team is fully formed.",
128+
"communities.challenge.submission.multiple-submissions": "You can submit multiple times to this challenge.",
129+
"communities.challenge.submission.no-multiple-submissions": "You can only submit <strong>once</strong> to this challenge",
128130
"communities.overview.challenge.deadline": "Deadline",
129131
"communities.overview.challenge.submissions-closed": "Submissions for this challenge are now closed.",
130132
"communities.challenge.hint": "Hint",

public/locales/es/common.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@
124124
"communities.overview.challenge.team.setup.submit-title": "Envía tu equipo",
125125
"communities.overview.challenge.submission.description": "Pega el código de tu equipo a continuación y se enlazará automáticamente a todos los perfiles.",
126126
"communities.challenge.submission.hint": "Las presentaciones estarán habilitadas cuando todos los miembros del equipo acepten la invitación y el equipo esté completamente formado.",
127+
"communities.challenge.submission.multiple-submissions": "Puedes enviar varias veces a este desafío.",
128+
"communities.challenge.submission.no-multiple-submissions": "Solo puedes enviar <strong>una</strong> a este desafío.",
127129
"communities.overview.challenge.deadline": "Fecha límite",
128130
"communities.overview.challenge.submissions-closed": "Las inscripciones para este desafío ya están cerradas.",
129131
"communities.challenge.hint": "Pista",

public/locales/hr/common.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@
172172
"communities.overview.challenge.team.setup.submit-title": "Pošaljite svoj tim",
173173
"communities.overview.challenge.submission.description": "Zalijepite kod svog tima u nastavku i automatski će se povezati sa svim profilima.",
174174
"communities.challenge.submission.hint": "Podnošenje će biti omogućeno kada svi članovi tima prihvate pozivnicu i tim bude potpuno formiran.",
175+
"communities.challenge.submission.multiple-submissions": "Možete se više puta prijaviti na ovaj izazov.",
176+
"communities.challenge.submission.no-multiple-submissions": "Na ovaj izazov možete se prijaviti samo <strong>jednom</strong>",
175177
"communities.overview.challenge.deadline": "Rok",
176178
"communities.overview.challenge.submissions-closed": "Prijave za ovaj izazov sada su zatvorene.",
177179
"communities.card.submissions": "{{count}} Podnesci",

src/pages/communities/[slug]/challenges/[challenge_id]/index.tsx

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ export default function ChallengePage() {
6969
});
7070
const title = useMemo(() => getMetadataTitle(t("communities.challenge.title"), challenge?.name || ""), [challenge?.name, t]);
7171

72+
const canSubmit = useMemo(() => {
73+
return !submission || (submission && challenge?.multipleSubmissions);
74+
}, [challenge?.multipleSubmissions, submission]);
75+
7276
const navigation = useNavigation();
7377
const { query, locale } = useRouter();
7478
const { challenge_id, slug } = query;
@@ -137,19 +141,31 @@ export default function ChallengePage() {
137141
<Loader />
138142
</div>
139143
) : (
140-
<>
141-
{submission ? (
142-
<div className="mt-8">
143-
<h4 className="my-8 text-.5xl font-medium">{t("communities.challenge.your-submission")}</h4>
144+
<div className="grid mt-8 space-y-8">
145+
<Hint>
146+
<p
147+
className="text-lg py-4"
148+
dangerouslySetInnerHTML={{
149+
__html: t(
150+
challenge?.multipleSubmissions ? "communities.challenge.submission.multiple-submissions" : "communities.challenge.submission.no-multiple-submissions"
151+
),
152+
}}
153+
></p>
154+
</Hint>
155+
{submission && (
156+
<>
157+
<h4 className="text-.5xl font-medium">{t("communities.challenge.your-submission")}</h4>
144158
<SubmissionCard submission={submission} />
145-
</div>
146-
) : (
159+
</>
160+
)}
161+
162+
{canSubmit && (
147163
<>
148164
{challenge.isTeamChallenge && <SetupTeamChallenge />}
149165
<SubmissionForm />
150166
</>
151167
)}
152-
</>
168+
</div>
153169
)}
154170
</div>
155171
) : (

src/types/course.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ export type Challenge = {
7777
bestSubmissions: Submission[];
7878
teamLimit?: number;
7979
isHackathon?: boolean;
80+
multipleSubmissions?: boolean;
8081
};
8182

8283
export type RatingCriteria = {
@@ -140,7 +141,7 @@ export type Reward = {
140141
amount: number;
141142
timestamp: number;
142143
distribution?: Distribution;
143-
};
144+
};
144145
export type Distribution = {
145146
first: string;
146147
second: string;

0 commit comments

Comments
 (0)