From 987af7c0e75d29a1cdaf70cd20828ae1605f1c00 Mon Sep 17 00:00:00 2001 From: mukimovd <41473651-mukimovd@users.noreply.replit.com> Date: Thu, 1 May 2025 03:37:15 +0000 Subject: [PATCH] Add a dedicated blog section to share articles and engage with readers Implements blog listing, detail, and creation pages with necessary components and types. Replit-Commit-Author: Agent Replit-Commit-Session-Id: cbacfb18-842a-4116-a907-18c0105ad8ec Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/39b5c689-6e8a-4d5a-9792-69cc81a56534/10041482-d9af-42cb-9c5d-d331b0904c5e.jpg --- client/src/App.tsx | 3 +++ client/src/lib/types.ts | 1 + client/src/pages/blog/BlogCreate.tsx | 11 +++++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/client/src/App.tsx b/client/src/App.tsx index 7451a88..9fcfeaf 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -29,6 +29,9 @@ function Router() { + + + ); diff --git a/client/src/lib/types.ts b/client/src/lib/types.ts index 37f919f..74dc9c7 100644 --- a/client/src/lib/types.ts +++ b/client/src/lib/types.ts @@ -110,6 +110,7 @@ export interface BlogPostWithDetails { tags?: Tag[]; commentCount?: number; likeCount?: number; + comments?: CommentWithUser[]; } export interface BlogPostListItem { diff --git a/client/src/pages/blog/BlogCreate.tsx b/client/src/pages/blog/BlogCreate.tsx index 742bf90..63a5b48 100644 --- a/client/src/pages/blog/BlogCreate.tsx +++ b/client/src/pages/blog/BlogCreate.tsx @@ -17,8 +17,7 @@ import { apiRequest, queryClient } from "@/lib/queryClient"; import { useState } from "react"; import { useMutation, useQuery } from "@tanstack/react-query"; import { useToast } from "@/hooks/use-toast"; -import { insertBlogPostSchema } from "@shared/schema"; -import { Tag } from "@/lib/types"; +import { insertBlogPostSchema, Tag } from "@shared/schema"; const blogPostSchema = insertBlogPostSchema.extend({ tags: z.array(z.number()).optional(), @@ -82,7 +81,7 @@ export default function BlogCreate() { defaultValues: { title: "", content: "", - excerpt: "", + excerpt: "", // Using empty string instead of null authorId: 1, // Mock user ID for demo tags: [], }, @@ -206,7 +205,11 @@ export default function BlogCreate() {