Files
frontend/apps/sn/src/shared/util/util.ts
T
2026-09-02 18:10:50 +09:00

30 lines
1.0 KiB
TypeScript

import moment from "moment";
/** 빈 값과 화면의 전체 선택값 `0`을 제외하고 API 검색 파라미터를 추가한다. */
export const appendApiSearchParams = (
params: URLSearchParams,
search: Readonly<Record<string, string>>,
) => {
Object.entries(search).forEach(([key, value]) => {
const normalized = value.trim();
if (!normalized || normalized === "0") return;
params.set(key, normalized);
});
};
/** 8자리 또는 구분자가 섞인 날짜 문자열을 YYYY-MM-DD 형식으로 정규화한다. */
export const formatDate = (value?: string | null) => {
if (!value) return "";
const normalized = String(value).trim();
if (!normalized) return "";
const digits = normalized.replace(/\D/g, "");
if (digits.length === 8) {
const parsedDate = moment(digits, "YYYYMMDD", true);
return parsedDate.isValid() ? parsedDate.format("YYYY-MM-DD") : normalized;
}
const parsedDate = moment(normalized);
return parsedDate.isValid() ? parsedDate.format("YYYY-MM-DD") : normalized;
};