feat: Added reset avatar feature and center align items in userpopup (#2658)
* feat: Add reset avatar functionality and update localization strings * fix: Center align upload and reset avatar options in UserPopup
This commit is contained in:
parent
e8bfb2b49b
commit
a12d10f4f7
@ -1,3 +1,4 @@
|
||||
import DefaultAvatar from '@renderer/assets/images/avatar.png'
|
||||
import useAvatar from '@renderer/hooks/useAvatar'
|
||||
import { useSettings } from '@renderer/hooks/useSettings'
|
||||
import ImageStorage from '@renderer/services/ImageStorage'
|
||||
@ -50,39 +51,50 @@ const PopupContainer: React.FC<Props> = ({ resolve }) => {
|
||||
window.message.error(error.message)
|
||||
}
|
||||
}
|
||||
|
||||
const handleReset = async () => {
|
||||
try {
|
||||
await ImageStorage.set('avatar', DefaultAvatar)
|
||||
dispatch(setAvatar(DefaultAvatar))
|
||||
setDropdownOpen(false)
|
||||
} catch (error: any) {
|
||||
window.message.error(error.message)
|
||||
}
|
||||
}
|
||||
const items = [
|
||||
{
|
||||
key: 'upload',
|
||||
label: (
|
||||
<Upload
|
||||
customRequest={() => {}}
|
||||
accept="image/png, image/jpeg, image/gif"
|
||||
itemRender={() => null}
|
||||
maxCount={1}
|
||||
onChange={async ({ file }) => {
|
||||
try {
|
||||
const _file = file.originFileObj as File
|
||||
if (_file.type === 'image/gif') {
|
||||
await ImageStorage.set('avatar', _file)
|
||||
} else {
|
||||
const compressedFile = await compressImage(_file)
|
||||
await ImageStorage.set('avatar', compressedFile)
|
||||
<div style={{ width: '100%', textAlign: 'center' }}>
|
||||
<Upload
|
||||
customRequest={() => {}}
|
||||
accept="image/png, image/jpeg, image/gif"
|
||||
itemRender={() => null}
|
||||
maxCount={1}
|
||||
onChange={async ({ file }) => {
|
||||
try {
|
||||
const _file = file.originFileObj as File
|
||||
if (_file.type === 'image/gif') {
|
||||
await ImageStorage.set('avatar', _file)
|
||||
} else {
|
||||
const compressedFile = await compressImage(_file)
|
||||
await ImageStorage.set('avatar', compressedFile)
|
||||
}
|
||||
dispatch(setAvatar(await ImageStorage.get('avatar')))
|
||||
setDropdownOpen(false)
|
||||
} catch (error: any) {
|
||||
window.message.error(error.message)
|
||||
}
|
||||
dispatch(setAvatar(await ImageStorage.get('avatar')))
|
||||
setDropdownOpen(false)
|
||||
} catch (error: any) {
|
||||
window.message.error(error.message)
|
||||
}
|
||||
}}>
|
||||
<div>{t('settings.general.image_upload')}</div>
|
||||
</Upload>
|
||||
}}>
|
||||
{t('settings.general.image_upload')}
|
||||
</Upload>
|
||||
</div>
|
||||
)
|
||||
},
|
||||
{
|
||||
key: 'emoji',
|
||||
label: (
|
||||
<div
|
||||
style={{ width: '100%', textAlign: 'center' }}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation()
|
||||
setEmojiPickerOpen(true)
|
||||
@ -91,6 +103,19 @@ const PopupContainer: React.FC<Props> = ({ resolve }) => {
|
||||
{t('settings.general.emoji_picker')}
|
||||
</div>
|
||||
)
|
||||
},
|
||||
{
|
||||
key: 'reset',
|
||||
label: (
|
||||
<div
|
||||
style={{ width: '100%', textAlign: 'center' }}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation()
|
||||
handleReset()
|
||||
}}>
|
||||
{t('settings.general.avatar.reset')}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@ -701,6 +701,7 @@
|
||||
"general.user_name.placeholder": "Enter your name",
|
||||
"general.image_upload": "Image Upload",
|
||||
"general.emoji_picker": "Emoji Picker",
|
||||
"general.avatar.reset": "Reset Avatar",
|
||||
"general.view_webdav_settings": "View WebDAV settings",
|
||||
"input.auto_translate_with_space": "Quickly translate with 3 spaces",
|
||||
"input.target_language": "Target language",
|
||||
|
||||
@ -701,6 +701,7 @@
|
||||
"general.user_name.placeholder": "ユーザー名を入力",
|
||||
"general.image_upload": "画像アップロード",
|
||||
"general.emoji_picker": "絵文字ピッカー",
|
||||
"general.avatar.reset": "アバターをリセット",
|
||||
"general.view_webdav_settings": "WebDAV設定を表示",
|
||||
"input.auto_translate_with_space": "スペースを3回押して翻訳",
|
||||
"input.target_language": "目標言語",
|
||||
|
||||
@ -701,6 +701,7 @@
|
||||
"general.user_name.placeholder": "Введите ваше имя",
|
||||
"general.image_upload": "Загрузка изображений",
|
||||
"general.emoji_picker": "Выбор эмодзи",
|
||||
"general.avatar.reset": "Сброс аватара",
|
||||
"general.view_webdav_settings": "Просмотр настроек WebDAV",
|
||||
"input.auto_translate_with_space": "Быстрый перевод с помощью 3-х пробелов",
|
||||
"input.target_language": "Целевой язык",
|
||||
|
||||
@ -701,6 +701,7 @@
|
||||
"general.user_name.placeholder": "请输入用户名",
|
||||
"general.image_upload": "图片上传",
|
||||
"general.emoji_picker": "表情选择器",
|
||||
"general.avatar.reset": "重置头像",
|
||||
"general.view_webdav_settings": "查看 WebDAV 设置",
|
||||
"input.auto_translate_with_space": "快速敲击3次空格翻译",
|
||||
"input.target_language": "目标语言",
|
||||
|
||||
@ -700,6 +700,7 @@
|
||||
"general.user_name.placeholder": "輸入您的名稱",
|
||||
"general.image_upload": "圖片上傳",
|
||||
"general.emoji_picker": "表情選擇器",
|
||||
"general.avatar.reset": "重置頭像",
|
||||
"general.view_webdav_settings": "查看 WebDAV 設定",
|
||||
"input.auto_translate_with_space": "快速敲擊3次空格翻譯",
|
||||
"input.target_language": "目標語言",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user