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);
}