DocNR 969163313a fix(auth): Improve authentication state handling and avatar display
* Add style prop to UserAvatar component for better customization
* Refactor UserAvatar to use getAvatarSeed utility for consistent avatar generation
* Fix React hook ordering issues in profile/overview.tsx to prevent crashes during auth state changes
* Add proper state initialization and cleanup during authentication transitions
* Ensure consistent fallback avatar display for unauthenticated users

These changes improve stability during login/logout operations and provide better visual continuity with Robohash avatars when profile images aren't available.
2025-04-02 21:11:25 -04:00

2.6 KiB

History Tab Documentation

Last Updated: 2025-04-02
Status: Active
Related To: Workout Features, Nostr Integration

Introduction

The History tab provides users with comprehensive views of their workout history, allowing them to track, review, and analyze past workouts. This section documents the History tab features, architecture, and integration with the rest of the POWR app.

Key Documentation

Document Description
History Overview Detailed overview of the History tab features, architecture, and implementation
History List View Documentation of the chronological workout history list
Calendar View Documentation of the calendar-based workout visualization
Migration Guide Guide for migrating from legacy workout history services to the unified architecture

Feature Summary

The History tab includes the following major features:

  • Chronological History View - Displays workouts grouped by month with detailed exercise information
  • Calendar View - Provides a calendar interface with workout date highlighting and filtering
  • Unified Data Access - Combines local and Nostr-based workout data through a single API
  • Offline Support - Ensures workout history is available even without network access
  • Filtering and Search - Helps users quickly find specific workout information
  • Nostr Integration - Enables cross-device synchronization of workout history

Architecture

The History tab is built on a unified service architecture that provides consistent access to workout data regardless of source:

  • UnifiedWorkoutHistoryService - Core service for all workout history operations
  • useWorkoutHistory - React hook for accessing workout history in components
  • WorkoutCard - Reusable component for displaying workout summaries
  • Calendar - Date-based view with workout visualization

Technical Integration

The History tab integrates with several other app features:

  • Workout Completion - Completed workouts are stored and displayed in History
  • Nostr Protocol - Two-way synchronization of workout data between devices
  • Profile Analytics - Workout data feeds into profile progress tracking
  • Offline Queue - Ensures data persistence during connectivity issues

Implementation Status

The History tab is fully implemented with all core features available, and additional enhancements planned for future releases. See the History Overview document for detailed feature status.