투명한 리뷰에 사용됩니다.
@@ -79,9 +79,7 @@ const NameStep = ({ onNext, onBack }) => {
type="submit"
disabled={!name.trim()}
className={`w-full py-6 text-center text-b1 font-semibold ${
- name.trim()
- ? "bg-primary-8 text-white"
- : "bg-gray-4 text-white"
+ name.trim() ? "bg-primary-8 text-white" : "bg-gray-4 text-white"
}`}
>
확인
diff --git a/src/pages/join/components/OwnerStep.jsx b/src/pages/join/components/OwnerStep.jsx
index b11413a..7d76c7f 100644
--- a/src/pages/join/components/OwnerStep.jsx
+++ b/src/pages/join/components/OwnerStep.jsx
@@ -17,13 +17,12 @@ const OwnerStep = ({ onNext, onBack }) => {
};
return (
-
-
+
+
+
+
사회적기업의 사장님이신가요?
diff --git a/src/pages/join/components/ProfileImageStep.jsx b/src/pages/join/components/ProfileImageStep.jsx
index 92ad3d4..0873fb1 100644
--- a/src/pages/join/components/ProfileImageStep.jsx
+++ b/src/pages/join/components/ProfileImageStep.jsx
@@ -25,13 +25,11 @@ const ProfileImageStep = ({ onNext, onBack }) => {
return (
-
+
+
+
프로필사진을 설정해주세요.
diff --git a/src/pages/map/components/PlaceBottomSheet.jsx b/src/pages/map/components/PlaceBottomSheet.jsx
index 95d6491..aa7e5da 100644
--- a/src/pages/map/components/PlaceBottomSheet.jsx
+++ b/src/pages/map/components/PlaceBottomSheet.jsx
@@ -7,7 +7,13 @@ import ReviewList from "@/pages/map/components/review/ReviewList";
import useUIStore from "@/store/uiStore";
import { usePaymentStore } from "@/store/paymentStore";
-const PlaceBottomSheet = ({ place, onClose, onToggleLike, onExpandChange }) => {
+const PlaceBottomSheet = ({
+ place,
+ onClose,
+ onToggleLike,
+ onExpandChange,
+ onHeightChange,
+}) => {
const [shouldNavigateToReview, setShouldNavigateToReview] = useState(false);
const setCompanyId = usePaymentStore((s) => s.setCompanyId);
@@ -59,7 +65,8 @@ const PlaceBottomSheet = ({ place, onClose, onToggleLike, onExpandChange }) => {
useEffect(() => {
controls.start({ height: MIN_HEIGHT });
setIsExpanded(false);
- }, [controls]);
+ onHeightChange?.(MIN_HEIGHT);
+ }, [controls, onHeightChange]);
const handleTouchStart = (e) => {
if (!isMobile) return;
@@ -89,11 +96,13 @@ const PlaceBottomSheet = ({ place, onClose, onToggleLike, onExpandChange }) => {
setIsExpanded(true);
} else if (delta > 100) {
controls.start({ height: 0 }).then(() => {
+ onHeightChange?.(0);
onClose?.();
});
} else {
controls.start({ height: MIN_HEIGHT });
setIsExpanded(false);
+ onHeightChange?.(MIN_HEIGHT);
}
};
@@ -101,6 +110,7 @@ const PlaceBottomSheet = ({ place, onClose, onToggleLike, onExpandChange }) => {
if (!isMobile && !isExpanded) {
controls.start({ height: MAX_HEIGHT.current });
setIsExpanded(true);
+ onHeightChange?.(MAX_HEIGHT.current);
}
};
@@ -170,8 +180,8 @@ const PlaceBottomSheet = ({ place, onClose, onToggleLike, onExpandChange }) => {
turnOnCamera={turnOnCamera}
onCloseCamera={() => setTurnOnCamera(false)}
onCaptureSuccess={(data) => {
- setCompanyInfo(data); // 즉시 로컬 상태에 저장
- setShowConfirm(true); // 그다음 Confirm 렌더링
+ setCompanyInfo(data);
+ setShowConfirm(true);
}}
/>
)}
diff --git a/src/pages/map/components/PlaceContent.jsx b/src/pages/map/components/PlaceContent.jsx
index 6b5cb69..7c033d2 100644
--- a/src/pages/map/components/PlaceContent.jsx
+++ b/src/pages/map/components/PlaceContent.jsx
@@ -24,6 +24,7 @@ import { useState } from "react";
const PlaceContent = ({ place, onToggleLike, showMapLink = true }) => {
const userCoords = useUserCoords();
const [showToast, setShowToast] = useState(false);
+ const [isLiking, setIsLiking] = useState(false);
const handleRouteClick = (e) => {
e.preventDefault();
@@ -76,6 +77,20 @@ const PlaceContent = ({ place, onToggleLike, showMapLink = true }) => {
}
};
+ const handleLikeClick = async (e) => {
+ e.stopPropagation();
+ if (isLiking) return;
+
+ setIsLiking(true);
+ try {
+ await onToggleLike?.(place.id);
+ } catch (err) {
+ console.error("좋아요 처리 실패:", err);
+ } finally {
+ setIsLiking(false);
+ }
+ };
+
const fireIcons = {
10: IcFire10,
20: IcFire20,
@@ -157,10 +172,7 @@ const PlaceContent = ({ place, onToggleLike, showMapLink = true }) => {
)}