Skip to content

Commit dd4756b

Browse files
committed
fix: send null for optional dimensions
1 parent 93c60c1 commit dd4756b

6 files changed

Lines changed: 35 additions & 36 deletions

File tree

src/app/art/[id]/edit/page.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ function FieldWrapper({ children }: { children: React.ReactNode }) {
2525
return <div className="flex flex-col gap-2">{children}</div>;
2626
}
2727

28-
function toOptionalNumber(value: string) {
29-
return value.trim() === "" ? undefined : Number(value);
28+
function toNullableNumber(value: string) {
29+
const trimmed = value.trim();
30+
return trimmed === "" ? null : Number(trimmed);
3031
}
3132

3233
function toDate(value: string | null) {
@@ -68,9 +69,9 @@ function ArtEditForm({ artwork, artworkId }: { artwork: ArtworkDetail; artworkId
6869
description: description.trim(),
6970
caution: notes.trim(),
7071
sizeType: artwork.sizeType ?? "STANDARD",
71-
widthCm: toOptionalNumber(width),
72-
heightCm: toOptionalNumber(height),
73-
depthCm: toOptionalNumber(depth),
72+
widthCm: toNullableNumber(width),
73+
heightCm: toNullableNumber(height),
74+
depthCm: toNullableNumber(depth),
7475
createdDate: toDateString(date),
7576
isPublic,
7677
availableRegions: selectedRegions,

src/app/art/new/page.tsx

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ function getErrorMessage(error: unknown) {
3030
return error instanceof Error ? error.message : "작품 등록에 실패했습니다.";
3131
}
3232

33-
function toOptionalNumber(value: string) {
33+
function toNullableNumber(value: string) {
3434
const trimmed = value.trim();
35-
return trimmed === "" ? undefined : Number(trimmed);
35+
return trimmed === "" ? null : Number(trimmed);
3636
}
3737

3838
export default function ArtCreatePage() {
@@ -82,18 +82,14 @@ export default function ArtCreatePage() {
8282

8383
try {
8484
const uploadedImages = await Promise.all(images.map(image => uploadImage(image.file)));
85-
const widthCm = toOptionalNumber(width);
86-
const heightCm = toOptionalNumber(height);
87-
const depthCm = toOptionalNumber(depth);
88-
8985
await createArtworkMutation({
9086
title: title.trim(),
9187
artworkType: artType,
9288
description: description.trim(),
9389
...(notes.trim() !== "" ? { caution: notes.trim() } : {}),
94-
...(widthCm !== undefined ? { widthCm } : {}),
95-
...(heightCm !== undefined ? { heightCm } : {}),
96-
...(depthCm !== undefined ? { depthCm } : {}),
90+
widthCm: toNullableNumber(width),
91+
heightCm: toNullableNumber(height),
92+
depthCm: toNullableNumber(depth),
9793
...(date ? { createdDate: date.toISOString().split("T")[0] } : {}),
9894
isPublic,
9995
imageIds: uploadedImages.map(image => image.imageId),

src/app/space/[id]/edit/page.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ function FieldWrapper({ children }: { children: React.ReactNode }) {
2424
return <div className="flex flex-col gap-2">{children}</div>;
2525
}
2626

27-
function toOptionalNumber(value: string) {
28-
return value.trim() === "" ? undefined : Number(value);
27+
function toNullableNumber(value: string) {
28+
const trimmed = value.trim();
29+
return trimmed === "" ? null : Number(trimmed);
2930
}
3031

3132
function getErrorMessage(error: unknown) {
@@ -54,9 +55,9 @@ function SpaceEditForm({ space, spaceId }: { space: SpaceDetail; spaceId: string
5455
address: address.trim(),
5556
description: description.trim(),
5657
caution: notes.trim(),
57-
widthCm: toOptionalNumber(width),
58-
heightCm: toOptionalNumber(height),
59-
depthCm: toOptionalNumber(depth),
58+
widthCm: toNullableNumber(width),
59+
heightCm: toNullableNumber(height),
60+
depthCm: toNullableNumber(depth),
6061
isPublic,
6162
}),
6263
onSuccess: () => {

src/app/space/new/page.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ function FieldWrapper({ children }: { children: React.ReactNode }) {
2525
return <div className="flex flex-col gap-2">{children}</div>;
2626
}
2727

28-
function toOptionalNumber(value: string) {
29-
return value.trim() === "" ? undefined : Number(value);
28+
function toNullableNumber(value: string) {
29+
const trimmed = value.trim();
30+
return trimmed === "" ? null : Number(trimmed);
3031
}
3132

3233
function getErrorMessage(error: unknown) {
@@ -87,9 +88,9 @@ export default function SpaceCreatePage() {
8788
address,
8889
description,
8990
caution: notes,
90-
widthCm: toOptionalNumber(width),
91-
heightCm: toOptionalNumber(height),
92-
depthCm: toOptionalNumber(depth),
91+
widthCm: toNullableNumber(width),
92+
heightCm: toNullableNumber(height),
93+
depthCm: toNullableNumber(depth),
9394
isPublic,
9495
imageIds: uploadedImages.map(image => image.imageId),
9596
});

src/services/artworks.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ export interface CreateArtworkRequest {
1111

1212
sizeType?: "STANDARD" | "CUSTOM";
1313

14-
widthCm?: number;
15-
heightCm?: number;
16-
depthCm?: number;
14+
widthCm?: number | null;
15+
heightCm?: number | null;
16+
depthCm?: number | null;
1717

1818
createdDate?: string;
1919

@@ -32,9 +32,9 @@ export interface UpdateArtworkRequest {
3232
description?: string;
3333
caution?: string;
3434
sizeType?: "STANDARD" | "CUSTOM";
35-
widthCm?: number;
36-
heightCm?: number;
37-
depthCm?: number;
35+
widthCm?: number | null;
36+
heightCm?: number | null;
37+
depthCm?: number | null;
3838
createdDate?: string;
3939
isPublic?: boolean;
4040
imageIds?: number[];

src/services/spaces.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ export interface CreateSpaceRequest {
99
address: string;
1010
description: string;
1111
caution?: string;
12-
widthCm?: number;
13-
heightCm?: number;
14-
depthCm?: number;
12+
widthCm?: number | null;
13+
heightCm?: number | null;
14+
depthCm?: number | null;
1515
isPublic?: boolean;
1616
imageIds: number[];
1717
}
@@ -22,9 +22,9 @@ export interface UpdateSpaceRequest {
2222
address?: string;
2323
description?: string;
2424
caution?: string;
25-
widthCm?: number;
26-
heightCm?: number;
27-
depthCm?: number;
25+
widthCm?: number | null;
26+
heightCm?: number | null;
27+
depthCm?: number | null;
2828
isPublic?: boolean;
2929
imageIds?: number[];
3030
}

0 commit comments

Comments
 (0)