feat: Implement AI response feedback UI and complete high-priority features
Frontend Features: - Add MessageFeedback component with thumbs up/down buttons - Positive feedback submits immediately with success toast - Negative feedback opens dialog for optional text input - Integrate feedback buttons on all AI assistant messages - Add success Snackbar confirmation message - Translation keys added to ai.json (feedback section) Backend Features: - Add POST /api/v1/ai/feedback endpoint - Create FeedbackDto with conversation ID validation - Implement submitFeedback service method - Store feedback in conversation metadata with timestamps - Add audit logging for feedback submissions - Fix conversationId regex validation to support nanoid format Legal & Compliance: - Implement complete EULA acceptance flow with modal - Create reusable legal content components (Terms, Privacy, EULA) - Add LegalDocumentViewer for nested modal viewing - Cookie Consent Banner with GDPR compliance - Legal pages with AppShell navigation - EULA acceptance tracking in user entity Branding Updates: - Rebrand from "Maternal App" to "ParentFlow" - Update all icons (72px to 512px) from high-res source - PWA manifest updated with ParentFlow branding - Contact email: hello@parentflow.com - Address: Serbota 3, Bucharest, Romania Bug Fixes: - Fix chat endpoint validation (support nanoid conversation IDs) - Fix EULA acceptance API call (use apiClient vs hardcoded localhost) - Fix icon loading errors with proper PNG generation Documentation: - Mark 11 high-priority features as complete in REMAINING_FEATURES.md - Update feature statistics: 73/139 complete (53%) - All high-priority features now complete! 🎉 Files Changed: Frontend: 21 files (components, pages, locales, icons) Backend: 6 files (controller, service, DTOs, migrations) Docs: 1 file (REMAINING_FEATURES.md) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,8 @@ import { FocusManagementProvider } from '@/components/providers/FocusManagementP
|
||||
import { BackgroundSyncProvider } from '@/components/providers/BackgroundSyncProvider';
|
||||
import { InstallPrompt } from '@/components/pwa/InstallPrompt';
|
||||
import { I18nProvider } from '@/components/providers/I18nProvider';
|
||||
import { EULACheck } from '@/components/legal/EULACheck';
|
||||
import { CookieConsent } from '@/components/common/banners/CookieConsent';
|
||||
// import { PerformanceMonitor } from '@/components/common/PerformanceMonitor'; // Temporarily disabled
|
||||
import './globals.css';
|
||||
|
||||
@@ -56,11 +58,13 @@ export default function RootLayout({
|
||||
<FocusManagementProvider>
|
||||
<SkipNavigation />
|
||||
{/* <PerformanceMonitor /> */}
|
||||
<EULACheck />
|
||||
<main id="main-content" tabIndex={-1}>
|
||||
{children}
|
||||
</main>
|
||||
<VoiceFloatingButton />
|
||||
<InstallPrompt />
|
||||
<CookieConsent />
|
||||
</FocusManagementProvider>
|
||||
</ThemeRegistry>
|
||||
</BackgroundSyncProvider>
|
||||
|
||||
Reference in New Issue
Block a user