Skip to content

[DEV] 배경화면 관련 스타일 변경#85

Open
eun0903 wants to merge 8 commits intodevelopfrom
dev/background-style
Open

[DEV] 배경화면 관련 스타일 변경#85
eun0903 wants to merge 8 commits intodevelopfrom
dev/background-style

Conversation

@eun0903
Copy link
Collaborator

@eun0903 eun0903 commented Mar 16, 2026

🔗 관련 이슈

closed #79

✨ 요약

저장한 매거진 페이지와 둘러보기 페이지의 배경화면 스타일을 변경합니다.

📝 작업 내용

스크린샷 2026-03-16 19 54 06 스크린샷 2026-03-16 19 54 14

@eun0903 eun0903 self-assigned this Mar 16, 2026
@vercel
Copy link

vercel bot commented Mar 16, 2026

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

Project Deployment Actions Updated (UTC)
mine Ready Ready Preview, Comment Mar 16, 2026 11:32am

@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!

이 PR은 매거진 관련 페이지의 배경 스타일을 개선하고, 사용자가 매거진 커버 이미지를 직접 변경할 수 있는 기능을 제공하여 사용자 경험을 향상시키는 데 중점을 둡니다. 전반적인 시각적 디자인을 업데이트하고, 이미지 업로드 및 커버 패치 기능을 추가하여 콘텐츠 관리의 유연성을 높였습니다.

Highlights

  • API 변경: uploadImage API의 반환 타입을 imageUrl을 포함하도록 변경하고, 매거진 커버 이미지를 업데이트하는 새로운 patchMagazineCover API를 추가했습니다.
  • 화면 설정 기능 개선: 사용자가 매거진 커버 이미지를 변경할 수 있도록 ScreenSettings 컴포넌트에 patchMagazineCover 기능을 통합하고, ScreenSettings를 새로운 모달 컴포넌트 ScreenSettingsModal로 리팩토링했습니다.
  • UI/UX 개선: ExplorePageSavedMagazinePage에 새로운 배경 스타일을 적용하고, ExploreGrid, ExploreItem, SavedMagazineItem의 스타일을 업데이트하여 전반적인 시각적 디자인을 개선했습니다.
  • 설정 모달 변경: SettingsModal에서 ScreenSettings 탭 및 렌더링을 제거하여 설정 메뉴를 간소화했습니다.
  • 아이콘 및 컴포넌트 추가: wand_stars.svg 아이콘의 채우기 색상을 currentColor를 사용하도록 수정하고, SectionContentScreenSettingsModal을 열기 위한 버튼을 추가했습니다.
Changelog
  • Mine/src/api/image.ts
    • uploadImage 함수의 반환 타입이 string에서 { imageUrl: string }으로 변경되었습니다.
  • Mine/src/api/magazine.ts
    • 매거진 커버 이미지를 업데이트하는 patchMagazineCover 함수가 추가되었습니다.
  • Mine/src/components/settings/ScreenSettings.tsx
    • usePatchMagazineCover 훅을 임포트하고, 이미지 업로드 후 매거진 커버를 패치하는 로직이 추가되었습니다.
    • 버튼의 Tailwind CSS 클래스가 업데이트되어 새로운 디자인 시스템을 반영했습니다.
    • IconWandStarsstroke-current 속성이 제거되었습니다.
  • Mine/src/components/settings/ScreenSettingsModal.tsx
    • ScreenSettings 컴포넌트를 포함하는 새로운 모달 컴포넌트가 추가되었습니다.
  • Mine/src/components/settings/SettingsModal.tsx
    • ScreenSettings 컴포넌트 임포트가 제거되었고, 화면 설정 탭 및 해당 콘텐츠 렌더링 로직이 삭제되었습니다.
    • activeTab 상태에서 'screen' 옵션이 제거되었습니다.
  • Mine/src/hooks/usePatchMagazineCover.ts
    • patchMagazineCover API를 사용하는 새로운 usePatchMagazineCover React Query 훅이 추가되었습니다.
  • Mine/src/icon/wand_stars.svg
    • SVG 내부의 fill 속성이 #D9D9D9에서 currentColor로 변경되었습니다.
  • Mine/src/pages/magazine/ExplorePage.tsx
    • 배경 이미지(explorebg.jpg), 어두운 오버레이, 상단 흰색 그라디언트가 추가되어 페이지의 시각적 스타일이 변경되었습니다.
    • 사이드바 상태(isOpen)에 따라 콘텐츠의 marginLeft가 동적으로 조정되도록 변경되었습니다.
  • Mine/src/pages/magazine/SavedMagazinePage.tsx
    • 배경 이미지(savedbg.jpg)와 어두운 오버레이가 추가되어 페이지의 시각적 스타일이 변경되었습니다.
    • 매거진 카드 레이아웃 및 페이지네이션 로직이 업데이트되었습니다.
  • Mine/src/pages/magazine/components/ExploreGrid.tsx
    • 그리드 레이아웃이 Tailwind CSS 클래스 대신 인라인 스타일을 사용하여 gridTemplateColumnsgap을 명시적으로 설정하도록 변경되었습니다.
  • Mine/src/pages/magazine/components/ExploreItem.tsx
    • div 요소에 justify-end items-end 클래스가 추가되었고, 제목(p 태그)에서 mt-auto ml-auto 클래스가 제거되었습니다.
  • Mine/src/pages/magazine/components/SavedMagazineItem.tsx
    • div 요소의 w, h, p 클래스가 구체적인 픽셀 값으로 변경되었고, 폰트 패밀리가 [MaruBuri]에서 notoserif로 변경되었습니다.
  • Mine/src/pages/magazine/components/SectionContent.tsx
    • useState, IconWandStars, ScreenSettingsModal이 임포트되었고, 화면 설정 모달의 상태를 관리하는 isScreenSettingsOpen 상태가 추가되었습니다.
    • 페이지 하단에 ScreenSettingsModal을 열기 위한 버튼이 추가되었고, 모달이 렌더링되도록 구현되었습니다.
Activity
  • 현재까지 이 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.

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

안녕하세요. 배경화면 관련 스타일 변경 PR을 검토했습니다. 전반적으로 저장한 매거진 페이지와 둘러보기 페이지의 배경화면 스타일을 개선하는 좋은 변경이라고 생각합니다. 몇 가지 개선점을 제안드립니다. ScreenSettings.tsx에서 이미지 업로드 시 사용자에게 혼동을 줄 수 있는 토스트 메시지가 표시되는 문제가 있으며, setTimeout 사용 시 잠재적인 메모리 누수 위험이 있습니다. ExplorePage.tsx에서는 다른 컴포넌트와의 일관성을 위해 인라인 스타일 대신 Tailwind CSS 클래스를 사용하는 것이 좋겠습니다. 마지막으로 SavedMagazinePage.tsx의 페이지네이션 로직에 오류가 있어 수정이 필요해 보입니다. 자세한 내용은 각 파일의 주석을 참고해주세요.

Comment on lines +29 to 32
const { imageUrl } = await uploadImage(file)
await patchCover({ id: Number(magazineId), coverImageUrl: imageUrl })
setShowToast(true)
setTimeout(() => setShowToast(false), 3000)

Choose a reason for hiding this comment

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

medium

이미지 업로드 후 표시되는 토스트 메시지가 '무드보드가 생성되었습니다.'로 고정되어 있어 사용자에게 혼란을 줄 수 있습니다. 실제 동작은 커버 이미지를 변경하는 것이므로, '커버 이미지가 변경되었습니다.'와 같이 보다 정확한 메시지를 보여주는 것이 좋습니다.

이를 위해 토스트 메시지를 상태로 관리하는 것을 고려해 보세요. 예를 들어, const [toastMessage, setToastMessage] = useState('')와 같이 상태를 추가하고, 각 작업에 맞는 메시지를 설정한 후 Toast 컴포넌트에 전달할 수 있습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

수정해야할까요?

const { imageUrl } = await uploadImage(file)
await patchCover({ id: Number(magazineId), coverImageUrl: imageUrl })
setShowToast(true)
setTimeout(() => setShowToast(false), 3000)

Choose a reason for hiding this comment

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

medium

setTimeout을 사용하여 토스트를 숨기는 방식은 컴포넌트가 언마운트된 후에도 타이머가 실행되어 메모리 누수나 에러를 유발할 수 있습니다. useEffect 훅을 사용하여 컴포넌트가 언마운트될 때 타이머를 정리(cleanup)하는 것이 더 안전하고 권장되는 방법입니다. 이 패턴은 handleConfirm 함수(45행)에서도 사용되고 있으니 함께 개선하는 것을 고려해 보세요.

다음은 useEffect를 사용한 예시입니다:

useEffect(() => {
  if (showToast) {
    const timerId = setTimeout(() => {
      setShowToast(false);
    }, 3000);
    return () => clearTimeout(timerId);
  }
}, [showToast]);

이렇게 수정하면 각 핸들러 함수에서는 setShowToast(true)만 호출하면 됩니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

수정해야할까요?

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.

[DEV] 배경화면 관련 스타일 변경

1 participant