diff --git a/src/pages/CreateRollingPaperPage/CreateRollingPaperPage.jsx b/src/pages/CreateRollingPaperPage/CreateRollingPaperPage.jsx index 905e2e4..85b76b5 100644 --- a/src/pages/CreateRollingPaperPage/CreateRollingPaperPage.jsx +++ b/src/pages/CreateRollingPaperPage/CreateRollingPaperPage.jsx @@ -95,7 +95,7 @@ const CreateRollingPaperPage = () => { {isCreatingNewPost && } diff --git a/src/pages/CreateRollingPaperPage/CreateRollingPaperPage.module.scss b/src/pages/CreateRollingPaperPage/CreateRollingPaperPage.module.scss index 8a30ce3..23779f0 100644 --- a/src/pages/CreateRollingPaperPage/CreateRollingPaperPage.module.scss +++ b/src/pages/CreateRollingPaperPage/CreateRollingPaperPage.module.scss @@ -12,8 +12,13 @@ $wrapper-desktop-width: 720px; &__button-area { display: flex; - flex-direction: row; - gap: 20px; + flex-direction: column; + gap: 30px; + + @include mobile { + flex-direction: row; + gap:20px; + } } &__submit { @@ -39,7 +44,7 @@ $wrapper-desktop-width: 720px; &:disabled { background-color: var(--color-gray-300); - cursor: auto; + cursor: not-allowed; } } @@ -49,7 +54,7 @@ $wrapper-desktop-width: 720px; align-items: center; justify-content: center; gap: 10px; - width: 20%; + width: 100%; padding: 14px 0; background-color: var(--color-white); border: 1px solid var(--color-purple-600); diff --git a/src/pages/CreateRollingPaperPage/components/BackgroundField.jsx b/src/pages/CreateRollingPaperPage/components/BackgroundField.jsx index e9e4f5e..67a275c 100644 --- a/src/pages/CreateRollingPaperPage/components/BackgroundField.jsx +++ b/src/pages/CreateRollingPaperPage/components/BackgroundField.jsx @@ -7,6 +7,9 @@ import ImagePickArea from './ImagePickArea'; const BackgroundField = ({ formDataChange, setNewImageFileObject }) => { const [backgroundType, setBackgroundType] = useState(null); + const showColorPickArea = backgroundType === 'color'; + const showImagePickArea = backgroundType === 'image'; + return (
@@ -17,18 +20,16 @@ const BackgroundField = ({ formDataChange, setNewImageFileObject }) => { - {backgroundType === 'color' && ( - - )} - {backgroundType === 'image' && ( - - )} + +
); }; diff --git a/src/pages/CreateRollingPaperPage/components/ColorPickArea.jsx b/src/pages/CreateRollingPaperPage/components/ColorPickArea.jsx index c7f12b3..0172c2f 100644 --- a/src/pages/CreateRollingPaperPage/components/ColorPickArea.jsx +++ b/src/pages/CreateRollingPaperPage/components/ColorPickArea.jsx @@ -1,5 +1,5 @@ import styles from './ColorPickArea.module.scss'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { useModal } from '../../../hooks/useModal'; import ColorPickerModal from './ColorPickerModal'; import ColorSwatch from './ColorSwatch'; @@ -8,7 +8,7 @@ import { getColorImageBlob } from '../../../utils/getColorImageBlob'; const DEFAULT_COLOR_KEY = ['#FFE2AD', '#ECD9FF', '#B1E4FF', '#D0F5C3']; -const ColorPickArea = ({ formDataChange, setNewImageFileObject }) => { +const ColorPickArea = ({ formDataChange, setNewImageFileObject, showColorPickArea }) => { const [selectedColor, setSelectedColor] = useState(null); const [customColorList, setCustomColorList] = useState([null, null, null]); const { showModal, closeModal } = useModal(); @@ -34,11 +34,24 @@ const ColorPickArea = ({ formDataChange, setNewImageFileObject }) => { if (prev.includes(hexColor)) return prev; return [hexColor, ...prev.slice(0, 2)]; }); + handleColorSelect(hexColor); closeModal(); }; + useEffect(() => { + if (!showColorPickArea) { + setSelectedColor(null); + setNewImageFileObject(null); + } else { + handleColorSelect(DEFAULT_COLOR_KEY[0]); + } + }, [showColorPickArea]); + return ( -
+
{/* 기본 색상 선택 팔레트 */}
diff --git a/src/pages/CreateRollingPaperPage/components/ColorSwatch.module.scss b/src/pages/CreateRollingPaperPage/components/ColorSwatch.module.scss index 8ca6950..414b8b9 100644 --- a/src/pages/CreateRollingPaperPage/components/ColorSwatch.module.scss +++ b/src/pages/CreateRollingPaperPage/components/ColorSwatch.module.scss @@ -22,6 +22,7 @@ cursor: pointer; overflow: hidden; transition: transform 0.3s ease; + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); &:hover { transform: scale(1.1); } diff --git a/src/pages/CreateRollingPaperPage/components/ImagePickArea.jsx b/src/pages/CreateRollingPaperPage/components/ImagePickArea.jsx index 9da5dfe..23dd110 100644 --- a/src/pages/CreateRollingPaperPage/components/ImagePickArea.jsx +++ b/src/pages/CreateRollingPaperPage/components/ImagePickArea.jsx @@ -1,11 +1,11 @@ import styles from './ImagePickArea.module.scss'; -import { useRef, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { useApi } from '@/hooks/useApi'; import { getBackgroundImages } from '@/apis/backgroundImagesApi'; import AddItemButton from './AddItemButton'; import ImageSwatch from './ImageSwatch'; -const ImagePickArea = ({ formDataChange, setNewImageFileObject }) => { +const ImagePickArea = ({ formDataChange, setNewImageFileObject, showImagePickArea }) => { const [selectedImageUrl, setSelectedImageUrl] = useState(null); const [customImageFileList, setCustomImageFileList] = useState([]); const [customImagePreviewUrlList, setCustomImagePreviewUrlList] = useState([]); @@ -38,6 +38,7 @@ const ImagePickArea = ({ formDataChange, setNewImageFileObject }) => { const urlToRevoke = next[next.length - 1]; URL.revokeObjectURL(urlToRevoke); } + handleImageSelect(next[0]); return next.slice(0, 3); }); }; @@ -59,8 +60,20 @@ const ImagePickArea = ({ formDataChange, setNewImageFileObject }) => { fileInputRef.current.click(); }; + useEffect(() => { + if (!showImagePickArea) { + setSelectedImageUrl(null); + setNewImageFileObject(null); + } else { + handleImageSelect(backgroundImageURL[0]); + } + }, [showImagePickArea]); + return ( -
+
{/* 기본 색상 선택 팔레트 */}
diff --git a/src/pages/CreateRollingPaperPage/components/ImageSwatch.module.scss b/src/pages/CreateRollingPaperPage/components/ImageSwatch.module.scss index f27865d..30ddf6e 100644 --- a/src/pages/CreateRollingPaperPage/components/ImageSwatch.module.scss +++ b/src/pages/CreateRollingPaperPage/components/ImageSwatch.module.scss @@ -31,6 +31,7 @@ cursor: pointer; overflow: hidden; transition: transform 0.3s ease; + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); &:hover { transform: scale(1.1); }