From be5d15d2f86a25ee34d2146da663b953506e9c46 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Wed, 28 Feb 2024 11:43:36 +0100 Subject: [PATCH] Updated changelog + date field default value --- CHANGELOG.md | 1 - src/commands/Article.ts | 5 +++-- src/helpers/ArticleHelper.ts | 6 +++--- src/panelWebView/components/Fields/DateTimeField.tsx | 6 +++++- src/services/PagesParser.ts | 6 +++--- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63a56217..66c8f638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,6 @@ - [#747](https://github.com/estruyf/vscode-front-matter/issues/747): The `@frontmatter/extensibility` dependency now supports scripts for placeholders - [#752](https://github.com/estruyf/vscode-front-matter/issues/752): Placeholder support in default `list` field values - Support for using the `fieldCollection` field in a `block` field - - Updated the list of commands which are available in the command palette ### 🐞 Fixes diff --git a/src/commands/Article.ts b/src/commands/Article.ts index d8daeab7..667b7165 100644 --- a/src/commands/Article.ts +++ b/src/commands/Article.ts @@ -116,9 +116,10 @@ export class Article { } const cloneArticle = Object.assign({}, article); - const dateField = ArticleHelper.getModifiedDateField(article) || DefaultFields.LastModified; + const dateField = ArticleHelper.getModifiedDateField(article); try { - cloneArticle.data[dateField] = Article.formatDate(new Date()); + const fieldName = dateField?.name || DefaultFields.LastModified; + cloneArticle.data[fieldName] = Article.formatDate(new Date(), dateField?.dateFormat); return cloneArticle; } catch (e: unknown) { Notifications.error( diff --git a/src/helpers/ArticleHelper.ts b/src/helpers/ArticleHelper.ts index 2679d8f4..40861661 100644 --- a/src/helpers/ArticleHelper.ts +++ b/src/helpers/ArticleHelper.ts @@ -39,7 +39,7 @@ import { Article } from '../commands'; import { join, parse as parseFile } from 'path'; import { EditorHelper } from '@estruyf/vscode'; import sanitize from '../helpers/Sanitize'; -import { ContentType as IContentType } from '../models'; +import { Field, ContentType as IContentType } from '../models'; import { DateHelper } from './DateHelper'; import { DiagnosticSeverity, Position, window, Range } from 'vscode'; import { DEFAULT_FILE_TYPES } from '../constants/DefaultFileTypes'; @@ -378,7 +378,7 @@ export class ArticleHelper { * @param article * @returns */ - public static getModifiedDateField(article: ParsedFrontMatter | null) { + public static getModifiedDateField(article: ParsedFrontMatter | null): Field | undefined { if (!article || !article.data) { return; } @@ -386,7 +386,7 @@ export class ArticleHelper { const articleCt = ArticleHelper.getContentType(article); const modDateField = articleCt.fields.find((f) => f.isModifiedDate); - return modDateField?.name || DefaultFields.LastModified; + return modDateField; } /** diff --git a/src/panelWebView/components/Fields/DateTimeField.tsx b/src/panelWebView/components/Fields/DateTimeField.tsx index 213ea7d2..65d12916 100644 --- a/src/panelWebView/components/Fields/DateTimeField.tsx +++ b/src/panelWebView/components/Fields/DateTimeField.tsx @@ -37,7 +37,11 @@ export const DateTimeField: React.FunctionComponent = ({ const onDateChange = React.useCallback((date: Date) => { setDateValue(date); - onChange(DateHelper.format(date, format || DEFAULT_FORMAT) || ""); + if (format) { + onChange(DateHelper.format(date, format) || ""); + } else { + onChange(date.toISOString()); + } }, [format, onChange]); const showRequiredState = useMemo(() => { diff --git a/src/services/PagesParser.ts b/src/services/PagesParser.ts index d3195d2d..992dca97 100644 --- a/src/services/PagesParser.ts +++ b/src/services/PagesParser.ts @@ -193,10 +193,10 @@ export class PagesParser { ? DateHelper.tryParse(article?.data[dateField], dateFormat) : undefined; - const modifiedField = ArticleHelper.getModifiedDateField(article) || null; + const modifiedField = ArticleHelper.getModifiedDateField(article); const modifiedFieldValue = - modifiedField && article?.data[modifiedField] - ? DateHelper.tryParse(article?.data[modifiedField])?.getTime() + modifiedField?.name && article?.data[modifiedField.name] + ? DateHelper.tryParse(article?.data[modifiedField.name])?.getTime() : undefined; const staticFolder = Folders.getStaticFolderRelativePath();