import React, { useMemo, type ComponentPropsWithRef, type ReactNode } from 'react';
import { dayjs } from '@wener/common/dayjs';
import { EmptyPlaceholder } from './EmptyPlaceholder';
export const DateFormat = ({
value,
placeholder = ,
format = 'YYYY-MM-DD',
...props
}: {
value?: Date | string | number | null;
placeholder?: ReactNode;
format?: string;
} & ComponentPropsWithRef<'span'>) => {
const o = useMemo(() => {
return formatDate({ value, format });
}, [value, format]);
if (!o) {
return placeholder;
}
return {o};
};
type MaybeDate = Date | string | number | null | undefined;
function formatDate({ value, format }: { value: MaybeDate; format?: string }) {
if (!value) return '';
const d = dayjs(value);
if (!d.isValid()) {
return '';
}
return d.format(format);
}