Skip to content

deploy: 3.0.1 배포 (#218)#220

Merged
AndyH0ng merged 6 commits intomainfrom
develop
Feb 12, 2026
Merged

deploy: 3.0.1 배포 (#218)#220
AndyH0ng merged 6 commits intomainfrom
develop

Conversation

@AndyH0ng
Copy link
Member

📌 관련 이슈

@AndyH0ng AndyH0ng self-assigned this Feb 12, 2026
@AndyH0ng AndyH0ng merged commit f17150e into main Feb 12, 2026
10 of 11 checks passed
@github-actions github-actions bot added component 컴포넌트 관련 변경 page 페이지 관련 변경 labels Feb 12, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @AndyH0ng, 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!

이 PR은 애플리케이션의 모바일 반응형 디자인과 사용자 경험을 개선하는 데 중점을 둡니다. 특히 슬라이드 편집 및 보기 페이지의 모바일 가시성을 향상시키고, 로그인 버튼 컴포넌트를 더 유연한 Dropdown 컴포넌트로 리팩토링하여 불필요한 코드를 제거했습니다. 전반적으로 모바일 환경에서의 사용성을 높이고 코드의 유지보수성을 개선하는 변경사항입니다.

Highlights

  • 모바일 반응형 개선: TitleEditorPopover 컴포넌트에 showOnMobile prop을 추가하여 모바일에서의 가시성을 제어하고, HeaderButton의 텍스트 숨김 기준을 md에서 lg로 변경하여 더 큰 화면에서 텍스트가 보이도록 조정했습니다.
  • 로그인 버튼 리팩토링: LoginButton 컴포넌트에서 Popover 대신 Dropdown 컴포넌트를 사용하도록 변경하고, 불필요한 import와 테마 관련 로직을 제거하여 코드를 간소화했습니다.
  • 슬라이드 페이지 모바일 내비게이션 추가: SlidePage에 모바일 뷰포트에서 슬라이드를 탐색할 수 있는 이전/다음 버튼과 현재 슬라이드 번호 표시 기능을 구현했습니다.
Changelog
  • src/components/common/TitleEditorPopover.tsx
    • showOnMobile prop이 추가되어 모바일에서의 가시성을 제어합니다.
    • clsx 유틸리티를 사용하여 showOnMobile prop에 따라 CSS 클래스를 동적으로 적용하도록 변경되었습니다.
  • src/components/common/layout/HeaderButton.tsx
    • shouldHideTextOnMobile 조건부 클래스가 md:inline에서 lg:inline으로 변경되어 텍스트 숨김 기준이 더 큰 화면으로 조정되었습니다.
  • src/components/common/layout/LoginButton.tsx
    • Popover 컴포넌트 대신 Dropdown 컴포넌트를 사용하도록 변경되었습니다.
    • useLocation 및 useThemeStore 관련 불필요한 import와 로직이 제거되었습니다.
    • 로그인 버튼의 iconOnlyOnMobile prop 사용이 간소화되었습니다.
    • 사용자 메뉴 드롭다운의 내용이 간소화되어 로그아웃 및 회원 탈퇴 옵션만 포함됩니다.
  • src/components/common/layout/ShareButton.tsx
    • useLocation 및 isSlideRoute 관련 로직이 제거되어 컴포넌트가 간소화되었습니다.
    • HeaderButton 컴포넌트 호출이 간소화되었습니다.
  • src/components/slide/script/SlideTitle.tsx
    • TitleEditorPopover 컴포넌트에 showOnMobile prop이 추가되었습니다.
  • src/pages/SlidePage.tsx
    • 현재 슬라이드의 인덱스(currentIndex), 이전 슬라이드 존재 여부(hasPrev), 다음 슬라이드 존재 여부(hasNext)를 계산하는 로직이 추가되었습니다.
    • 모바일 뷰포트(min-[1024px]:hidden)를 위한 새로운 UI 블록이 추가되었습니다.
    • 모바일에서 슬라이드를 탐색할 수 있는 이전/다음 버튼과 현재 슬라이드 번호 표시 기능이 구현되었습니다.
    • goPrev 및 goNext 함수가 추가되어 슬라이드 탐색 로직을 처리합니다.
Activity
  • 이슈 #218이 이 PR에 의해 닫혔습니다.
  • 현재까지 이 PR에 대한 추가적인 사람의 활동은 없습니다.
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.

@AndyH0ng AndyH0ng linked an issue Feb 12, 2026 that may be closed by this pull request
11 tasks
Copy link
Contributor

@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

이번 PR은 슬라이드 페이지의 모바일 반응형 UI를 구현하고, 관련 컴포넌트들을 리팩토링하는 내용을 담고 있습니다. 전반적으로 모바일 레이아웃이 잘 구현되었고, LoginButtonShareButton에서 useLocation 의존성을 제거하여 코드가 간소화된 점이 좋습니다. 또한 Popover를 재사용 가능한 Dropdown 컴포넌트로 대체하여 추상화 수준을 높인 것도 훌륭한 개선입니다. 몇 가지 코드 중복 및 일관성 관련하여 유지보수성을 더 높일 수 있는 부분을 아래 주석으로 제안했습니다.

Comment on lines +52 to +55
className={clsx(
'h-7 items-center gap-1.5 rounded-md bg-transparent px-2 text-sm font-semibold text-gray-800 hover:bg-gray-100 active:bg-gray-200 focus-visible:outline-2 focus-visible:outline-main min-w-0',
showOnMobile ? 'inline-flex' : 'hidden md:inline-flex',
)}
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

className을 생성하는 로직이 77-80 라인에서도 동일하게 반복되고 있습니다. 코드 중복을 줄이고 유지보수성을 높이기 위해 이 clsx 호출을 컴포넌트 상단의 변수로 추출하여 두 버튼에서 공유하는 것을 권장합니다.

예시:

const buttonClassName = clsx(
  'h-7 items-center gap-1.5 rounded-md bg-transparent px-2 text-sm font-semibold text-gray-800 hover:bg-gray-100 active:bg-gray-200 focus-visible:outline-2 focus-visible:outline-main min-w-0',
  showOnMobile ? 'inline-flex' : 'hidden md:inline-flex',
);
References
  1. Extract complex or repetitive conditional className logic into a helper function, using utilities like clsx to improve readability and maintainability.

Comment on lines +86 to +94
<svg width="20" height="20" viewBox="0 0 24 24" fill="none">
<path
d="m15 18-6-6 6-6"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

이전 슬라이드로 가는 버튼의 SVG 아이콘이 코드에 직접 포함되어 있습니다. 106-114 라인의 다음 슬라이드 버튼 아이콘도 마찬가지입니다. 프로젝트의 다른 부분에서 아이콘을 처리하는 방식과 일관성을 맞추고 재사용성을 높이기 위해 이 SVG들을 별도의 파일(예: ChevronLeftIcon.svg, ChevronRightIcon.svg)로 추출하고, svgr을 통해 React 컴포넌트로 임포트하여 사용하는 것을 권장합니다.

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

Labels

component 컴포넌트 관련 변경 page 페이지 관련 변경

Projects

None yet

Development

Successfully merging this pull request may close these issues.

deploy: 3.0.1 배포

1 participant