ProfileView Screen ================== The ProfileView screen in SailPilot is dedicated to displaying and updating the user's profile information. It provides a form with various fields for users to edit their personal details. Layout and Widgets ------------------ - **Profile Image Card**: Displays the user's profile picture and includes an option for the user to change it. - **Input Fields**: The screen consists of multiple `AuthField` widgets for editing information such as first name, last name, phone number, address, city, area, postcode, and country. - **PrimaryButton**: A button for submitting updated profile information. It incorporates a `ShakeWidget` for providing visual feedback in certain scenarios, like an error in updating. Data Initialization -------------------- - On initialization, the screen fetches the current user's data from the `User` model and populates the input fields with existing information. Update Process -------------- - When the update button is tapped, the screen calls the `_updateProfileData` method, which updates the user's data in both the `User` and `UserProfile` models. - The method handles the synchronization of these changes with the server, ensuring that the user profile is consistently updated both locally and remotely. User Feedback ------------- - Provides immediate visual feedback through snackbar messages for successful updates or errors. - Includes a dark mode support where the screen's color scheme adapts based on the current theme. .. note:: The ProfileView screen is a crucial component of SailPilot, allowing users to manage their personal information effectively. It demonstrates the app's commitment to providing a customizable and responsive user experience.