import { DatePicker } from '@arco-design/web-react'; import React from 'react'; import { createFieldFactory } from './factory'; import type { FieldDetailComponent, FieldEditComponent } from './types'; export type DateTimeFieldValueType = string | number; export interface DateTimeFieldOptions { format?: 'iso' | 'unix' | 'timestamp'; } export const DateTimeFieldDetail: FieldDetailComponent< DateTimeFieldValueType, DateTimeFieldOptions > = React.memo((props) => { return {new Date(props.value).toLocaleString()}; }); DateTimeFieldDetail.displayName = 'DateTimeFieldDetail'; export const DateTimeFieldEdit: FieldEditComponent< DateTimeFieldValueType, DateTimeFieldOptions > = React.memo((props) => { return ( { const format = props.options.format ?? 'iso'; if (format === 'iso') { props.onChange(date.toISOString()); } else if (format === 'unix') { props.onChange(date.unix()); } else if (format === 'timestamp') { props.onChange(date.valueOf()); } }} showTime={true} /> ); }); DateTimeFieldEdit.displayName = 'DateTimeFieldEdit'; export const createDateTimeField = createFieldFactory({ detail: DateTimeFieldDetail, edit: DateTimeFieldEdit, defaultOptions: { list: { width: 180, }, }, });