fix: switch to @iarna/toml as toml parser, handle raw dates in datetime field (#715)
This commit is contained in:
committed by
GitHub
parent
804c09415b
commit
95e64792dd
@ -42,7 +42,7 @@ function convertMuiTextFieldProps({
|
||||
};
|
||||
}
|
||||
|
||||
const DateTimeControl: FC<WidgetControlProps<string, DateTimeField>> = ({
|
||||
const DateTimeControl: FC<WidgetControlProps<string | Date, DateTimeField>> = ({
|
||||
field,
|
||||
label,
|
||||
value,
|
||||
@ -142,6 +142,10 @@ const DateTimeControl: FC<WidgetControlProps<string, DateTimeField>> = ({
|
||||
valueToParse = defaultValue;
|
||||
}
|
||||
|
||||
if (typeof valueToParse !== 'string') {
|
||||
return valueToParse;
|
||||
}
|
||||
|
||||
return format ? parse(valueToParse, format, new Date()) : parseISO(valueToParse);
|
||||
}, [defaultValue, format, internalValue]);
|
||||
|
||||
|
@ -3,7 +3,7 @@ import React from 'react';
|
||||
import type { DateTimeField, WidgetPreviewProps } from '@staticcms/core/interface';
|
||||
import type { FC } from 'react';
|
||||
|
||||
const DatePreview: FC<WidgetPreviewProps<string, DateTimeField>> = ({ value }) => {
|
||||
const DatePreview: FC<WidgetPreviewProps<string | Date, DateTimeField>> = ({ value }) => {
|
||||
return <div>{value ? value.toString() : null}</div>;
|
||||
};
|
||||
|
||||
|
@ -6,7 +6,10 @@ import { localToUTC } from './utc.util';
|
||||
|
||||
import type { DateTimeField, FieldGetDefaultMethod } from '@staticcms/core/interface';
|
||||
|
||||
const getDefaultValue: FieldGetDefaultMethod<string, DateTimeField> = (defaultValue, field) => {
|
||||
const getDefaultValue: FieldGetDefaultMethod<string | Date, DateTimeField> = (
|
||||
defaultValue,
|
||||
field,
|
||||
) => {
|
||||
if (isNotNullish(defaultValue)) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import schema from './schema';
|
||||
|
||||
import type { DateTimeField, WidgetParam } from '@staticcms/core/interface';
|
||||
|
||||
const DateTimeWidget = (): WidgetParam<string, DateTimeField> => {
|
||||
const DateTimeWidget = (): WidgetParam<string | Date, DateTimeField> => {
|
||||
return {
|
||||
name: 'datetime',
|
||||
controlComponent,
|
||||
|
@ -29,7 +29,7 @@ function handleSummary(
|
||||
label: string,
|
||||
item: ValueOrNestedValue,
|
||||
): string {
|
||||
if (typeof item === 'object' && !Array.isArray(item)) {
|
||||
if (typeof item === 'object' && !(item instanceof Date) && !Array.isArray(item)) {
|
||||
const labeledItem: EntryData = {
|
||||
...item,
|
||||
fields: {
|
||||
@ -151,7 +151,9 @@ const ListItem: FC<ListItemProps> = ({
|
||||
}
|
||||
|
||||
const labelFieldValue =
|
||||
typeof objectValue === 'object' && !Array.isArray(objectValue)
|
||||
typeof objectValue === 'object' &&
|
||||
!(objectValue instanceof Date) &&
|
||||
!Array.isArray(objectValue)
|
||||
? objectValue[labelField.name]
|
||||
: objectValue;
|
||||
|
||||
|
Reference in New Issue
Block a user