Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature/BAR-53] Tabs 컴포넌트 구현 #17

Merged
merged 14 commits into from
Jan 1, 2024
Merged

[Feature/BAR-53] Tabs 컴포넌트 구현 #17

merged 14 commits into from
Jan 1, 2024

Conversation

dmswl98
Copy link
Member

@dmswl98 dmswl98 commented Dec 26, 2023

Summary

구현 내용 및 작업한 내역을 요약해서 적어주세요

To Reviewers

PR을 볼 때 주의깊게 봐야하거나 말하고 싶은 점을 적어주세요

image

  • 기존에 구현해둔 Navigation 컴포넌트는 아직 디자인 쪽에서 변경 사항이 많을 것이라 전달받아 제거했어요.
  • 이전에는 path를 이용해 선택되는 탭에 따라 특정 페이지를 보이는 방식으로 구현했었지만, 다음의 이유로 상태를 이용해 구현하는 것으로 변경했어요.
    1. 페이지로 구성하게 되면 깜빡임으로 인해 사용자 입장에서 불편할 것이라 생각
    2. 디자인 부분으로 필터 느낌이 강한 컴포넌트라 생각

How To Test

PR의 기능을 확인하는 방법을 상세하게 적어주세요

@dmswl98 dmswl98 self-assigned this Dec 27, 2023
@dmswl98 dmswl98 marked this pull request as ready for review December 28, 2023 11:27

This comment was marked as outdated.

@dmswl98 dmswl98 changed the title [Feature/BAR-53] Tab 컴포넌트 구현 [Feature/BAR-53] Tabs 컴포넌트 구현 Dec 28, 2023
src/components/Tabs/TabsRoot.tsx Outdated Show resolved Hide resolved
src/components/Tabs/style.css.ts Outdated Show resolved Hide resolved
src/components/Tabs/TabsContent.tsx Outdated Show resolved Hide resolved
src/components/Tabs/index.ts Outdated Show resolved Hide resolved
src/components/Tabs/hooks/useTabsContext.ts Outdated Show resolved Hide resolved
Copy link

@YAPP-Github YAPP-Github deleted a comment from github-actions bot Dec 28, 2023
@YAPP-Github YAPP-Github deleted a comment from github-actions bot Dec 28, 2023
@YAPP-Github YAPP-Github deleted a comment from github-actions bot Dec 28, 2023
children,
defaultValue,
}: PropsWithChildren<TabsRootProps>) => {
const [selectedTab, setSelectedTab] = useState(defaultValue);
Copy link
Contributor

Choose a reason for hiding this comment

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

@dmswl98
탭을 구현할 때 선택 요소를 단순 state로만 관리하게 되면 다음과 같은 경우들을 대응하기 어려워지더라고요!

  1. 첫진입시 '끄적이는'이 아닌 '참고하는'이 선택된 상태로 진입되어야하는 경우
  2. '참고하는'이 선택된 상태에서 다른 페이지를 이동했다가 다시 돌아왔을 때 '참고하는'이 선택된 상태여야 하는 경우

그래서 선택값에 대한 내용은 URL에 path 혹은 query로 관리하는게 어떨까요? (path로 관리하게 되면 말씀 주신 깜빡이는 이슈가 있을 것 같습니다.)

Copy link
Member

@wonjin-dev wonjin-dev left a comment

Choose a reason for hiding this comment

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

👍🏼👍🏼👍🏼

Copy link
Contributor

@miro-ring miro-ring left a comment

Choose a reason for hiding this comment

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

고생하셧습니다 ㅎㅎㅎ

Copy link

github-actions bot commented Jan 1, 2024

Comment on lines +16 to +38
export const tabsTrigger = recipe({
base: {
fontSize: '15px',
fontWeight: 500,
lineHeight: '18px',
letterSpacing: '0px',
paddingBottom: '4px',
borderBottom: '2px solid transparent',
transition: 'all 150ms ease-in-out',

':hover': {
fontWeight: 700,
},
},
variants: {
isActive: {
true: {
fontWeight: 700,
borderBottomColor: '#121212',
},
},
},
});
Copy link
Member Author

@dmswl98 dmswl98 Jan 1, 2024

Choose a reason for hiding this comment

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

📌 이슈 기록

typography sprinkles를 사용하니 isActive 값에 따라 변해야 하는 fontWeight 속성 값이 적용되지 않아요. 화면을 보니 fontWeight이 700이 되었다가 base 스타일인 500으로 변경되는 것을 확인했습니다. 추측하기로는 base 스타일로 덮어씌워지는 것 같아요. 추후 다시 리팩토링 작업이 필요할 것 같습니다.

export const tabsTrigger = recipe({
  base: [
    sprinkles({ typography: '15/Body/Medium' }),
    {
      paddingBottom: '4px',
      borderBottom: '2px solid transparent',
      transition: 'all 150ms ease-in-out',

      ':hover': {
        fontWeight: 700,
      },
    },
  ],
  variants: {
    isActive: {
      true: {
        fontWeight: 700,
        borderBottomColor: '#121212',
      },
    },
  },
});

Copy link
Contributor

Choose a reason for hiding this comment

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

@dmswl98
요거 확인해서 수정 PR 올리도록 하겠습니다!! 감사합니다 ㅎㅎ

{
padding: '16px 0 12px',
gap: '40px',
backgroundColor: COLORS['Grey/White'],
Copy link
Member Author

@dmswl98 dmswl98 Jan 1, 2024

Choose a reason for hiding this comment

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

@dongkyun-dev
color와 background도 sprinkles로 정의되어 있는데, 이미 createGlobalTheme에 정의되어 있어 상수로서 사용해도 무방할 것 같습니다!

Copy link
Contributor

Choose a reason for hiding this comment

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

@dmswl98
요게 그래서 사실 sprinkle로 둘지 고민했던 부분인데 아예 사용하지 않을 것 같다면 제거하는 것은 어떨까요!?

@dmswl98 dmswl98 merged commit 4138a56 into main Jan 1, 2024
2 of 3 checks passed
@dmswl98 dmswl98 deleted the feature/BAR-53 branch January 1, 2024 13:05
@dmswl98 dmswl98 added the feature label Jan 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants