Skip to content

Commit 5d6969a

Browse files
committed
feat: implement addNextQuiz to automate next quiz
1 parent 4148782 commit 5d6969a

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

src/components/Quiz/utils.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { CompletedQuizzes, type Lang, QuizShareStats } from "@/lib/types"
1+
import type {
2+
CompletedQuizzes,
3+
Lang,
4+
QuizShareStats,
5+
QuizzesSection,
6+
} from "@/lib/types"
27

38
import { getLocaleForNumberFormat } from "@/lib/utils/translations"
49

@@ -87,3 +92,9 @@ export const getFormattedStats = (language, average) => {
8792
),
8893
}
8994
}
95+
96+
export const addNextQuiz = (quizzes: QuizzesSection[]) =>
97+
quizzes.map((quiz, idx) => ({
98+
...quiz,
99+
next: quizzes[idx + 1]?.id,
100+
}))

src/data/quizzes/index.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import type { QuizzesSection, RawQuizzes } from "@/lib/types"
22

3+
import { addNextQuiz } from "@/components/Quiz/utils"
4+
35
// Declare hash-map of quizzes based on slug key
46
const quizzes = {
57
"what-is-ethereum": {
@@ -52,68 +54,65 @@ const quizzes = {
5254
},
5355
} satisfies RawQuizzes
5456

55-
export const ethereumBasicsQuizzes: QuizzesSection[] = [
57+
const ethereumBasicsQuizzesRaw: QuizzesSection[] = [
5658
{
5759
id: "what-is-ethereum",
5860
level: "beginner",
59-
next: "what-is-ether",
6061
},
6162
{
6263
id: "what-is-ether",
6364
level: "beginner",
64-
next: "wallets",
6565
},
6666
{
6767
id: "wallets",
6868
level: "beginner",
69-
next: "web3",
7069
},
7170
{
7271
id: "web3",
7372
level: "beginner",
74-
next: "security",
7573
},
7674
{
7775
id: "security",
7876
level: "beginner",
7977
},
8078
]
79+
export const ethereumBasicsQuizzes: QuizzesSection[] = addNextQuiz(
80+
ethereumBasicsQuizzesRaw
81+
)
8182

82-
export const usingEthereumQuizzes: QuizzesSection[] = [
83+
const usingEthereumQuizzesRaw: QuizzesSection[] = [
8384
{
8485
id: "nfts",
8586
level: "beginner",
86-
next: "layer-2",
8787
},
8888
{
8989
id: "layer-2",
9090
level: "intermediate",
91-
next: "daos",
9291
},
9392
{
9493
id: "daos",
9594
level: "intermediate",
96-
next: "run-a-node",
9795
},
9896
{
9997
id: "run-a-node",
10098
level: "intermediate",
101-
next: "merge",
10299
},
103100
{
104101
id: "merge",
105102
level: "intermediate",
106-
next: "scaling",
107103
},
108104
{
109105
id: "scaling",
110106
level: "advanced",
111-
next: "solo-staking",
112107
},
113108
{
114109
id: "solo-staking",
115110
level: "advanced",
116111
},
117112
]
118113

114+
export const usingEthereumQuizzes: QuizzesSection[] = addNextQuiz(
115+
usingEthereumQuizzesRaw
116+
)
117+
119118
export default quizzes

0 commit comments

Comments
 (0)