feat(creator): 답글 상세 화면을 등록한다

This commit is contained in:
Yu Sung
2026-07-07 15:04:15 +09:00
parent e7a011c519
commit 9276d17c26
2 changed files with 204 additions and 48 deletions

View File

@@ -7,6 +7,30 @@
objects = {
/* Begin PBXBuildFile section */
CC0710012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift */; };
CC0710022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift */; };
CC0710032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift */; };
CC0710042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift */; };
CC0710052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift */; };
CC0710062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift */; };
CC0710072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift */; };
CC0710082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift */; };
CC0720012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift */; };
CC0720022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift */; };
CC0720032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift */; };
CC0720042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift */; };
CC0720052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift */; };
CC0720062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift */; };
CC0720072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift */; };
CC0720082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift */; };
CC0730012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift */; };
CC0730022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift */; };
CC0730032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift */; };
CC0730042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift */; };
CC0730052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift */; };
CC0730062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift */; };
CC0730072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift */; };
CC0730082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0700082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift */; };
00C796627A6758D271215EC5 /* CreatorProfileItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26881ED30292E28D2E5F84CD /* CreatorProfileItem.swift */; };
042BEE0C973700FB5F4540CD /* I18n.swift in Sources */ = {isa = PBXBuildFile; fileRef = 826D626B7714E5C28ED31074 /* I18n.swift */; };
0470E68C6F302A131264E3AF /* ChannelDonationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DF2BFD2E09F509C44C92214 /* ChannelDonationViewModel.swift */; };
@@ -1759,21 +1783,6 @@
C0A713000000000000000004 /* MainContentAllViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A710000000000000000004 /* MainContentAllViewModel.swift */; };
C0A713000000000000000005 /* MainContentAllView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A710000000000000000005 /* MainContentAllView.swift */; };
C0A713000000000000000006 /* MainContentSeriesThumbnailCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A710000000000000000006 /* MainContentSeriesThumbnailCard.swift */; };
C0A731000000000000000001 /* ContentOverviewPageResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000001 /* ContentOverviewPageResponse.swift */; };
C0A731000000000000000002 /* ContentOverviewApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000002 /* ContentOverviewApi.swift */; };
C0A731000000000000000003 /* ContentOverviewRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000003 /* ContentOverviewRepository.swift */; };
C0A731000000000000000004 /* ContentOverviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000004 /* ContentOverviewViewModel.swift */; };
C0A731000000000000000005 /* ContentOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000005 /* ContentOverviewView.swift */; };
C0A732000000000000000001 /* ContentOverviewPageResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000001 /* ContentOverviewPageResponse.swift */; };
C0A732000000000000000002 /* ContentOverviewApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000002 /* ContentOverviewApi.swift */; };
C0A732000000000000000003 /* ContentOverviewRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000003 /* ContentOverviewRepository.swift */; };
C0A732000000000000000004 /* ContentOverviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000004 /* ContentOverviewViewModel.swift */; };
C0A732000000000000000005 /* ContentOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000005 /* ContentOverviewView.swift */; };
C0A733000000000000000001 /* ContentOverviewPageResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000001 /* ContentOverviewPageResponse.swift */; };
C0A733000000000000000002 /* ContentOverviewApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000002 /* ContentOverviewApi.swift */; };
C0A733000000000000000003 /* ContentOverviewRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000003 /* ContentOverviewRepository.swift */; };
C0A733000000000000000004 /* ContentOverviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000004 /* ContentOverviewViewModel.swift */; };
C0A733000000000000000005 /* ContentOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000005 /* ContentOverviewView.swift */; };
C0A721000000000000000001 /* AudioRankingResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A720000000000000000001 /* AudioRankingResponse.swift */; };
C0A721000000000000000002 /* MainContentRankingApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A720000000000000000002 /* MainContentRankingApi.swift */; };
C0A721000000000000000003 /* MainContentRankingRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A720000000000000000003 /* MainContentRankingRepository.swift */; };
@@ -1804,6 +1813,21 @@
C0A723000000000000000008 /* MainContentAudioRankingRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A720000000000000000008 /* MainContentAudioRankingRow.swift */; };
C0A723000000000000000009 /* MainContentAudioRankingEmptyStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A720000000000000000009 /* MainContentAudioRankingEmptyStateView.swift */; };
C0A72300000000000000000A /* MainContentAudioRankingThumbnailCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A72000000000000000000A /* MainContentAudioRankingThumbnailCard.swift */; };
C0A731000000000000000001 /* ContentOverviewPageResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000001 /* ContentOverviewPageResponse.swift */; };
C0A731000000000000000002 /* ContentOverviewApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000002 /* ContentOverviewApi.swift */; };
C0A731000000000000000003 /* ContentOverviewRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000003 /* ContentOverviewRepository.swift */; };
C0A731000000000000000004 /* ContentOverviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000004 /* ContentOverviewViewModel.swift */; };
C0A731000000000000000005 /* ContentOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000005 /* ContentOverviewView.swift */; };
C0A732000000000000000001 /* ContentOverviewPageResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000001 /* ContentOverviewPageResponse.swift */; };
C0A732000000000000000002 /* ContentOverviewApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000002 /* ContentOverviewApi.swift */; };
C0A732000000000000000003 /* ContentOverviewRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000003 /* ContentOverviewRepository.swift */; };
C0A732000000000000000004 /* ContentOverviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000004 /* ContentOverviewViewModel.swift */; };
C0A732000000000000000005 /* ContentOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000005 /* ContentOverviewView.swift */; };
C0A733000000000000000001 /* ContentOverviewPageResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000001 /* ContentOverviewPageResponse.swift */; };
C0A733000000000000000002 /* ContentOverviewApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000002 /* ContentOverviewApi.swift */; };
C0A733000000000000000003 /* ContentOverviewRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000003 /* ContentOverviewRepository.swift */; };
C0A733000000000000000004 /* ContentOverviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000004 /* ContentOverviewViewModel.swift */; };
C0A733000000000000000005 /* ContentOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A730000000000000000005 /* ContentOverviewView.swift */; };
C0D6E325AEFEEF476E7044AB /* CommunityPostCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE82912F2F111593BE42E33C /* CommunityPostCard.swift */; };
C3CFF5936F1BAC5BC12E9DDB /* UpdateContentPreferenceRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CDFAA64C2CA4FCBBF00A024 /* UpdateContentPreferenceRequest.swift */; };
C45F071870A4DB48ABAE8BC5 /* YandexAdSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = F064EC9D5711B91979F45C05 /* YandexAdSupport.swift */; };
@@ -2049,6 +2073,14 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
CC0700012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelReplyDetailView.swift; sourceTree = "<group>"; };
CC0700022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelReplyDetailViewModel.swift; sourceTree = "<group>"; };
CC0700032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelReplyDetailContext.swift; sourceTree = "<group>"; };
CC0700042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelReplyDetailDisplayItem.swift; sourceTree = "<group>"; };
CC0700052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelReplyDetailTitleBar.swift; sourceTree = "<group>"; };
CC0700062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelReplyDetailFeedView.swift; sourceTree = "<group>"; };
CC0700072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelReplyDetailInputBar.swift; sourceTree = "<group>"; };
CC0700082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelReplyDetailActionPopup.swift; sourceTree = "<group>"; };
002435A7145D59CCCA8F76D1 /* CreatorChannelFanTalkApi.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CreatorChannelFanTalkApi.swift; sourceTree = "<group>"; };
0BBDC3ECBBE049EAA4057D3A /* PostChannelDonationRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PostChannelDonationRequest.swift; sourceTree = "<group>"; };
0EC05859619BDC03056911E7 /* MainTab.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MainTab.swift; sourceTree = "<group>"; };
@@ -2887,11 +2919,6 @@
C0A710000000000000000004 /* MainContentAllViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContentAllViewModel.swift; sourceTree = "<group>"; };
C0A710000000000000000005 /* MainContentAllView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContentAllView.swift; sourceTree = "<group>"; };
C0A710000000000000000006 /* MainContentSeriesThumbnailCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContentSeriesThumbnailCard.swift; sourceTree = "<group>"; };
C0A730000000000000000001 /* ContentOverviewPageResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewPageResponse.swift; sourceTree = "<group>"; };
C0A730000000000000000002 /* ContentOverviewApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewApi.swift; sourceTree = "<group>"; };
C0A730000000000000000003 /* ContentOverviewRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewRepository.swift; sourceTree = "<group>"; };
C0A730000000000000000004 /* ContentOverviewViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewViewModel.swift; sourceTree = "<group>"; };
C0A730000000000000000005 /* ContentOverviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewView.swift; sourceTree = "<group>"; };
C0A720000000000000000001 /* AudioRankingResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioRankingResponse.swift; sourceTree = "<group>"; };
C0A720000000000000000002 /* MainContentRankingApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContentRankingApi.swift; sourceTree = "<group>"; };
C0A720000000000000000003 /* MainContentRankingRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContentRankingRepository.swift; sourceTree = "<group>"; };
@@ -2902,6 +2929,11 @@
C0A720000000000000000008 /* MainContentAudioRankingRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContentAudioRankingRow.swift; sourceTree = "<group>"; };
C0A720000000000000000009 /* MainContentAudioRankingEmptyStateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContentAudioRankingEmptyStateView.swift; sourceTree = "<group>"; };
C0A72000000000000000000A /* MainContentAudioRankingThumbnailCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContentAudioRankingThumbnailCard.swift; sourceTree = "<group>"; };
C0A730000000000000000001 /* ContentOverviewPageResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewPageResponse.swift; sourceTree = "<group>"; };
C0A730000000000000000002 /* ContentOverviewApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewApi.swift; sourceTree = "<group>"; };
C0A730000000000000000003 /* ContentOverviewRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewRepository.swift; sourceTree = "<group>"; };
C0A730000000000000000004 /* ContentOverviewViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewViewModel.swift; sourceTree = "<group>"; };
C0A730000000000000000005 /* ContentOverviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentOverviewView.swift; sourceTree = "<group>"; };
C1165E3F4CA1AB019FC85067 /* LanguageRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LanguageRepository.swift; sourceTree = "<group>"; };
C40163E3E9DB325EA984D3C4 /* CreatorChannelFloatingIconButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CreatorChannelFloatingIconButton.swift; sourceTree = "<group>"; };
C6B18C00DE256DCC53030630 /* Spacing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Spacing.swift; sourceTree = "<group>"; };
@@ -3065,6 +3097,37 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
CC0700092FF0700000A5BBA3 /* Models */ = {
isa = PBXGroup;
children = (
CC0700032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift */,
CC0700042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift */,
);
path = Models;
sourceTree = "<group>";
};
CC07000A2FF0700000A5BBA3 /* Components */ = {
isa = PBXGroup;
children = (
CC0700052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift */,
CC0700062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift */,
CC0700072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift */,
CC0700082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift */,
);
path = Components;
sourceTree = "<group>";
};
CC07000B2FF0700000A5BBA3 /* ReplyDetail */ = {
isa = PBXGroup;
children = (
CC0700092FF0700000A5BBA3 /* Models */,
CC07000A2FF0700000A5BBA3 /* Components */,
CC0700012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift */,
CC0700022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift */,
);
path = ReplyDetail;
sourceTree = "<group>";
};
038B15E425DE0639156ADBA9 /* Repository */ = {
isa = PBXGroup;
children = (
@@ -5642,34 +5705,6 @@
path = AudioContent;
sourceTree = "<group>";
};
C0A730000000000000000100 /* Overview */ = {
isa = PBXGroup;
children = (
C0A730000000000000000101 /* Models */,
C0A730000000000000000102 /* Repository */,
C0A730000000000000000004 /* ContentOverviewViewModel.swift */,
C0A730000000000000000005 /* ContentOverviewView.swift */,
);
path = Overview;
sourceTree = "<group>";
};
C0A730000000000000000101 /* Models */ = {
isa = PBXGroup;
children = (
C0A730000000000000000001 /* ContentOverviewPageResponse.swift */,
);
path = Models;
sourceTree = "<group>";
};
C0A730000000000000000102 /* Repository */ = {
isa = PBXGroup;
children = (
C0A730000000000000000002 /* ContentOverviewApi.swift */,
C0A730000000000000000003 /* ContentOverviewRepository.swift */,
);
path = Repository;
sourceTree = "<group>";
};
C0A710000000000000000100 /* All */ = {
isa = PBXGroup;
children = (
@@ -5748,6 +5783,34 @@
path = Components;
sourceTree = "<group>";
};
C0A730000000000000000100 /* Overview */ = {
isa = PBXGroup;
children = (
C0A730000000000000000101 /* Models */,
C0A730000000000000000102 /* Repository */,
C0A730000000000000000004 /* ContentOverviewViewModel.swift */,
C0A730000000000000000005 /* ContentOverviewView.swift */,
);
path = Overview;
sourceTree = "<group>";
};
C0A730000000000000000101 /* Models */ = {
isa = PBXGroup;
children = (
C0A730000000000000000001 /* ContentOverviewPageResponse.swift */,
);
path = Models;
sourceTree = "<group>";
};
C0A730000000000000000102 /* Repository */ = {
isa = PBXGroup;
children = (
C0A730000000000000000002 /* ContentOverviewApi.swift */,
C0A730000000000000000003 /* ContentOverviewRepository.swift */,
);
path = Repository;
sourceTree = "<group>";
};
C46DB3E329B349CBB3F472DF /* Views */ = {
isa = PBXGroup;
children = (
@@ -5816,6 +5879,7 @@
CC0400112FF0400000A5BBA3 /* Series */,
CC05001B2FF0500000A5BBA3 /* Donation */,
CC06000E2FF0600000A5BBA3 /* Community */,
CC07000B2FF0700000A5BBA3 /* ReplyDetail */,
CC0100082FF0100000A5BBA3 /* CreatorChannelView.swift */,
CC0100092FF0100000A5BBA3 /* CreatorChannelViewModel.swift */,
AA4588B91C0F73344C3DC4A4 /* FanTalk */,
@@ -6484,6 +6548,14 @@
CC01011F2FF0100000A5BBA3 /* CreatorChannelActivitySection.swift in Sources */,
CC0101272FF0100000A5BBA3 /* CreatorChannelSnsSection.swift in Sources */,
CC0101282FF0100000A5BBA3 /* CreatorChannelTalkActionSection.swift in Sources */,
CC0710012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift in Sources */,
CC0710022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift in Sources */,
CC0710032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift in Sources */,
CC0710042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift in Sources */,
CC0710052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift in Sources */,
CC0710062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift in Sources */,
CC0710072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift in Sources */,
CC0710082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift in Sources */,
CC0101082FF0100000A5BBA3 /* CreatorChannelView.swift in Sources */,
CC0101112FF0100000A5BBA3 /* CreatorChannelTitleBar.swift in Sources */,
CC0101122FF0100000A5BBA3 /* CreatorChannelHeaderSection.swift in Sources */,
@@ -7379,6 +7451,14 @@
CC01021F2FF0100000A5BBA3 /* CreatorChannelActivitySection.swift in Sources */,
CC0102272FF0100000A5BBA3 /* CreatorChannelSnsSection.swift in Sources */,
CC0102282FF0100000A5BBA3 /* CreatorChannelTalkActionSection.swift in Sources */,
CC0720012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift in Sources */,
CC0720022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift in Sources */,
CC0720032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift in Sources */,
CC0720042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift in Sources */,
CC0720052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift in Sources */,
CC0720062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift in Sources */,
CC0720072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift in Sources */,
CC0720082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift in Sources */,
CC0102082FF0100000A5BBA3 /* CreatorChannelView.swift in Sources */,
CC0102112FF0100000A5BBA3 /* CreatorChannelTitleBar.swift in Sources */,
CC0102122FF0100000A5BBA3 /* CreatorChannelHeaderSection.swift in Sources */,
@@ -8302,6 +8382,14 @@
CC01031F2FF0100000A5BBA3 /* CreatorChannelActivitySection.swift in Sources */,
CC0103272FF0100000A5BBA3 /* CreatorChannelSnsSection.swift in Sources */,
CC0103282FF0100000A5BBA3 /* CreatorChannelTalkActionSection.swift in Sources */,
CC0730012FF0700000A5BBA3 /* CreatorChannelReplyDetailView.swift in Sources */,
CC0730022FF0700000A5BBA3 /* CreatorChannelReplyDetailViewModel.swift in Sources */,
CC0730032FF0700000A5BBA3 /* CreatorChannelReplyDetailContext.swift in Sources */,
CC0730042FF0700000A5BBA3 /* CreatorChannelReplyDetailDisplayItem.swift in Sources */,
CC0730052FF0700000A5BBA3 /* CreatorChannelReplyDetailTitleBar.swift in Sources */,
CC0730062FF0700000A5BBA3 /* CreatorChannelReplyDetailFeedView.swift in Sources */,
CC0730072FF0700000A5BBA3 /* CreatorChannelReplyDetailInputBar.swift in Sources */,
CC0730082FF0700000A5BBA3 /* CreatorChannelReplyDetailActionPopup.swift in Sources */,
CC0103082FF0100000A5BBA3 /* CreatorChannelView.swift in Sources */,
CC0103112FF0100000A5BBA3 /* CreatorChannelTitleBar.swift in Sources */,
CC0103122FF0100000A5BBA3 /* CreatorChannelHeaderSection.swift in Sources */,

View File

@@ -0,0 +1,68 @@
import SwiftUI
struct CreatorChannelReplyDetailView: View {
let context: CreatorChannelReplyDetailContext
let onFanTalkRefresh: (() -> Void)?
@StateObject private var viewModel = CreatorChannelReplyDetailViewModel()
var body: some View {
ZStack {
VStack(spacing: 0) {
CreatorChannelReplyDetailTitleBar {
AppState.shared.back()
}
if let parentItem = viewModel.parentItem {
CreatorChannelReplyDetailFeedView(
parentItem: parentItem,
replies: viewModel.replies,
selectedActionItem: viewModel.selectedActionItem,
canEdit: viewModel.canEdit,
canDelete: viewModel.canDelete,
onTapAction: viewModel.selectActionItem,
onTapEdit: viewModel.beginEditing,
onTapDelete: viewModel.presentDeleteDialog,
onReplyAppear: viewModel.fetchNextCommunityRepliesIfNeeded
)
.frame(maxWidth: .infinity, maxHeight: .infinity)
} else {
Spacer()
}
CreatorChannelReplyDetailInputBar(
text: $viewModel.replyText,
isSendEnabled: viewModel.isSendEnabled && viewModel.isLoading == false,
isEditing: viewModel.isEditing,
onTapSend: viewModel.send,
onTapCancelEditing: viewModel.cancelEditing
)
}
.background(Color.black.ignoresSafeArea())
if viewModel.isLoading {
LoadingView()
}
if viewModel.isShowDeleteDialog {
SodaDialog(
title: I18n.Common.commentDeleteTitle,
desc: I18n.Common.confirmDeleteQuestion,
confirmButtonTitle: I18n.Common.delete,
confirmButtonAction: viewModel.confirmDelete,
cancelButtonTitle: I18n.Common.cancel,
cancelButtonAction: {
viewModel.isShowDeleteDialog = false
viewModel.deletingItem = nil
},
textAlignment: .center
)
}
}
.navigationBarBackButtonHidden(true)
.onAppear {
viewModel.configure(context: context, onFanTalkRefresh: onFanTalkRefresh)
}
.sodaToast(isPresented: $viewModel.isShowPopup, message: viewModel.errorMessage, autohideIn: 1)
}
}