diff --git a/src/models/post.rs b/src/models/post.rs index b60c581..604a5bd 100644 --- a/src/models/post.rs +++ b/src/models/post.rs @@ -68,6 +68,13 @@ impl Post { PostStatus::Draft => "text-gray-400 dark:text-[#9b9c9d]", } } + + pub fn status_badge_class(&self) -> &'static str { + match self.status { + PostStatus::Published => "bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-300", + PostStatus::Draft => "bg-gray-100 dark:bg-[#333] text-gray-600 dark:text-[#9b9c9d]", + } + } } #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] diff --git a/src/pages/admin/posts.rs b/src/pages/admin/posts.rs index 5ae72f2..1483241 100644 --- a/src/pages/admin/posts.rs +++ b/src/pages/admin/posts.rs @@ -105,7 +105,7 @@ pub fn Posts() -> Element { fn PostRow(post: Post, deleting: bool, on_delete: EventHandler) -> Element { let date_str = post.formatted_date(); let status_label = post.status_label(); - let status_class = post.status_class(); + let status_badge_class = post.status_badge_class(); rsx! { tr { class: "border-b border-gray-100 dark:border-[#333] last:border-0 hover:bg-gray-50 dark:hover:bg-[#2a2a2a] transition-colors", @@ -117,7 +117,7 @@ fn PostRow(post: Post, deleting: bool, on_delete: EventHandler) -> Element } } td { class: "px-4 py-3 text-center", - span { class: "inline-flex items-center px-2 py-0.5 rounded text-xs font-medium {status_class}", + span { class: "inline-flex items-center px-2 py-0.5 rounded text-xs font-medium {status_badge_class}", "{status_label}" } }