캐릭터 탭 - 섹션 사이 간격 48
채팅 캐릭터 이미지 비율 2:3으로 변경 채팅 배경 사진 -> 채팅 배경 이미지로 단어 변경
This commit is contained in:
		@@ -13,7 +13,7 @@ struct CharacterSectionView: View {
 | 
				
			|||||||
    var onTap: (Character) -> Void = { _ in }
 | 
					    var onTap: (Character) -> Void = { _ in }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    var body: some View {
 | 
					    var body: some View {
 | 
				
			||||||
        VStack(alignment: .leading, spacing: 12) {
 | 
					        VStack(alignment: .leading, spacing: 16) {
 | 
				
			||||||
            Text(title)
 | 
					            Text(title)
 | 
				
			||||||
                .font(.custom(Font.preBold.rawValue, size: 20))
 | 
					                .font(.custom(Font.preBold.rawValue, size: 20))
 | 
				
			||||||
                .foregroundColor(.white)
 | 
					                .foregroundColor(.white)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@ struct CharacterView: View {
 | 
				
			|||||||
    var body: some View {
 | 
					    var body: some View {
 | 
				
			||||||
        BaseView(isLoading: $viewModel.isLoading) {
 | 
					        BaseView(isLoading: $viewModel.isLoading) {
 | 
				
			||||||
            ScrollView(.vertical, showsIndicators: false) {
 | 
					            ScrollView(.vertical, showsIndicators: false) {
 | 
				
			||||||
                VStack(alignment: .leading, spacing: 24) {
 | 
					                VStack(alignment: .leading, spacing: 48) {
 | 
				
			||||||
                    // 배너
 | 
					                    // 배너
 | 
				
			||||||
                    if !viewModel.banners.isEmpty {
 | 
					                    if !viewModel.banners.isEmpty {
 | 
				
			||||||
                        AutoSlideCharacterBannerView(items: viewModel.banners) { banner in
 | 
					                        AutoSlideCharacterBannerView(items: viewModel.banners) { banner in
 | 
				
			||||||
@@ -45,7 +45,7 @@ struct CharacterView: View {
 | 
				
			|||||||
                    
 | 
					                    
 | 
				
			||||||
                    // 큐레이션 섹션 (여러 섹션)
 | 
					                    // 큐레이션 섹션 (여러 섹션)
 | 
				
			||||||
                    if !viewModel.curations.isEmpty {
 | 
					                    if !viewModel.curations.isEmpty {
 | 
				
			||||||
                        VStack(alignment: .leading, spacing: 24) {
 | 
					                        VStack(alignment: .leading, spacing: 48) {
 | 
				
			||||||
                            ForEach(viewModel.curations.indices, id: \.self) { idx in
 | 
					                            ForEach(viewModel.curations.indices, id: \.self) { idx in
 | 
				
			||||||
                                let section = viewModel.curations[idx]
 | 
					                                let section = viewModel.curations[idx]
 | 
				
			||||||
                                CharacterSectionView(
 | 
					                                CharacterSectionView(
 | 
				
			||||||
@@ -58,7 +58,7 @@ struct CharacterView: View {
 | 
				
			|||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                .padding(.vertical, 24)
 | 
					                .padding(.bottom, 24)
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            .background(Color.black.ignoresSafeArea())
 | 
					            .background(Color.black.ignoresSafeArea())
 | 
				
			||||||
            .onAppear {
 | 
					            .onAppear {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,14 +13,16 @@ struct RecentCharacterSectionView: View {
 | 
				
			|||||||
    var onTap: (RecentCharacter) -> Void = { _ in }
 | 
					    var onTap: (RecentCharacter) -> Void = { _ in }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    var body: some View {
 | 
					    var body: some View {
 | 
				
			||||||
        VStack(alignment: .leading, spacing: 12) {
 | 
					        VStack(alignment: .leading, spacing: 16) {
 | 
				
			||||||
            HStack(spacing: 0) {
 | 
					            HStack(spacing: 0) {
 | 
				
			||||||
                Text("최근 대화한 캐릭터 ")
 | 
					                Text("최근 대화한 캐릭터 ")
 | 
				
			||||||
                    .font(.custom(Font.preBold.rawValue, size: 20))
 | 
					                    .font(.custom(Font.preBold.rawValue, size: 20))
 | 
				
			||||||
                    .foregroundColor(.white)
 | 
					                    .foregroundColor(.white)
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
                Text("\(titleCount)")
 | 
					                Text("\(titleCount)")
 | 
				
			||||||
                    .font(.custom(Font.preBold.rawValue, size: 20))
 | 
					                    .font(.custom(Font.preBold.rawValue, size: 20))
 | 
				
			||||||
                    .foregroundColor(Color(hex: "FDCA2F"))
 | 
					                    .foregroundColor(Color(hex: "FDCA2F"))
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
                Spacer()
 | 
					                Spacer()
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            .padding(.horizontal, 24)
 | 
					            .padding(.horizontal, 24)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -334,7 +334,7 @@ struct ChatRoomBgView: View {
 | 
				
			|||||||
    var body: some View {
 | 
					    var body: some View {
 | 
				
			||||||
        GeometryReader { geo in
 | 
					        GeometryReader { geo in
 | 
				
			||||||
            let width = geo.size.width
 | 
					            let width = geo.size.width
 | 
				
			||||||
            let height = width * 5 / 4
 | 
					            let height = width * 3 / 2
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            ZStack {
 | 
					            ZStack {
 | 
				
			||||||
                if let url = url {
 | 
					                if let url = url {
 | 
				
			||||||
@@ -353,7 +353,7 @@ struct ChatRoomBgView: View {
 | 
				
			|||||||
            .frame(width: width, height: height)
 | 
					            .frame(width: width, height: height)
 | 
				
			||||||
            .clipped()
 | 
					            .clipped()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .aspectRatio(4/5, contentMode: .fit)
 | 
					        .aspectRatio(2/3, contentMode: .fit)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ struct ChatBgSelectionView: View {
 | 
				
			|||||||
    var body: some View {
 | 
					    var body: some View {
 | 
				
			||||||
        BaseView(isLoading: $viewModel.isLoading) {
 | 
					        BaseView(isLoading: $viewModel.isLoading) {
 | 
				
			||||||
            VStack(spacing: 0) {
 | 
					            VStack(spacing: 0) {
 | 
				
			||||||
                DetailNavigationBar(title: "배경 사진 선택") {
 | 
					                DetailNavigationBar(title: "배경 이미지 선택") {
 | 
				
			||||||
                    isShowing = false
 | 
					                    isShowing = false
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                // 갤러리 그리드
 | 
					                // 갤러리 그리드
 | 
				
			||||||
@@ -73,7 +73,7 @@ struct ChatBgSelectionView: View {
 | 
				
			|||||||
    private func galleryImageView(item: CharacterImageListItemResponse) -> some View {
 | 
					    private func galleryImageView(item: CharacterImageListItemResponse) -> some View {
 | 
				
			||||||
        GeometryReader { geo in
 | 
					        GeometryReader { geo in
 | 
				
			||||||
            let width = geo.size.width
 | 
					            let width = geo.size.width
 | 
				
			||||||
            let height = width * 5 / 4
 | 
					            let height = width * 3 / 2
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            ZStack(alignment: .bottomTrailing) {
 | 
					            ZStack(alignment: .bottomTrailing) {
 | 
				
			||||||
                // 이미지
 | 
					                // 이미지
 | 
				
			||||||
@@ -110,7 +110,7 @@ struct ChatBgSelectionView: View {
 | 
				
			|||||||
            .contentShape(Rectangle())
 | 
					            .contentShape(Rectangle())
 | 
				
			||||||
            .onTapGesture { onTapBgImage(item) }
 | 
					            .onTapGesture { onTapBgImage(item) }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .aspectRatio(4/5, contentMode: .fit)
 | 
					        .aspectRatio(2/3, contentMode: .fit)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ struct ChatSettingsView: View {
 | 
				
			|||||||
                VStack(spacing: 0) {
 | 
					                VStack(spacing: 0) {
 | 
				
			||||||
                    VStack(spacing: 0) {
 | 
					                    VStack(spacing: 0) {
 | 
				
			||||||
                        Toggle(isOn: $isHideBg) {
 | 
					                        Toggle(isOn: $isHideBg) {
 | 
				
			||||||
                            Text("배경 이미지 숨김")
 | 
					                            Text("배경 이미지 끄기")
 | 
				
			||||||
                                .font(.custom(Font.preBold.rawValue, size: 18))
 | 
					                                .font(.custom(Font.preBold.rawValue, size: 18))
 | 
				
			||||||
                                .foregroundColor(Color(hex: "B0BEC5"))
 | 
					                                .foregroundColor(Color(hex: "B0BEC5"))
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user