diff --git a/src/components/UserMenuSkeleton.tsx b/src/components/UserMenuSkeleton.tsx new file mode 100644 index 00000000..c8d38ae3 --- /dev/null +++ b/src/components/UserMenuSkeleton.tsx @@ -0,0 +1,15 @@ +// src/components/UserMenuSkeleton.tsx +import React from 'react'; + +/** + * A simple skeleton loader to be displayed in the header while + * the user's authentication status is being determined. + */ +export const UserMenuSkeleton: React.FC = () => { + return ( +
{errorMessage}
+ {statusMessage && } +{errorMessage}
- {/* Render status message as HTML if it contains a link */} - -{statusMessage}
- )} - {processingState === 'polling' && ( - - )} -- File {bulkFileCount.current} of {bulkFileCount.total} -
-- Converting PDF: Page {pageProgress.current} of {pageProgress.total} -
-- Analyzing page {extractionStage.progress.current} of {extractionStage.progress.total} -
-
{subTitle}
@@ -188,6 +91,21 @@ export const ProcessingStatus: React.FC
+ Overall Progress: File {bulkFileCount.current} of {bulkFileCount.total} +
+Enter your email to receive a password reset link.
+ +{isRegistering ? 'to get started.' : 'to access your account.'}
+ {isRegistering && ( +Enter your email to receive a password reset link.
-{isRegistering ? 'to get started.' : 'to access your account.'}
- {/* When registering, show optional fields for full name and avatar URL */} - {isRegistering && ( -Manage your profile, preferences, and security.
-Download a JSON file of your profile, watched items, and shopping lists.
-This action is permanent and cannot be undone. All your data will be erased.
{!isConfirmingDelete ? ( -