grtsinry43 39b5c3e40f
feat: Implement user detail screen and refactor navigation
This commit introduces a dedicated user detail screen, enabling users to view profiles, and refactors the navigation flow, particularly for post and image details, to be more modular and robust.

**Key Changes:**

*   **feat(UserDetailScreen):**
    *   Added a new `UserDetailScreen` to display user information, including their avatar, name, bio, and a list of their posts.
    *   Implemented a `UserDetailViewModel` to fetch user data and their associated posts from the repository.
    *   The screen is composed of several modular components: `UserDetailCard`, `UserStatsSection`, and `PostsSection`.
    *   Includes loading skeletons and an empty state for the user's post list.
    *   Integrated a pull-to-refresh mechanism to update user data.

*   **feat(Navigation):**
    *   Added a new `UserDetail` route (`user_detail/{userId}`) to the navigation graph.
    *   Users can now navigate from a post card or post detail view to the author's `UserDetailScreen`.
    *   Clicking a post in the `UserDetailScreen` navigates to the corresponding `PostDetailScreen`.

*   **refactor(Navigation & Post/Image Detail):**
    *   Decoupled the text and image detail views, removing the `PostDetailContainer` that previously managed mode switching with `AnimatedContent`.
    *   `PostDetailScreen` and `ImageDetailScreen` are now independent navigation destinations.
    *   Navigation from a post to its image view is now a direct navigation action to `ImageDetailScreen`, simplifying the logic.
    *   The route for `PostDetail` has been simplified to `post_detail/{postId}`, removing the `mode` parameter.

*   **feat(Shared Element Transition):**
    *   Implemented a shared element transition for the user avatar, animating it from `PostCardItem` to `UserDetailScreen`.
    *   The avatar transition key is based on `user_avatar_{userId}` for consistent animations.

*   **refactor(ImageDetailScreen):**
    *   Improved the shared element transition for images by setting `placeHolderSize` to `animatedSize` and disabling `renderInOverlayDuringTransition`, which can resolve certain animation artifacts.

*   **refactor(Repository):**
    *   Added `getUserPosts(userId)` to the `UserRepository` to fetch all post metadata for a specific user.
2025-10-06 11:40:55 +08:00
..
2025-10-05 01:20:02 +08:00
2025-10-05 01:20:02 +08:00