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

Layout system #6

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Layout system #6

wants to merge 6 commits into from

Conversation

cjhih456
Copy link
Collaborator

@cjhih456 cjhih456 commented Jan 1, 2025

페이지 단위별 Layout을 설정/활용하기 위해 설정하였습니다.

@cjhih456 cjhih456 requested a review from virere January 1, 2025 13:33
@cjhih456 cjhih456 self-assigned this Jan 1, 2025
@cjhih456
Copy link
Collaborator Author

cjhih456 commented Jan 2, 2025

해당 PK에서 작업된 내용은 다음과 같습니다.

  1. 공통 코드의 양을 줄이고 추후 page 전환시 발생하는 애니메이션 적용을 위해 layout개발

@cjhih456 cjhih456 mentioned this pull request Jan 2, 2025
children?: ReactNode
}

export default function SecondaryLayout({ isDark, children }: SecondaryLayoutProps) {
Copy link

Choose a reason for hiding this comment

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

컴포넌트명이 조금 불분명해보여요. 좀더 구체적인 이름이면 좋을 것 같습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

넵.. 급하게 하다보니. ㅠ 변경하도록 하겠습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

해당 레이아웃은 회원가입쪽 에서만 사용되는 것을 확인하여 SignupLayout으로 수정하였습니다.

Comment on lines 50 to 56
export const BodyContentShellCss = css({
'--layout-container-side-padding': '32px',
padding: '20px var(--layout-container-side-padding) 60px',
margin: '0 auto 15px',
maxWidth: '978px',
overflow: 'hidden',
})
Copy link

Choose a reason for hiding this comment

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

css 고수 되시겠네요 클론하다가 ㅋㅋ

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

많은 요소가 녹아있어서 너무 힘든 것 같아요.. ㅠ

Comment on lines +61 to +63
return <BaseLayout>{page}</BaseLayout>
}
Copy link

Choose a reason for hiding this comment

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

app.tsx 에서 BaseLayout 컴포넌트로 씌우는 것과 어떤 차이가 있나요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

_app.tsx에서 바로 씌울경우 다른 페이지에서 nest형식으로 이루어지는 layout의 경우 테마자체가 변경되는 것을 확인하였습니다.
그래서 BaseLayout에는 css의 color속성을 변경할 수 있는 defaultColor를 props로 전달해 주고 있습니다.

추가) BaseLayout의 경우 아직은 fix된 부분은 아닙니다. 임시로 나눠둔것이 더 크다고 보시면 되요.
각 페이지들의 구성을 더 봐야 할것 같습니다.. ㅠ

}

function App({ Component, pageProps }: AppPropsWithLayout) {
const getLayout = Component.getLayout ?? ((page: ReactElement) => page)
Copy link

Choose a reason for hiding this comment

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

페이지별로 레이아웃 구성을 다르게 해야할 니즈라면 이 패턴보다는, 레이아웃 패턴과 그 패턴에 속하는 페이지를 상수로 정의하고 App 에서 페이지마다 다른 레이아웃 컴포넌트를 씌워주는 패턴이 더 직관적이고 읽기에 쉬울 것 같습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

위 댓글에 있듯, 다른 페이지들의 레이아웃 구성을 확인해 봐야 할것같습니다.
현재로선 index를 제외한 signup 절차의 경우 SecondaryLayout을 활용하고 있습니다.

추후 레이아웃 시스템에 대한 정립이 이루어지면, 해당 부분도 고려해보도록 하겠습니다. 🙇

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.

2 participants