Merge pull request #4234 from fengzai6/main

Fix EmojiPicker mobile width adaptation and update avatar clicking behavior
This commit is contained in:
fred-bf 2024-03-11 13:59:09 +08:00 committed by GitHub
commit a15c4d9c20
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 18 additions and 6 deletions

View File

@ -21,6 +21,7 @@ export function AvatarPicker(props: {
}) { }) {
return ( return (
<EmojiPicker <EmojiPicker
width={"100%"}
lazyLoadEmojis lazyLoadEmojis
theme={EmojiTheme.AUTO} theme={EmojiTheme.AUTO}
getEmojiUrl={getEmojiUrl} getEmojiUrl={getEmojiUrl}

View File

@ -5,6 +5,8 @@
.avatar { .avatar {
cursor: pointer; cursor: pointer;
position: relative;
z-index: 1;
} }
.edit-prompt-modal { .edit-prompt-modal {

View File

@ -693,7 +693,9 @@ export function Settings() {
> >
<div <div
className={styles.avatar} className={styles.avatar}
onClick={() => setShowEmojiPicker(true)} onClick={() => {
setShowEmojiPicker(!showEmojiPicker);
}}
> >
<Avatar avatar={config.avatar} /> <Avatar avatar={config.avatar} />
</div> </div>

View File

@ -14,17 +14,24 @@
.popover-content { .popover-content {
position: absolute; position: absolute;
width: 350px;
animation: slide-in 0.3s ease; animation: slide-in 0.3s ease;
right: 0; right: 0;
top: calc(100% + 10px); top: calc(100% + 10px);
} }
@media screen and (max-width: 600px) {
.popover-content {
width: auto;
}
}
.popover-mask { .popover-mask {
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
background-color: rgba(0, 0, 0, 0.3);
backdrop-filter: blur(5px);
} }
.list-item { .list-item {

View File

@ -26,10 +26,10 @@ export function Popover(props: {
<div className={styles.popover}> <div className={styles.popover}>
{props.children} {props.children}
{props.open && ( {props.open && (
<div className={styles["popover-content"]}> <div className={styles["popover-mask"]} onClick={props.onClose}></div>
<div className={styles["popover-mask"]} onClick={props.onClose}></div> )}
{props.content} {props.open && (
</div> <div className={styles["popover-content"]}>{props.content}</div>
)} )}
</div> </div>
); );