@@ -7,7 +7,11 @@ import Editor, { Monaco } from "@monaco-editor/react";
7
7
import { Flex , useColorMode } from "@chakra-ui/react" ;
8
8
import { useEffect , useState , useRef } from "react" ;
9
9
import MyBtn from "../MyBtn" ;
10
- import { tryFormattingCode , validateCode } from "@/lib/client-functions" ;
10
+ import {
11
+ isTheTourCompleted ,
12
+ tryFormattingCode ,
13
+ validateCode ,
14
+ } from "@/lib/client-functions" ;
11
15
import FiChevronRight from "@/app/styles/icons/HiChevronRightGreen" ;
12
16
import { useRouter } from "next/navigation" ;
13
17
import { useUserSolutionStore , useEditorStore } from "@/lib/stores" ;
@@ -109,6 +113,11 @@ const EditorControls = ({
109
113
outputResult : OutputResult ;
110
114
} ) => {
111
115
const router = useRouter ( ) ;
116
+ const [ isTheTourCompletedState , setIsTheTourCompletedState ] =
117
+ useState ( isTheTourCompleted ( ) ) ;
118
+ useEffect ( ( ) => {
119
+ setIsTheTourCompletedState ( isTheTourCompleted ( ) ) ;
120
+ } , [ isTheTourCompleted ( ) ] ) ;
112
121
113
122
return (
114
123
< div className = { styles . buttonsWrapper } >
@@ -128,27 +137,27 @@ const EditorControls = ({
128
137
Reset
129
138
</ MyBtn >
130
139
</ Flex >
131
- { nextStepPath ? (
140
+ { ! nextStepPath || isTheTourCompletedState ? (
132
141
< >
133
- < MyBtn
134
- onClick = { ( ) => router . push ( "/" + nextStepPath ) }
135
- variant = {
136
- outputResult . validityStatus === "valid" ? "default" : "success"
137
- }
138
- size = { outputResult . validityStatus === "valid" ? "sm" : "xs" }
139
- >
140
- Next < span style = { { marginLeft : "4px" } } > </ span >
141
- < FiChevronRight
142
- color = {
143
- outputResult . validityStatus === "valid"
144
- ? "white"
145
- : "hsl(var(--success))"
146
- }
147
- />
148
- </ MyBtn >
142
+ < CertificateButton />
149
143
</ >
150
144
) : (
151
- < CertificateButton />
145
+ < MyBtn
146
+ onClick = { ( ) => router . push ( "/" + nextStepPath ) }
147
+ variant = {
148
+ outputResult . validityStatus === "valid" ? "default" : "success"
149
+ }
150
+ size = { outputResult . validityStatus === "valid" ? "sm" : "xs" }
151
+ >
152
+ Next < span style = { { marginLeft : "4px" } } > </ span >
153
+ < FiChevronRight
154
+ color = {
155
+ outputResult . validityStatus === "valid"
156
+ ? "white"
157
+ : "hsl(var(--success))"
158
+ }
159
+ />
160
+ </ MyBtn >
152
161
) }
153
162
</ div >
154
163
) ;
0 commit comments