diff --git a/web/src/components/AvatarUploader.tsx b/web/src/components/AvatarUploader.tsx
index 1d6e9138..412e05cf 100644
--- a/web/src/components/AvatarUploader.tsx
+++ b/web/src/components/AvatarUploader.tsx
@@ -1,9 +1,13 @@
import { blobUrlToFile } from '@/utils/file-helper';
+import { Icon } from '@iconify/react';
+import clsx from 'clsx';
import React, { useState } from 'react';
import { uploadFile, UploadFileResult, useAsyncRequest } from 'tailchat-shared';
import { AvatarPicker } from './AvatarPicker';
export const AvatarUploader: React.FC<{
+ circle?: boolean;
+ className?: string;
onUploadSuccess: (fileInfo: UploadFileResult) => void;
}> = React.memo((props) => {
const [uploadProgress, setUploadProgress] = useState(0); // 0 - 100
@@ -31,13 +35,26 @@ export const AvatarUploader: React.FC<{
disabled={loading}
onChange={handlePickImage}
>
- {props.children}
- {loading && (
+
+ {props.children}
+ {loading && (
+
+ )}
+
- )}
+ className={clsx(
+ 'absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center transition opacity-0 group-hover:opacity-100',
+ {
+ 'rounded-1/2': props.circle,
+ }
+ )}
+ >
+
+
+
);
});
diff --git a/web/src/components/Modal.tsx b/web/src/components/Modal.tsx
index 38d7086a..d5f8e86d 100644
--- a/web/src/components/Modal.tsx
+++ b/web/src/components/Modal.tsx
@@ -97,7 +97,7 @@ export const Modal: React.FC = React.memo((props) => {
>
{closable === true && (
diff --git a/web/src/components/modals/GroupDetail/Summary.tsx b/web/src/components/modals/GroupDetail/Summary.tsx
index 9c501fec..ecdae87f 100644
--- a/web/src/components/modals/GroupDetail/Summary.tsx
+++ b/web/src/components/modals/GroupDetail/Summary.tsx
@@ -47,7 +47,11 @@ export const GroupSummary: React.FC<{
diff --git a/web/src/components/modals/SettingsView/Account.tsx b/web/src/components/modals/SettingsView/Account.tsx
index 9d24d61d..c75f7472 100644
--- a/web/src/components/modals/SettingsView/Account.tsx
+++ b/web/src/components/modals/SettingsView/Account.tsx
@@ -66,7 +66,11 @@ export const SettingsAccount: React.FC = React.memo(() => {