-
- {phoneNumber}
-
+
+
+
+
+ {realName || '상대방'}
+
+
+ 스터디 파트너
+
+
+
+
+
+
+
+ 전화번호
+
+
+ {phoneNumber}
+
+
-
+
개인정보 보호를 위해 통화 시 주의해 주세요.
-
+
diff --git a/src/features/study/interview/api/interview-types.ts b/src/features/study/interview/api/interview-types.ts
index 7556e251..b2b759eb 100644
--- a/src/features/study/interview/api/interview-types.ts
+++ b/src/features/study/interview/api/interview-types.ts
@@ -9,9 +9,11 @@ export interface DailyStudyDetail {
dailyStudyId: number;
interviewerId: number;
interviewerName: string;
+ interviewerRealName?: string;
interviewerImage: string;
intervieweeId: number;
intervieweeName: string;
+ intervieweeRealName?: string;
intervieweeImage: string;
partnerTel: string;
studySpaceId: number;
diff --git a/src/features/study/one-to-one/archive/model/use-archive-actions.ts b/src/features/study/one-to-one/archive/model/use-archive-actions.ts
index badc8382..d8d581b3 100644
--- a/src/features/study/one-to-one/archive/model/use-archive-actions.ts
+++ b/src/features/study/one-to-one/archive/model/use-archive-actions.ts
@@ -2,41 +2,47 @@ import { useCallback } from 'react';
import { useToggleArchiveBookmarkMutation } from '@/features/study/one-to-one/archive/model/use-bookmark-mutation';
import { useToggleArchiveLikeMutation } from '@/features/study/one-to-one/archive/model/use-like-mutation';
import { useRecordArchiveViewMutation } from '@/features/study/one-to-one/archive/model/use-view-mutation';
+import { useAuth } from '@/hooks/common/use-auth';
interface ArchiveViewTarget {
id: number;
link: string;
}
export const useArchiveActions = () => {
+ const { isAuthenticated } = useAuth();
const { mutate: toggleBookmark } = useToggleArchiveBookmarkMutation();
const { mutate: toggleLike } = useToggleArchiveLikeMutation();
const { mutate: recordView } = useRecordArchiveViewMutation();
const handleToggleBookmark = useCallback(
(id: number) => {
+ if (!isAuthenticated) return;
toggleBookmark(id);
},
- [toggleBookmark],
+ [isAuthenticated, toggleBookmark],
);
const handleToggleLike = useCallback(
(id: number) => {
+ if (!isAuthenticated) return;
toggleLike(id);
},
- [toggleLike],
+ [isAuthenticated, toggleLike],
);
const openAndRecordView = useCallback(
(target: ArchiveViewTarget) => {
window.open(target.link, '_blank');
+ if (!isAuthenticated) return;
recordView(target.id);
},
- [recordView],
+ [isAuthenticated, recordView],
);
return {
toggleBookmark: handleToggleBookmark,
toggleLike: handleToggleLike,
openAndRecordView,
+ isAuthenticated,
};
};
diff --git a/src/features/study/one-to-one/archive/ui/archive-filters.tsx b/src/features/study/one-to-one/archive/ui/archive-filters.tsx
index bd82ddb4..658e922e 100644
--- a/src/features/study/one-to-one/archive/ui/archive-filters.tsx
+++ b/src/features/study/one-to-one/archive/ui/archive-filters.tsx
@@ -14,6 +14,7 @@ interface ArchiveFiltersProps {
onSearchChange: (value: string) => void;
showBookmarkedOnly: boolean;
onToggleBookmarkedOnly: () => void;
+ isAuthenticated: boolean;
}
export default function ArchiveFilters({
@@ -25,6 +26,7 @@ export default function ArchiveFilters({
onSearchChange,
showBookmarkedOnly,
onToggleBookmarkedOnly,
+ isAuthenticated,
}: ArchiveFiltersProps) {
const sortLabel =
ARCHIVE_SORT_OPTIONS.find((option) => option.value === librarySort)
@@ -36,11 +38,13 @@ export default function ArchiveFilters({