diff --git a/apps/jurumarble/src/app/drink-info/[id]/components/DrinkInfoContainer.tsx b/apps/jurumarble/src/app/drink-info/[id]/components/DrinkInfoContainer.tsx
index df3fd1a5..273d8867 100644
--- a/apps/jurumarble/src/app/drink-info/[id]/components/DrinkInfoContainer.tsx
+++ b/apps/jurumarble/src/app/drink-info/[id]/components/DrinkInfoContainer.tsx
@@ -1,6 +1,7 @@
import { useQuery } from "@tanstack/react-query";
import { Button } from "components/button";
import Chip from "components/Chip";
+import Loading from "components/Loading";
import VoteHeader from "components/VoteHeader";
import Image from "next/image";
import { useParams, useRouter } from "next/navigation";
@@ -22,9 +23,9 @@ const DrinkInfoContainer = () => {
const { colors } = useTheme();
const stampColor = isStampedDrink?.enjoyed ? colors.main_01 : colors.black_05;
- if (isLoading) return
loading...
;
- if (isError) return error...
;
- if (!data) return no data...
;
+ if (isLoading) return ;
+ if (isError) return <>>;
+ if (!data) return <>>;
const {
name,
diff --git a/apps/jurumarble/src/app/page.tsx b/apps/jurumarble/src/app/page.tsx
index 82f0fcf2..712c42c6 100644
--- a/apps/jurumarble/src/app/page.tsx
+++ b/apps/jurumarble/src/app/page.tsx
@@ -20,7 +20,9 @@ function MainPage() {
type="text/javascript"
src={`//dapi.kakao.com/v2/maps/sdk.js?appkey=${KAKAO_MAP_API_KEY}&libraries=services&autoload=false`}
>
+
+
diff --git a/apps/jurumarble/src/app/vote/[id]/page.tsx b/apps/jurumarble/src/app/vote/[id]/page.tsx
index 07cc3da2..8eefc86f 100644
--- a/apps/jurumarble/src/app/vote/[id]/page.tsx
+++ b/apps/jurumarble/src/app/vote/[id]/page.tsx
@@ -17,6 +17,7 @@ import useFilteredStatisticsService from "./services/useFilterStatisticsService"
import VoteAnalyzeBar from "./components/VoteAnalyzeBar";
import { useState } from "react";
import useBookmarkService from "services/useBookmarkService";
+import Loading from "components/Loading";
function Detail() {
const params = useParams();
@@ -50,7 +51,7 @@ function Detail() {
isError: isStatisticsError,
} = voteStatisticsQuery;
- if (isLoading || isStatisticsLoading) return 로딩중
;
+ if (isLoading || isStatisticsLoading) return ;
if (isError || isStatisticsError) return 에러
;
if (!data || !statistics) return ;
const {
diff --git a/apps/jurumarble/src/app/vote/page.tsx b/apps/jurumarble/src/app/vote/page.tsx
index e8ea5193..77fd5190 100644
--- a/apps/jurumarble/src/app/vote/page.tsx
+++ b/apps/jurumarble/src/app/vote/page.tsx
@@ -15,6 +15,7 @@ import useExecuteVoteService from "./[id]/services/useExecuteVoteService";
import useInfiniteMainListService from "./services/useGetVoteListService";
import { toast } from "react-toastify";
import useBookmarkService from "services/useBookmarkService";
+import Loading from "components/Loading";
export type Drag = "up" | "down" | null;
@@ -58,7 +59,7 @@ function VoteHomePage() {
mutate(select);
};
- if (isLoading) return 로딩중;
+ if (isLoading) return ;
if (isError) return 에러;
return (
diff --git a/apps/jurumarble/src/components/Loading.tsx b/apps/jurumarble/src/components/Loading.tsx
new file mode 100644
index 00000000..3ac81af8
--- /dev/null
+++ b/apps/jurumarble/src/components/Loading.tsx
@@ -0,0 +1,106 @@
+"use client";
+
+import React from "react";
+import styled from "styled-components";
+
+const Loading = () => {
+ return (
+
+
+
+ );
+};
+
+const Box = styled.div`
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: #4a3c3c53;
+ z-index: 999;
+ transition: all 0.2s ease;
+
+ .loader4 {
+ position: relative;
+ width: 150px;
+ height: 20px;
+ top: 45%;
+ top: -webkit-calc(50% - 10px);
+ top: calc(50% - 10px);
+ left: 25%;
+ left: -webkit-calc(50% - 75px);
+ left: calc(50% - 75px);
+
+ background-color: #fff;
+ }
+
+ .loader4:before {
+ content: "";
+ position: absolute;
+ background-color: ${({ theme }) => theme.colors.main_01};
+ top: 0px;
+ left: 0px;
+ height: 20px;
+ width: 0px;
+ z-index: 0;
+ opacity: 1;
+ -webkit-transform-origin: 100% 0%;
+ transform-origin: 100% 0%;
+ -webkit-animation: loader4 10s ease-in-out infinite;
+ animation: loader4 2s ease-in-out infinite;
+ }
+
+ .loader4:after {
+ content: "LOADING ...";
+ color: ${({ theme }) => theme.colors.main_01};
+ font-weight: 200;
+ font-size: 16px;
+ position: absolute;
+ width: 100%;
+ height: 20px;
+ line-height: 20px;
+ left: 0;
+ display: flex;
+ justify-content: center;
+ top: 0;
+ }
+
+ @-webkit-keyframes loader4 {
+ 0% {
+ width: 0px;
+ }
+ 70% {
+ width: 100%;
+ opacity: 1;
+ }
+ 90% {
+ opacity: 0;
+ width: 100%;
+ }
+ 100% {
+ opacity: 0;
+ width: 0px;
+ }
+ }
+
+ @keyframes loader4 {
+ 0% {
+ width: 0px;
+ }
+ 70% {
+ width: 100%;
+ opacity: 1;
+ }
+ 90% {
+ opacity: 0;
+ width: 100%;
+ }
+ 100% {
+ opacity: 0;
+ width: 0px;
+ }
+ }
+`;
+
+export default Loading;