From 4c31d81ed1df9113d6d003e5453870585ba2d5bb Mon Sep 17 00:00:00 2001 From: npmrun <1549469775@qq.com> Date: Tue, 21 Apr 2026 01:22:34 +0800 Subject: [PATCH] feat(home): enhance user experience with new sections and quick create button - Introduced `GuestHomeSection` and `LoggedInHomeSection` components to provide tailored content for guests and logged-in users. - Added a quick create button for logged-in users to facilitate easy post creation. - Updated the AppShell component to include computed properties for visibility of the quick create button based on user login status. - Refactored the main index page to utilize the new components, improving the overall layout and user engagement. - Implemented a new utility function for normalizing post slugs to ensure consistent URL formatting. This update significantly enhances the homepage experience for both guests and registered users, promoting user interaction and content creation. --- app/components/AppShell.vue | 18 +- app/components/home/GuestHomeSection.vue | 209 ++++++++++++++++ app/components/home/LoggedInHomeSection.vue | 121 ++++++++++ app/layouts/public.vue | 76 ++++-- app/pages/index/index.vue | 268 +-------------------- app/pages/me/admin/index.vue | 67 ++++++ app/pages/me/index.vue | 27 +-- app/pages/me/posts/[id].vue | 169 ++++++++----- app/pages/me/posts/index.vue | 81 ++++++- app/pages/me/posts/new.vue | 174 +++++++++---- app/utils/post-slug.ts | 16 ++ packages/drizzle-pkg/db.sqlite | Bin 147456 -> 147456 bytes .../[publicSlug]/posts/[postSlug]/comments.post.ts | 2 + .../[publicSlug]/[shareToken]/comments.post.ts | 2 + server/service/comment-notify/index.test.ts | 113 ++++++--- server/service/comment-notify/index.ts | 80 +++--- 16 files changed, 946 insertions(+), 477 deletions(-) create mode 100644 app/components/home/GuestHomeSection.vue create mode 100644 app/components/home/LoggedInHomeSection.vue create mode 100644 app/pages/me/admin/index.vue create mode 100644 app/utils/post-slug.ts diff --git a/app/components/AppShell.vue b/app/components/AppShell.vue index f50b98c..11098c2 100644 --- a/app/components/AppShell.vue +++ b/app/components/AppShell.vue @@ -62,6 +62,7 @@ function navActive(to: string) { } const consoleNavActive = computed(() => navActive('/me')) +const showQuickCreate = computed(() => loggedIn.value && initialized.value) const accountMenuItems = computed(() => { const u = user.value @@ -86,8 +87,7 @@ const accountMenuItems = computed(() => { } if (u.role === 'admin') { groups.push([ - { label: '应用配置', icon: 'i-lucide-sliders-horizontal', to: '/me/admin/config' }, - { label: '用户管理', icon: 'i-lucide-users', to: '/me/admin/users' }, + { label: '管理员中心', icon: 'i-lucide-shield-check', to: '/me/admin' }, ]) } return groups @@ -180,6 +180,17 @@ async function logout() {