This commit is contained in:
2025-10-19 20:31:29 +03:00
Unverified
parent 66f0b756a0
commit f5527ca14e
67 changed files with 891 additions and 902 deletions
+9 -9
View File
@@ -29,7 +29,7 @@ export function ProfileDialog() {
if (backdropRef.current && dialogRef.current) {
backdropRef.current.classList.remove('open');
dialogRef.current.classList.remove('open');
// Wait for animation to complete before closing
setTimeout(() => {
setIsOpen(false);
@@ -119,13 +119,13 @@ export function ProfileDialog() {
const hasChanges = useMemo(() => {
if (!originalData || !currentData) return false;
// Normalize values for comparison (handle empty strings, undefined, null)
const normalizeValue = (value: string | undefined | null) => {
if (value === null || value === undefined) return "";
return value.trim();
};
return (
normalizeValue(originalData.username) !== normalizeValue(currentData.username) ||
normalizeValue(originalData.bio) !== normalizeValue(currentData.bio) ||
@@ -155,7 +155,7 @@ export function ProfileDialog() {
if (backdropRef.current && dialogRef.current) {
backdropRef.current.classList.remove('open');
dialogRef.current.classList.remove('open');
// Wait for animation to complete before closing
setTimeout(() => {
closeProfileDialog();
@@ -232,7 +232,7 @@ export function ProfileDialog() {
// Update the original data to match current data
setOriginalData(currentData);
// Close dialog with animation after successful save
triggerCloseAnimation();
} catch (error) {
@@ -253,7 +253,7 @@ export function ProfileDialog() {
if (!isOpen || !currentData) return null;
return createPortal(
<div
<div
ref={backdropRef}
className="profile-dialog-backdrop"
onClick={handleBackdropClick}
@@ -262,7 +262,7 @@ export function ProfileDialog() {
<div className="profile-dialog-content">
{/* Profile Picture */}
<div className="profile-picture-section">
<img
<img
className="profile-picture"
src={currentData.profilePicture || defaultAvatar}
alt="Profile Picture"
@@ -272,7 +272,7 @@ export function ProfileDialog() {
}}
/>
{currentData.isOwnProfile && (
<div
<div
className="profile-picture-edit-overlay"
onClick={handleProfilePictureClick}
>
@@ -296,7 +296,7 @@ export function ProfileDialog() {
)}
{/* Online Status */}
{currentData.userId && !currentData.isOwnProfile && (
{currentData?.userId && (
<div className="online-status-section">
<OnlineStatus userId={currentData.userId} />
</div>