로딩 중...
;
+ if (profile === null) return
diff --git a/src/components/user/profile/ProfileEditForm.tsx b/src/components/user/profile/ProfileEditForm.tsx
index 0587266..06960f9 100644
--- a/src/components/user/profile/ProfileEditForm.tsx
+++ b/src/components/user/profile/ProfileEditForm.tsx
@@ -5,6 +5,8 @@ import axios from 'axios';
import React, { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
+import LottieLoader from '@/components/common/constants/lottieLoader';
+
type ProfileInfo = {
userId: number;
nickname: 'string';
@@ -128,7 +130,7 @@ const ProfileEditForm = () => {
};
if (profile === null) {
- return
로딩 중...
;
+ return
;
}
return (
diff --git a/src/components/user/profile/UpcomingReservations.tsx b/src/components/user/profile/UpcomingReservations.tsx
index e55b552..5af89bf 100644
--- a/src/components/user/profile/UpcomingReservations.tsx
+++ b/src/components/user/profile/UpcomingReservations.tsx
@@ -1,6 +1,7 @@
-import axios from 'axios';
import { useEffect, useState } from 'react';
+import axiosInstance from '@/axiosInstance';
+
type Reservation = {
reservationId: number;
place: string;
@@ -30,9 +31,8 @@ const UpcomingReservations = ({
}
try {
- const response = await axios.get<{ content: Reservation[] }>(
+ const response = await axiosInstance.get<{ content: Reservation[] }>(
`/api/v1/reservations/user/${userId}`,
- { headers: { Authorization: `Bearer ${token}` } },
);
const now = new Date();
diff --git a/src/components/user/profile/UserReviews.tsx b/src/components/user/profile/UserReviews.tsx
index 0422c65..d52b7f1 100644
--- a/src/components/user/profile/UserReviews.tsx
+++ b/src/components/user/profile/UserReviews.tsx
@@ -1,7 +1,8 @@
-import axios from 'axios';
import { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
+import axiosInstance from '@/axiosInstance';
+
type Review = {
content: string;
rating: number;
@@ -30,16 +31,14 @@ const UserReviews = ({ userId }: UserReviewsProps) => {
}
try {
- const profileResponse = await axios.get<{ userId: number }>(
+ const profileResponse = await axiosInstance.get<{ userId: number }>(
'/api/v1/profile',
- { headers: { Authorization: `Bearer ${token}` } },
);
setIsCurrentUser(profileResponse.data.userId === userId);
- const response = await axios.get<{ content: Review[] }>(
+ const response = await axiosInstance.get<{ content: Review[] }>(
`/api/v1/reviews/user/${userId}`,
- { headers: { Authorization: `Bearer ${token}` } },
);
setReviews(response.data.content);
} catch {
diff --git a/src/routes/MyHosting.tsx b/src/routes/MyHosting.tsx
new file mode 100644
index 0000000..c13a12a
--- /dev/null
+++ b/src/routes/MyHosting.tsx
@@ -0,0 +1,16 @@
+import Footer from '@/components/home/Footer';
+import Header from '@/components/home/Topbar/Header';
+import MyHostingItems from '@/components/user/MyHostingItems';
+
+const MyHosting = () => {
+ return (
+ <>
+
+
+
+
+ >
+ );
+};
+
+export default MyHosting;
diff --git a/src/routes/ReservationDetails.tsx b/src/routes/ReservationDetails.tsx
index bc0615b..c454042 100644
--- a/src/routes/ReservationDetails.tsx
+++ b/src/routes/ReservationDetails.tsx
@@ -1,9 +1,10 @@
import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined';
import OtherHousesOutlinedIcon from '@mui/icons-material/OtherHousesOutlined';
-import axios from 'axios';
import { useEffect, useState } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
+import axiosInstance from '@/axiosInstance';
+import LottieLoader from '@/components/common/constants/lottieLoader';
import Footer from '@/components/home/Footer';
import Header from '@/components/home/Topbar/Header';
import CancelModal from '@/components/user/CancelReservationModal';
@@ -48,13 +49,8 @@ const ReservationDetails = () => {
}
try {
- const response = await axios.get
(
+ const response = await axiosInstance.get(
`/api/v1/reservations/${reservationId}`,
- {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- },
);
setReservation(response.data);
} catch (err) {
@@ -83,11 +79,7 @@ const ReservationDetails = () => {
}
try {
- await axios.delete(`/api/v1/reservations/${reservationId}`, {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- });
+ await axiosInstance.delete(`/api/v1/reservations/${reservationId}`);
alert('예약이 성공적으로 취소되었습니다.');
void navigate('/MyReservations');
} catch (err) {
@@ -108,7 +100,7 @@ const ReservationDetails = () => {
{loading ? (
-
로딩 중...
+
) : reservation !== null ? (
) : (
diff --git a/src/routes/Review.tsx b/src/routes/Review.tsx
index 0d6b558..0866283 100644
--- a/src/routes/Review.tsx
+++ b/src/routes/Review.tsx
@@ -1,7 +1,8 @@
-import axios from 'axios';
import { useEffect, useState } from 'react';
import { useParams } from 'react-router-dom';
+import axiosInstance from '@/axiosInstance';
+import LottieLoader from '@/components/common/constants/lottieLoader';
import Footer from '@/components/home/Footer';
import Header from '@/components/home/Topbar/Header';
import MyReservationDetails from '@/components/user/MyReservationDetails';
@@ -42,13 +43,8 @@ const Review = () => {
}
try {
- const response = await axios.get
(
+ const response = await axiosInstance.get(
`/api/v1/reservations/${reservationId}`,
- {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- },
);
setReservation(response.data);
} catch (err) {
@@ -72,7 +68,7 @@ const Review = () => {
{loading ? (
-
로딩 중...
+
) : reservation !== null ? (
) : (
diff --git a/src/routes/UpdateHosting.tsx b/src/routes/UpdateHosting.tsx
new file mode 100644
index 0000000..afa9d87
--- /dev/null
+++ b/src/routes/UpdateHosting.tsx
@@ -0,0 +1,16 @@
+import Footer from '@/components/home/Footer';
+import Header from '@/components/home/Topbar/Header';
+import EditHostingForm from '@/components/user/EditHosting';
+
+const EditHosting = () => {
+ return (
+ <>
+
+
+
+
+ >
+ );
+};
+
+export default EditHosting;
diff --git a/yarn.lock b/yarn.lock
index b47e599..1087718 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -729,6 +729,24 @@ __metadata:
languageName: node
linkType: hard
+"@lottiefiles/dotlottie-react@npm:0.12.3":
+ version: 0.12.3
+ resolution: "@lottiefiles/dotlottie-react@npm:0.12.3"
+ dependencies:
+ "@lottiefiles/dotlottie-web": "npm:0.40.1"
+ peerDependencies:
+ react: ^17 || ^18 || ^19
+ checksum: 10c0/2b92c1af4c0c1dcc1bbab5ad11904a5ec6e2d13c3b2b67c83f3b97669a565086ef06c5dd496365790b425d57898613b0d5b8daff57c09e864e2ccb414fc7f0f8
+ languageName: node
+ linkType: hard
+
+"@lottiefiles/dotlottie-web@npm:0.40.1":
+ version: 0.40.1
+ resolution: "@lottiefiles/dotlottie-web@npm:0.40.1"
+ checksum: 10c0/1815bf92befaf887229a34b64f67acef4a3433aff951695d9e0d449f3dc098042d2e9c37275a6281768bab9a5a1dd91ff70646fe60f8d5abe8d4b525a380277d
+ languageName: node
+ linkType: hard
+
"@mui/core-downloads-tracker@npm:^6.4.0":
version: 6.4.0
resolution: "@mui/core-downloads-tracker@npm:6.4.0"
@@ -4576,6 +4594,7 @@ __metadata:
dependencies:
"@emotion/react": "npm:11.14.0"
"@emotion/styled": "npm:11.14.0"
+ "@lottiefiles/dotlottie-react": "npm:0.12.3"
"@mui/icons-material": "npm:^6.3.1"
"@mui/material": "npm:^6.3.1"
"@types/node": "npm:22.7.5"