Skip to content

[#164] 스티키 헤더에서 UI가 변경될 때 사각형 모양의 배경이 생기는 현상을 해결한다#168

Merged
opficdev merged 5 commits intodevelopfrom
fix/#164-sticky-header-background
Mar 3, 2026
Merged

[#164] 스티키 헤더에서 UI가 변경될 때 사각형 모양의 배경이 생기는 현상을 해결한다#168
opficdev merged 5 commits intodevelopfrom
fix/#164-sticky-header-background

Conversation

@opficdev
Copy link
Owner

@opficdev opficdev commented Mar 3, 2026

@opficdev opficdev self-assigned this Mar 3, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 스티키 헤더에서 UI가 변경될 때 발생하던 불필요한 사각형 배경 문제를 해결하기 위해 여러 UI 컴포넌트의 스타일 적용 방식을 개선합니다. 특히, adaptiveButtonStyleforegroundStyle의 적용 위치를 조정하여 버튼 및 기타 UI 요소가 올바른 시각적 상태를 유지하도록 하였으며, 필터 및 정렬 옵션 버튼의 활성화 상태에 따른 시각적 피드백을 명확하게 개선했습니다. 또한, 로컬라이제이션 문자열 하나를 업데이트했습니다.

Highlights

  • UI 스타일 적용 방식 개선: 여러 UI 컴포넌트에서 adaptiveButtonStyleforegroundStyle 모디파이어의 적용 위치를 조정하여 스타일링 문제를 해결하고 시각적 일관성을 확보했습니다.
  • 스티키 헤더 배경 문제 해결: UI 변경 시 스티키 헤더에서 발생하던 불필요한 사각형 배경 현상을 수정했습니다.
  • 버튼 활성화 상태 시각화 개선: 필터 및 정렬 버튼의 활성화 상태에 따라 텍스트 색상과 배경색이 올바르게 변경되도록 스타일 로직을 리팩토링했습니다.
  • 로컬라이제이션 업데이트: 로컬라이제이션 파일에서 '완료 시점' 문자열을 '완료일'로 변경했습니다.
Changelog
  • DevLog/Resource/Localizable.xcstrings
    • "완료 시점" 문자열을 "완료일"로 변경했습니다.
  • DevLog/UI/Common/TodoInfoSheetView.swift
    • HStack 내의 이미지와 텍스트에 foregroundStyle(.white)가 일관되게 적용되도록 수정했습니다.
  • DevLog/UI/Home/TodoEditorView.swift
    • adaptiveButtonStyle() 모디파이어의 적용 위치를 조정하여 버튼 스타일링을 개선했습니다.
  • DevLog/UI/Home/TodoListView.swift
    • 정렬 및 필터 옵션 버튼의 활성화 상태에 따라 foregroundStyleadaptiveButtonStyle이 동적으로 적용되도록 로직을 리팩토링했습니다.
  • DevLog/UI/PushNotification/PushNotificationListView.swift
    • 푸시 알림 목록의 필터, 정렬, 기간, 읽지 않음 버튼에 대한 adaptiveButtonStyleforegroundStyle 적용 로직을 개선하여 활성화 상태에 따른 시각적 일관성을 확보했습니다.
Activity
  • opficdev가 PR을 생성했습니다.
  • 이 PR은 이슈 #164를 해결합니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@opficdev opficdev merged commit be6abeb into develop Mar 3, 2026
1 check passed
@opficdev opficdev deleted the fix/#164-sticky-header-background branch March 3, 2026 05:06
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request primarily focuses on UI/UX improvements and code readability. It includes a minor localization change in Localizable.xcstrings, updating "완료 시점" to "완료일". The main changes involve refactoring how .adaptiveButtonStyle() and .foregroundStyle() modifiers are applied across several UI components. Specifically, .adaptiveButtonStyle() is moved to be applied directly to the content within button labels in TodoEditorView.swift and PushNotificationListView.swift for improved readability. In TodoInfoSheetView.swift, .foregroundStyle(.white) is moved to apply to an entire HStack. Furthermore, in TodoListView.swift and PushNotificationListView.swift, conditional logic for button styling (color and foreground style) is enhanced by introducing condition variables, which improves readability and ensures correct UI feedback for active filters and sort options. The review comments reinforce these changes, emphasizing the improved readability by adjusting modifier positions and the enhanced UI/UX through conditional styling and variable extraction.

Note: Security Review is unavailable for this PR.

Comment on lines +141 to 142
.adaptiveButtonStyle()
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

.adaptiveButtonStyle() modifier 위치를 조정하여 가독성을 높입니다.

                }
                .adaptiveButtonStyle()
            }

Comment on lines +164 to 165
.adaptiveButtonStyle()
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

.adaptiveButtonStyle() modifier 위치를 조정하여 가독성을 높입니다.

                }
                .adaptiveButtonStyle()
            }

Comment on lines +320 to +321
.adaptiveButtonStyle(
shape: .circle,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

.adaptiveButtonStyle() modifier 위치를 조정하여 가독성을 높입니다.

                    .foregroundStyle(Color.white)
                    .adaptiveButtonStyle(
                        shape: .circle,
                        color: (!tag.isEmpty && !tags.contains(tag)) ? Color.blue : .gray.opacity(0.4)
                    )

Comment on lines +210 to +216
let condition = viewModel.state.query.sortTarget == .createdAt && viewModel.state.query.sortOrder == .latest
HStack {
Text("정렬: \(viewModel.state.query.sortTarget.title) / \(viewModel.state.query.sortOrder.title)")
Image(systemName: "chevron.down")
}
.adaptiveButtonStyle(
color: viewModel.state.query.sortTarget == .createdAt &&
viewModel.state.query.sortOrder == .latest ? .clear : .blue
)
.foregroundStyle(condition ? Color(.label) : .white)
.adaptiveButtonStyle(color: condition ? .clear : .blue)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

조건 변수를 추출하여 코드 가독성을 높이고, .foregroundStyle modifier를 추가하여 UI를 개선합니다.

Suggested change
let condition = viewModel.state.query.sortTarget == .createdAt && viewModel.state.query.sortOrder == .latest
HStack {
Text("정렬: \(viewModel.state.query.sortTarget.title) / \(viewModel.state.query.sortOrder.title)")
Image(systemName: "chevron.down")
}
.adaptiveButtonStyle(
color: viewModel.state.query.sortTarget == .createdAt &&
viewModel.state.query.sortOrder == .latest ? .clear : .blue
)
.foregroundStyle(condition ? Color(.label) : .white)
.adaptiveButtonStyle(color: condition ? .clear : .blue)
let condition = viewModel.state.query.sortTarget == .createdAt && viewModel.state.query.sortOrder == .latest
HStack {
Text("정렬: \(viewModel.state.query.sortTarget.title) / \(viewModel.state.query.sortOrder.title))")
Image(systemName: "chevron.down")
}
.foregroundStyle(condition ? Color(.label) : .white)
.adaptiveButtonStyle(color: condition ? .clear : .blue)

Comment on lines +117 to 118
.adaptiveButtonStyle()
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

.adaptiveButtonStyle() modifier 위치를 조정하여 가독성을 높입니다.

Suggested change
.adaptiveButtonStyle()
}
}
.adaptiveButtonStyle()
}

Comment on lines +124 to +127
let condition = viewModel.state.query.sortOrder == .oldest
Text("정렬: \(viewModel.state.query.sortOrder.title)")
.foregroundStyle(condition ? .white : Color(.label))
.adaptiveButtonStyle(color: condition ? .blue : .clear)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

조건 변수를 추출하고, .foregroundStyle modifier를 추가하여 UI를 개선합니다.

Suggested change
let condition = viewModel.state.query.sortOrder == .oldest
Text("정렬: \(viewModel.state.query.sortOrder.title)")
.foregroundStyle(condition ? .white : Color(.label))
.adaptiveButtonStyle(color: condition ? .blue : .clear)
let condition = viewModel.state.query.sortOrder == .oldest
Text("정렬: \(viewModel.state.query.sortOrder.title))")
.foregroundStyle(condition ? .white : Color(.label))
.adaptiveButtonStyle(color: condition ? .blue : .clear)

Comment on lines +147 to +153
let condition = viewModel.state.query.timeFilter == .none
HStack {
Text("기간")
Image(systemName: "chevron.down")
}
.foregroundStyle(condition ? Color(.label) : .white)
.adaptiveButtonStyle(color: condition ? .clear : .blue)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

조건 변수를 추출하고, HStack을 사용하여 UI를 개선합니다.

Suggested change
let condition = viewModel.state.query.timeFilter == .none
HStack {
Text("기간")
Image(systemName: "chevron.down")
}
.foregroundStyle(condition ? Color(.label) : .white)
.adaptiveButtonStyle(color: condition ? .clear : .blue)
let condition = viewModel.state.query.timeFilter == .none
HStack {
Text("기간")
Image(systemName: "chevron.down")
}
.foregroundStyle(condition ? Color(.label) : .white)
.adaptiveButtonStyle(color: condition ? .clear : .blue)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

스티키 헤더의 adaptiveButtonStyle이 Menu의 Label로 쓰일 때 사각형 뒷배경이 생기는 이슈를 해결한다

1 participant