Skip to content

style: 커뮤니티 navbar 위치 및 스타일 변경#52

Merged
FlashingFuture merged 3 commits into
mainfrom
refactor/react-query
Sep 21, 2025
Merged

style: 커뮤니티 navbar 위치 및 스타일 변경#52
FlashingFuture merged 3 commits into
mainfrom
refactor/react-query

Conversation

@FlashingFuture

Copy link
Copy Markdown
Contributor

작업 내용

  • 커뮤니티 navbar 위치 및 스타일 변경: 헤더 바로 아래로

@vercel

vercel Bot commented Sep 21, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
runova-web Ready Ready Preview Comment Sep 21, 2025 3:18am

@github-actions github-actions Bot added the 🎨style ui, 스타일 label Sep 21, 2025
@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello @FlashingFuture, 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은 커뮤니티 페이지의 내비게이션바 사용자 경험을 개선하기 위해 위치와 스타일을 전반적으로 변경합니다. 기존 하단에 고정되어 있던 내비게이션바를 헤더 바로 아래 상단에 고정시키고, 시각적으로 더 깔끔한 탭 형태의 디자인으로 변경했습니다. 또한, '전체보기' 탭을 추가하여 콘텐츠 접근성을 높였으며, 레이아웃 변경에 맞춰 AppLayout의 상단 여백 값을 조정했습니다.

Highlights

  • 커뮤니티 내비게이션바 위치 변경: 기존 하단 고정 방식에서 헤더 바로 아래 상단 고정 방식으로 커뮤니티 내비게이션바의 위치가 변경되었습니다.
  • 내비게이션바 스타일 변경: 아이콘과 텍스트가 함께 있던 버튼 형태에서 텍스트만 있는 탭 버튼 형태로 내비게이션바의 디자인이 변경되었습니다.
  • '전체보기' 탭 추가: 커뮤니티 내비게이션에 '전체보기' 탭이 새로 추가되어 모든 커뮤니티 게시물을 볼 수 있는 기능이 제공됩니다.
  • AppLayout topOffset 조정: 내비게이션바의 위치 변경에 맞춰 AppLayout 컴포넌트의 topOffset 기본값이 72에서 60으로 조정되었습니다.
  • 불필요한 주석 제거: apps/web/src/api/comments.ts 파일에서 authorInfo 속성 옆의 불필요한 주석이 제거되었습니다.
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

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.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

이번 PR은 커뮤니티 네비게이션 바를 화면 하단에서 상단 헤더 바로 아래로 이동하고 스타일을 변경하는 작업을 성공적으로 수행했습니다. 특히 CommunityAppLayout.tsx의 구조가 더 명확해진 점이 좋습니다.

다만, 코드 품질과 안정성을 높이기 위해 몇 가지 수정이 필요해 보입니다.

  • 스타일(높이, offset, 트랜지션 시간)에 직접 값을 입력한 "매직 넘버"가 여러 곳에서 발견되었습니다. 스타일 가이드에 따라 이러한 값들은 테마 파일로 옮겨 일관성을 유지하고 관리를 용이하게 하는 것이 좋습니다.
  • NavKey 타입 정의에 중요한 문제가 있습니다. 이전 키인 'home'이 타입에 남아있어 communityStore의 초기 상태와 충돌을 일으킵니다. 이로 인해 페이지 로드 시 버그가 발생할 수 있으므로 반드시 수정이 필요합니다.

자세한 내용은 각 파일에 남긴 코멘트를 참고해주세요.

}

export type NavKey = 'home' | 'photo' | 'route' | 'run';
export type NavKey = 'home' | 'photo' | 'route' | 'run' | 'all';

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

critical

NavKey 타입에 더 이상 사용되지 않는 'home'이 남아있습니다. CommunityNavigator.tsx에서는 'home''all'로 대체되었습니다. 이 불일치로 인해 communityStore의 초기 상태(activeNav: 'home')가 유효하지 않게 되어, 커뮤니티 페이지 첫 로드 시 네비게이션 바의 활성 상태가 올바르게 표시되지 않는 등 예기치 않은 동작을 유발할 수 있습니다. NavKey에서 'home'을 제거하고, communityStore.ts의 초기 상태를 'all'과 같은 유효한 값으로 변경해야 합니다.

Suggested change
export type NavKey = 'home' | 'photo' | 'route' | 'run' | 'all';
export type NavKey = 'photo' | 'route' | 'run' | 'all';

tabs,
children,
topOffset = 72,
topOffset = 56,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

topOffset의 기본값으로 사용된 60은 매직 넘버입니다. 1 스타일 가이드에 따라, 이러한 값은 테마 파일(theme.ts)이나 상수 파일에 명명된 상수로 정의하여 사용하는 것이 좋습니다. 예를 들어, theme.layout.headerHeight 와 같이 정의하고 이를 참조할 수 있습니다.

Style Guide References

Footnotes

  1. 매직 넘버(의미를 알 수 없는 숫자)는 코드 가독성과 유지보수성을 해치므로, 이름 있는 상수로 치환해야 합니다.

import type { NavKey } from '@/types/community';
import styled from '@emotion/styled';

type BaseProps = React.ComponentProps<typeof AppLayout>;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Props 타입에서 더 이상 사용되지 않는 activeNav가 제거되었어야 하지만, 이전 코드(type Props = BaseProps & { activeNav?: NavKey };)에서 NavKey 타입이 types/community에서 import 되고 있었습니다. 현재 코드에서는 NavKey import가 제거되었지만, CommunityNavigator 내부에서 NavKey를 export하고 있으므로, 이 컴포넌트의 Props 타입도 CommunityNavigator에서 export한 NavKey를 사용하는 것이 타입 안정성 측면에서 더 명확할 수 있습니다. 현재 구조 변경으로 인해 이 prop이 필요없어졌지만, 추후 비슷한 패턴을 사용할 때 참고하시면 좋을 것 같습니다.

gap: 2px;
const TabButton = styled.button<{ active?: boolean }>`
${({ theme }) => theme.typography.small};
height: 36px;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

TabButton의 높이로 하드코딩된 36px는 매직 넘버입니다. 1 이 값은 theme.ts에 상수로 정의하고 (예: theme.sizes.tabHeight) 참조하는 것이 좋습니다. 이렇게 하면 디자인 시스템의 일관성을 유지하고 향후 변경이 용이해집니다.

Style Guide References

Footnotes

  1. 매직 넘버(의미를 알 수 없는 숫자)는 코드 가독성과 유지보수성을 해치므로, 이름 있는 상수로 치환해야 합니다.

Comment on lines +82 to +85
transition:
background 0.15s ease,
color 0.15s ease,
border-color 0.15s ease;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

transition 속성에 사용된 0.15s는 하드코딩된 값입니다. 1 theme.ts에 정의된 transition 값을 (예: theme.transition.fast) 사용하면 앱 전체의 애니메이션 속도를 일관되게 관리할 수 있습니다.

  transition:
    background ${({ theme }) => theme.transition.fast},
    color ${({ theme }) => theme.transition.fast},
    border-color ${({ theme }) => theme.transition.fast};

Style Guide References

Footnotes

  1. 재사용 가능한 값들은 테마 또는 상수 파일에서 관리하여 일관성을 유지하고 재사용성을 높여야 합니다.

@FlashingFuture FlashingFuture merged commit fccd697 into main Sep 21, 2025
3 checks passed
@FlashingFuture FlashingFuture deleted the refactor/react-query branch September 21, 2025 03:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎨style ui, 스타일

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant