From cb4318ba742e83c5b238f59af77251f77b88674d Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Wed, 8 Mar 2023 11:37:24 +0100 Subject: [PATCH 1/4] Sort using the underlying DateTime timestamp --- packages/framework/src/Pages/MarkdownPost.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/framework/src/Pages/MarkdownPost.php b/packages/framework/src/Pages/MarkdownPost.php index 687e4d6bb78..28f66c60fe7 100644 --- a/packages/framework/src/Pages/MarkdownPost.php +++ b/packages/framework/src/Pages/MarkdownPost.php @@ -35,7 +35,9 @@ class MarkdownPost extends BaseMarkdownPage implements BlogPostSchema /** @return \Hyde\Foundation\Kernel\PageCollection<\Hyde\Pages\MarkdownPost> */ public static function getLatestPosts(): PageCollection { - return static::all()->sortByDesc('matter.date'); + return static::all()->sortByDesc(function (MarkdownPost $post): int { + return $post->date->dateTimeObject->getTimestamp(); + }); } public function toArray(): array From ae29443b3c6ab383ea4824e42e5cc4146d2020a3 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Wed, 8 Mar 2023 11:42:26 +0100 Subject: [PATCH 2/4] Type hint self --- packages/framework/src/Pages/MarkdownPost.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/framework/src/Pages/MarkdownPost.php b/packages/framework/src/Pages/MarkdownPost.php index 28f66c60fe7..d5dead4db9d 100644 --- a/packages/framework/src/Pages/MarkdownPost.php +++ b/packages/framework/src/Pages/MarkdownPost.php @@ -35,7 +35,7 @@ class MarkdownPost extends BaseMarkdownPage implements BlogPostSchema /** @return \Hyde\Foundation\Kernel\PageCollection<\Hyde\Pages\MarkdownPost> */ public static function getLatestPosts(): PageCollection { - return static::all()->sortByDesc(function (MarkdownPost $post): int { + return static::all()->sortByDesc(function (self $post): int { return $post->date->dateTimeObject->getTimestamp(); }); } From 31ad88596803f479dbb7089e4bfa1361f9c78e03 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Wed, 8 Mar 2023 11:42:37 +0100 Subject: [PATCH 3/4] Use null safe operator --- packages/framework/src/Pages/MarkdownPost.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/framework/src/Pages/MarkdownPost.php b/packages/framework/src/Pages/MarkdownPost.php index d5dead4db9d..5c48ebd679d 100644 --- a/packages/framework/src/Pages/MarkdownPost.php +++ b/packages/framework/src/Pages/MarkdownPost.php @@ -36,7 +36,7 @@ class MarkdownPost extends BaseMarkdownPage implements BlogPostSchema public static function getLatestPosts(): PageCollection { return static::all()->sortByDesc(function (self $post): int { - return $post->date->dateTimeObject->getTimestamp(); + return $post->date?->dateTimeObject->getTimestamp(); }); } From 13f8f450c36b3bb5d657f0f77c2c85cddb741e07 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Wed, 8 Mar 2023 11:44:59 +0100 Subject: [PATCH 4/4] Null coalesce to nought --- packages/framework/src/Pages/MarkdownPost.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/framework/src/Pages/MarkdownPost.php b/packages/framework/src/Pages/MarkdownPost.php index 5c48ebd679d..ae3ad9a91fa 100644 --- a/packages/framework/src/Pages/MarkdownPost.php +++ b/packages/framework/src/Pages/MarkdownPost.php @@ -36,7 +36,7 @@ class MarkdownPost extends BaseMarkdownPage implements BlogPostSchema public static function getLatestPosts(): PageCollection { return static::all()->sortByDesc(function (self $post): int { - return $post->date?->dateTimeObject->getTimestamp(); + return $post->date?->dateTimeObject->getTimestamp() ?? 0; }); }