Skip to content
1 change: 1 addition & 0 deletions src/assets/icons/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,4 @@ export { default as User } from './page/user.svg';
export { default as Warning } from './page/warning.svg';
export { default as Wellbeing } from './page/wellbeing.svg';
export { default as Burger } from './page/burger.svg';
export { default as FallbackImage } from './page/fallback_image.svg';
1 change: 1 addition & 0 deletions src/assets/icons/page/fallback_image.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/components/common/card/CardContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ interface Props {
*/
export default function CardContainer({ variant, children, className }: Props) {
const baseLayout = {
grid: 'flex flex-col lg:w-65.5 shadow-[0_0_20px_rgba(0,0,0,0.08)] rounded-3xl overflow-hidden',
grid: 'flex flex-col w-full shadow-[0_0_20px_rgba(0,0,0,0.08)] rounded-3xl overflow-hidden',
list: 'flex justify-between items-center bg-white rounded-3xl p-6 md:w-119 lg:w-160 shadow-[0_4px_24px_0_rgba(156,180,202,0.20)]',
reservation: 'flex w-full flex-col lg:flex-row ',
}[variant];
Expand Down
4 changes: 2 additions & 2 deletions src/components/common/image-upload/ImageUpload.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Delete, PasswordHidden } from '@/assets/icons';
import { Delete, FallbackImage } from '@/assets/icons';
import { useEffect, useRef, useState } from 'react';
import imageCompression from 'browser-image-compression';
type ImageUploadProps = {
Expand Down Expand Up @@ -91,7 +91,7 @@ export default function ImageUpload({
type='button'
onClick={handleClick}
className='flex h-20 w-20 flex-col items-center justify-center gap-0.5 rounded-md border border-gray-100 bg-white px-5 py-1.5 sm:h-32 sm:w-32 sm:gap-2.5 sm:rounded-2xl sm:py-4'>
<PasswordHidden className='h-10 w-10 px-[6.67px] pt-2.5 pb-[6.14px] text-gray-400' />
<FallbackImage className='h-10 w-10 px-[6.67px] pt-2.5 pb-[6.14px] text-gray-400' />
<div className='font-sm-medium md:font-md-medium text-gray-600'>
{fileCount}/{maxFiles}
</div>
Expand Down
13 changes: 5 additions & 8 deletions src/pages/ActivityDetail/ActivityReviews.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { useState } from 'react';
import Title from '@/components/common/Title';
import Pagination from '@/components/common/pagination';
import RatingStar from '@/components/common/RatingStar';
import { Star } from '@/assets/icons';
import { useActivityReviews } from '@/hooks/queries/useActivityReviews';

Expand Down Expand Up @@ -106,14 +107,10 @@ export default function ActivityReviews({ activityId }: ActivityReviewsProps) {
<span className='font-md-bold text-gray-900'>{review.user.nickname}</span>
<span className='font-md-medium text-gray-500'>{formattedDate}</span>
</div>
<div className='mb-2 flex items-center gap-1'>
{Array.from({ length: 5 }).map((_, i) => (
<Star
key={i}
className={`h-4 w-4 ${i < Math.floor(review.rating) ? 'text-yellow-500' : 'text-gray-300'}`}
/>
))}
</div>
<RatingStar
value={review.rating}
className='mb-2 gap-1 [&_button]:h-4 [&_svg]:h-4 [&_svg]:w-4'
/>
<p className='font-md-medium text-gray-800'>{review.content}</p>
</div>
);
Expand Down
2 changes: 1 addition & 1 deletion src/pages/ActivityDetailPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ function ActivityDetailPage() {

{/* 우측 영역 - 예약 정보 (데스크톱) */}
<aside className='hidden lg:block lg:w-[384px]'>
<div className='sticky top-6'>
<div className='sticky top-24'>
{/* 상단 정보 영역 */}
<ActivityInfo
category={activity.category}
Expand Down
18 changes: 13 additions & 5 deletions src/pages/CreateActivityPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,19 @@ export default function CreateActivityPage() {
//toISOString() 하면 "2026-01-02T00:00:00.000Z" 이런 문자열이 됨
//split('T')[0] 하면 "2026-01-02"만 뽑음
// 서버가 원하는 날짜 형식 완성
const schedules = values.rows.map((row) => ({
date: row.date.toISOString().split('T')[0],
startTime: row.startTime,
endTime: row.endTime,
}));
const schedules = values.rows.map((row) => {
const d = row.date;

const yyyy = d.getFullYear();
const mm = String(d.getMonth() + 1).padStart(2, '0');
const dd = String(d.getDate()).padStart(2, '0');

return {
date: `${yyyy}-${mm}-${dd}`,
startTime: row.startTime,
endTime: row.endTime,
};
});

// 3) 최종 payload
const payload: CreateActivityRequest = {
Expand Down