diff --git a/client/src/index.tsx b/client/src/index.tsx
index aa2dbbf..e81ff5f 100644
--- a/client/src/index.tsx
+++ b/client/src/index.tsx
@@ -6,6 +6,7 @@ import reportWebVitals from "./reportWebVitals";
import { Provider } from "react-redux";
import store from "./modules";
import Header from "./components/layout/Header";
+import Footer from "./components/layout/Footer";
import { BrowserRouter } from "react-router-dom";
import { QueryClient, QueryClientProvider } from "react-query";
import { RecoilRoot } from "recoil";
@@ -29,6 +30,7 @@ root.render(
+
diff --git a/client/src/main/MainPage.tsx b/client/src/main/MainPage.tsx
index ee9c254..f62da77 100644
--- a/client/src/main/MainPage.tsx
+++ b/client/src/main/MainPage.tsx
@@ -4,7 +4,7 @@ import FullLayout from "../components/layout/FullLayout";
import { ConnectedProps, connect } from "react-redux";
import { RootState } from "../modules";
import { useRecoilState } from "recoil";
-import { modalState } from "../recoil/recoil";
+import { modalState, soundEffectStatus } from "../recoil/recoil";
import Modal from "../components/modal/Modal";
import axios from "axios";
import { useNavigate } from "react-router-dom";
@@ -26,6 +26,7 @@ function MainPage({ dark }: ComponentProps) {
const [theme, setTheme] = useState(localStorage.theme);
const [enterCode, setEnterCode] = useState
();
const [, setIsOpen] = useRecoilState(modalState);
+ const [soundEffectStatusValue, ] = useRecoilState(soundEffectStatus);
const [isClicked, setIsClicked] = useState(false)
const openModal = () => {
handlePlaySound();
@@ -67,13 +68,17 @@ function MainPage({ dark }: ComponentProps) {
};
const handlePlaySound = () => {
-
+ console.log(soundEffectStatusValue)
+
const playSound = () => {
const audio = new Audio('audio/button_click.mp3'); // 새로운 audio 요소 생성
audio.play(); // 소리를 재생합니다.
};
- playSound();
+ if (soundEffectStatusValue){
+ playSound();
+ }
+
}
//랜덤입장 버튼 클릭
@@ -121,8 +126,11 @@ function MainPage({ dark }: ComponentProps) {
const audio = new Audio('audio/lightmode_wag.mp3'); // 새로운 audio 요소 생성
audio.play(); // 소리를 재생합니다.
};
-
- playSound();
+
+ if (soundEffectStatusValue){
+ playSound();
+ }
+
}
const handleDarkLogoClick = () => {
@@ -131,8 +139,10 @@ function MainPage({ dark }: ComponentProps) {
const audio = new Audio('audio/darkmode_wag.mp3'); // 새로운 audio 요소 생성
audio.play(); // 소리를 재생합니다.
};
-
- playSound();
+ if (soundEffectStatusValue){
+ playSound();
+ }
+
}
useEffect(() => {
@@ -157,25 +167,17 @@ function MainPage({ dark }: ComponentProps) {
{theme === "light" ? (
-
![logo light mode](images/WAG_white.2.png)
{
- handleLightLogoClick();
- setIsClicked(true); // 클릭될 때마다 isClicked 상태를 true로 설정하여 애니메이션을 발생시킵니다.
- setTimeout(() => setIsClicked(false), 200);
- }}>
+ >
) : (
-
![logo light mode](images/WAG_dark.2.png)
{
- handleDarkLogoClick();
- setIsClicked(true); // 클릭될 때마다 isClicked 상태를 true로 설정하여 애니메이션을 발생시킵니다.
- setTimeout(() => setIsClicked(false), 200);
- }}>
+ >
diff --git a/client/src/recoil/recoil.ts b/client/src/recoil/recoil.ts
index 0e3230c..386ba7d 100644
--- a/client/src/recoil/recoil.ts
+++ b/client/src/recoil/recoil.ts
@@ -38,4 +38,9 @@ export const timerCount = atom
({
export let ingameTimerCount = atom({
key: 'ingameTimerCount',
default: 20
+})
+
+export const soundEffectStatus = atom({
+ key: 'soundEffectStatus',
+ default: true
})
\ No newline at end of file
diff --git a/server/src/main/java/com/example/server/domain/MiniGameRanking.java b/server/src/main/java/com/example/server/domain/MiniGameRanking.java
index bafa143..7672fd9 100644
--- a/server/src/main/java/com/example/server/domain/MiniGameRanking.java
+++ b/server/src/main/java/com/example/server/domain/MiniGameRanking.java
@@ -15,4 +15,5 @@ public class MiniGameRanking {
private Long id;
private String nickname;
private Integer stage;
+ private Long score;
}
diff --git a/server/src/main/java/com/example/server/dto/MiniGameRankingDto.java b/server/src/main/java/com/example/server/dto/MiniGameRankingDto.java
index 0f5518b..08a3560 100644
--- a/server/src/main/java/com/example/server/dto/MiniGameRankingDto.java
+++ b/server/src/main/java/com/example/server/dto/MiniGameRankingDto.java
@@ -8,4 +8,5 @@ public class MiniGameRankingDto {
Integer rank;
String nickname;
Integer stage;
+ Long score;
}
diff --git a/server/src/main/java/com/example/server/payload/request/MiniGameRankingRequest.java b/server/src/main/java/com/example/server/payload/request/MiniGameRankingRequest.java
index 8079cb8..49134d7 100644
--- a/server/src/main/java/com/example/server/payload/request/MiniGameRankingRequest.java
+++ b/server/src/main/java/com/example/server/payload/request/MiniGameRankingRequest.java
@@ -1,9 +1,11 @@
package com.example.server.payload.request;
import lombok.Getter;
+import lombok.Setter;
-@Getter
+@Getter @Setter
public class MiniGameRankingRequest {
String nickname;
Integer stage;
+ Long score;
}
diff --git a/server/src/main/java/com/example/server/service/MiniGameService.java b/server/src/main/java/com/example/server/service/MiniGameService.java
index d11b375..d5116fa 100644
--- a/server/src/main/java/com/example/server/service/MiniGameService.java
+++ b/server/src/main/java/com/example/server/service/MiniGameService.java
@@ -25,11 +25,15 @@ public class MiniGameService {
private final MiniGameRepository miniGameRepository;
public String postRanking(MiniGameRankingRequest miniGameRankingRequest){
+ if(miniGameRankingRequest.getNickname().equals("") || miniGameRankingRequest.getNickname()==null)
+ miniGameRankingRequest.setNickname("---");
+
Optional miniGameRankingOptional = miniGameRepository.findByNickname(miniGameRankingRequest.getNickname());
if(miniGameRankingOptional.isPresent()){
MiniGameRanking miniGameRanking = miniGameRankingOptional.get();
- if(miniGameRanking.getStage() < miniGameRankingRequest.getStage()){
+ if(miniGameRanking.getScore() < miniGameRankingRequest.getScore()){
miniGameRanking.setStage(miniGameRankingRequest.getStage());
+ miniGameRanking.setScore(miniGameRanking.getScore());
miniGameRepository.save(miniGameRanking);
}
}
@@ -44,17 +48,18 @@ public String postRanking(MiniGameRankingRequest miniGameRankingRequest){
}
public MiniGameRankingResponse getRanking(int pageNumber, int pageSize){
- Sort sort = Sort.by(Sort.Order.desc("stage"));
+ Sort sort = Sort.by(Sort.Order.desc("score"));
Pageable pageable = PageRequest.of(pageNumber, pageSize, sort);
Page miniGameRankingPage = miniGameRepository.findAll(pageable);
List miniGameRankings = miniGameRankingPage.getContent();
List miniGameRankingDtos = new ArrayList<>();
- int idx = 1;
+ int idx = pageNumber * pageSize;
for(MiniGameRanking miniGameRanking : miniGameRankings){
MiniGameRankingDto miniGameRankingDto = MiniGameRankingDto.builder()
- .rank(idx++)
+ .rank((idx++) + 1)
.nickname(miniGameRanking.getNickname())
.stage(miniGameRanking.getStage())
+ .score(miniGameRanking.getScore())
.build();
miniGameRankingDtos.add(miniGameRankingDto);
}