/** * Edit Profile Screen * Pure UI for profile editing - Composition only */ import React from "react"; import { StyleSheet } from "react-native"; import { useAppDesignTokens } from "@umituz/react-native-design-system/theme"; import { AtomicText, AtomicSpinner } from "@umituz/react-native-design-system/atoms"; import { ScreenLayout } from "@umituz/react-native-design-system/layouts"; import { EditProfileAvatar } from "../components/EditProfileAvatar"; import { EditProfileForm } from "../components/EditProfileForm"; import { EditProfileActions } from "../components/EditProfileActions"; interface EditProfileLabels { title: string; displayNameLabel: string; displayNamePlaceholder: string; emailLabel: string; emailPlaceholder: string; photoLabel: string; changePhotoButton: string; saveButton: string; cancelButton: string; } interface EditProfileConfig { displayName: string; email: string; photoURL: string | null; isLoading?: boolean; isSaving?: boolean; onChangeDisplayName: (value: string) => void; onChangeEmail: (value: string) => void; onChangePhoto?: () => void; onSave: () => void; onCancel?: () => void; labels: EditProfileLabels; } export interface EditProfileScreenProps { config: EditProfileConfig; } export const EditProfileScreen: React.FC = ({ config }) => { const tokens = useAppDesignTokens(); if (config.isLoading) { return ( ); } return ( {config.labels.title} ); }; const styles = StyleSheet.create({ loadingContainer: { flex: 1, justifyContent: "center", alignItems: "center", }, content: { padding: 16, }, title: { marginBottom: 24, }, });