From 6705cd992b6e8da937e16e4c2a122b36c3588e74 Mon Sep 17 00:00:00 2001 From: SharanyaR1 Date: Sun, 15 Jun 2025 08:34:22 +0530 Subject: [PATCH] timer-implementation --- src/modules/Challenge.ts | 6 + src/modules/Hackerrank.ts | 1 + src/modules/interface/Challenge.ts | 1 + src/templates/challenge.ejs | 11 + src/templates/timer.ejs | 511 +++++++++++++++++++++++++++++ 5 files changed, 530 insertions(+) create mode 100644 src/templates/timer.ejs diff --git a/src/modules/Challenge.ts b/src/modules/Challenge.ts index 22bff14..5731723 100644 --- a/src/modules/Challenge.ts +++ b/src/modules/Challenge.ts @@ -71,6 +71,9 @@ export default class Challenge { data: challengeData, }; + const timerHtml = await ejs.renderFile(`${process.env.ROOT_DIR}/templates/timer.ejs`); + challengeData.timerUI = timerHtml; + const challengeTemplatePath = `${process.env.ROOT_DIR}/templates/challenge.ejs`; const challengeHtml = await ejs.renderFile( challengeTemplatePath, @@ -105,6 +108,9 @@ export default class Challenge { case "submit": await Challenge.executeCode(this.challenges[challengeSlug], "submit"); break; + case "time_up": + vscode.window.showErrorMessage("🕓 Time's up!"); + break; } } diff --git a/src/modules/Hackerrank.ts b/src/modules/Hackerrank.ts index 5a4100b..3148364 100644 --- a/src/modules/Hackerrank.ts +++ b/src/modules/Hackerrank.ts @@ -149,6 +149,7 @@ export default class Hackerrank { authorName: responseData.model.author_name, authorAvatar: responseData.model.author_avatar, languagesBoilerplate: {}, + timerUI: "" }; for (let lang of responseData.model.languages) { diff --git a/src/modules/interface/Challenge.ts b/src/modules/interface/Challenge.ts index 8a1ffa6..7a7c854 100644 --- a/src/modules/interface/Challenge.ts +++ b/src/modules/interface/Challenge.ts @@ -15,4 +15,5 @@ export default interface IChallenge { authorName: string; authorAvatar: string; languagesBoilerplate: Record; + timerUI: string; } diff --git a/src/templates/challenge.ejs b/src/templates/challenge.ejs index e1a2b97..ef2d86b 100644 --- a/src/templates/challenge.ejs +++ b/src/templates/challenge.ejs @@ -59,6 +59,7 @@ clear: both; } .solve { + float: left; background-color: #00ea64; } .run { @@ -69,6 +70,7 @@ .submit { float: right; background-color: #00ea64; + margin-right: 10px; } @@ -80,7 +82,16 @@ Submit + + +
+ ❚❚ + 00:00:00 + + +
+ <%- timerUI %> <%- questionHtml %> \ No newline at end of file