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(() => {
- +