From 80aeefa4bf962d8bf5be98690e8c7e0959d507ef Mon Sep 17 00:00:00 2001 From: Dorian Date: Mon, 2 Mar 2026 18:16:04 +0000 Subject: [PATCH] feat(chat): enhance chat functionality with song integration and UI improvements - Updated ChatHeader and ChatMessage components to support song selection and display. - Enhanced useContentPanel to handle both film and song content, allowing for richer interactions. - Improved FilmCard and added SongCard components for better media representation. - Refactored environment variables for better configuration management. - Updated .gitignore to include development chat history. Made-with: Cursor --- .env.example | 4 +- .gitignore | 3 + packages/app/dev-dist/sw.js | 2 +- packages/app/public/images/loading-poster.svg | 24 +++ .../app/src/components/chat/ChatHeader.vue | 109 ++++++++-- .../app/src/components/chat/ChatMessage.vue | 46 +++- .../app/src/components/chat/ChatWindow.vue | 6 +- .../src/components/content/ContextLoader.vue | 119 +++++++++++ .../app/src/components/content/FilmCard.vue | 44 ++-- .../app/src/components/content/FilmDetail.vue | 64 +++++- .../app/src/components/content/FilmGrid.vue | 63 +++--- .../components/content/LoadingFilmCard.vue | 68 ++++++ .../components/content/LoadingFilmGrid.vue | 23 ++ .../app/src/components/content/SongCard.vue | 81 +++++++ .../app/src/components/content/SongDetail.vue | 156 ++++++++++++++ .../app/src/components/content/SongGrid.vue | 179 ++++++++++++++++ packages/app/src/composables/useAI.ts | 16 +- .../app/src/composables/useContentPanel.ts | 201 ++++++++++++++++-- .../app/src/composables/useImageFallback.ts | 161 +++++++++++++- packages/app/src/mocks/songs.ts | 106 +++++++++ packages/app/src/pages/ChatPage.vue | 120 ++++++++--- packages/app/src/stores/chat.ts | 70 ++++++ packages/app/src/styles/main.css | 71 +++++++ packages/app/vite-dev-chats.ts | 68 ++++++ packages/app/vite-tmdb.ts | 67 ++++++ packages/app/vite.config.ts | 4 + packages/core/src/types/content.ts | 19 ++ 27 files changed, 1751 insertions(+), 143 deletions(-) create mode 100644 packages/app/public/images/loading-poster.svg create mode 100644 packages/app/src/components/content/ContextLoader.vue create mode 100644 packages/app/src/components/content/LoadingFilmCard.vue create mode 100644 packages/app/src/components/content/LoadingFilmGrid.vue create mode 100644 packages/app/src/components/content/SongCard.vue create mode 100644 packages/app/src/components/content/SongDetail.vue create mode 100644 packages/app/src/components/content/SongGrid.vue create mode 100644 packages/app/src/mocks/songs.ts create mode 100644 packages/app/vite-dev-chats.ts create mode 100644 packages/app/vite-tmdb.ts diff --git a/.env.example b/.env.example index d20628be..72b00e98 100644 --- a/.env.example +++ b/.env.example @@ -11,9 +11,9 @@ VITE_ANTHROPIC_TOKEN=sk-ant-oat01-your-token-here # Option 2: API key from console (https://console.anthropic.com/settings/keys) VITE_ANTHROPIC_API_KEY=sk-ant-your-key-here -# TMDB API (free, for real film poster images) +# TMDB API (free, fetches posters on-demand when images fail) # Get your key at: https://www.themoviedb.org/settings/api -VITE_TMDB_API_KEY=your-tmdb-key-here +TMDB_API_KEY=your-tmdb-key-here # Development flags VITE_DEV_MODE=true diff --git a/.gitignore b/.gitignore index 04a385bc..e11cb978 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,9 @@ packages/app/src-tauri/target/ .DS_Store Thumbs.db +# Dev chat history +.dev/ + # Debug npm-debug.log* pnpm-debug.log* diff --git a/packages/app/dev-dist/sw.js b/packages/app/dev-dist/sw.js index a9e45088..41ddb88b 100644 --- a/packages/app/dev-dist/sw.js +++ b/packages/app/dev-dist/sw.js @@ -82,7 +82,7 @@ define(['./workbox-cf23aef7'], (function (workbox) { 'use strict'; "revision": "3ca0b8505b4bec776b69afdba2768812" }, { "url": "index.html", - "revision": "0.5aiuhiql2u" + "revision": "0.7fp7mese2fg" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/packages/app/public/images/loading-poster.svg b/packages/app/public/images/loading-poster.svg new file mode 100644 index 00000000..654bc3fa --- /dev/null +++ b/packages/app/public/images/loading-poster.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/app/src/components/chat/ChatHeader.vue b/packages/app/src/components/chat/ChatHeader.vue index 40ade87b..749e9d48 100644 --- a/packages/app/src/components/chat/ChatHeader.vue +++ b/packages/app/src/components/chat/ChatHeader.vue @@ -1,33 +1,87 @@