mirror of
https://github.com/tulir/gomuks.git
synced 2025-04-20 18:43:41 -05:00
web/timeline: open user panel when clicking on avatar
This commit is contained in:
parent
321b53a98a
commit
9b65140302
2 changed files with 11 additions and 3 deletions
|
@ -76,6 +76,8 @@ class ContextFields implements MainScreenContextFields {
|
|||
const type = evt.currentTarget.getAttribute("data-target-panel")
|
||||
if (type === "pinned-messages" || type === "members") {
|
||||
this.setRightPanel({ type })
|
||||
} else if (type === "user") {
|
||||
this.setRightPanel({ type, userID: evt.currentTarget.getAttribute("data-target-user")! })
|
||||
} else {
|
||||
throw new Error(`Invalid right panel type ${type}`)
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ import { useRoomState } from "@/api/statestore"
|
|||
import { MemDBEvent, MemberEventContent, UnreadType } from "@/api/types"
|
||||
import { isEventID } from "@/util/validation.ts"
|
||||
import ClientContext from "../ClientContext.ts"
|
||||
import { LightboxContext } from "../modal/Lightbox.tsx"
|
||||
import MainScreenContext from "../MainScreenContext.ts"
|
||||
import { useRoomContext } from "../roomview/roomcontext.ts"
|
||||
import { ReplyIDBody } from "./ReplyBody.tsx"
|
||||
import { ContentErrorBoundary, HiddenEvent, getBodyType, isSmallEvent } from "./content"
|
||||
|
@ -71,6 +71,7 @@ const EventSendStatus = ({ evt }: { evt: MemDBEvent }) => {
|
|||
const TimelineEvent = ({ evt, prevEvt, disableMenu }: TimelineEventProps) => {
|
||||
const roomCtx = useRoomContext()
|
||||
const client = use(ClientContext)!
|
||||
const mainScreen = use(MainScreenContext)
|
||||
const [forceContextMenuOpen, setForceContextMenuOpen] = useState(false)
|
||||
const memberEvt = useRoomState(roomCtx.store, "m.room.member", evt.sender)
|
||||
const memberEvtContent = memberEvt?.content as MemberEventContent | undefined
|
||||
|
@ -104,12 +105,17 @@ const TimelineEvent = ({ evt, prevEvt, disableMenu }: TimelineEventProps) => {
|
|||
{!disableMenu && <div className={`context-menu-container ${forceContextMenuOpen ? "force-open" : ""}`}>
|
||||
<EventMenu evt={evt} setForceOpen={setForceContextMenuOpen}/>
|
||||
</div>}
|
||||
{renderAvatar && <div className="sender-avatar" title={evt.sender}>
|
||||
{renderAvatar && <div
|
||||
className="sender-avatar"
|
||||
title={evt.sender}
|
||||
data-target-panel="user"
|
||||
data-target-user={evt.sender}
|
||||
onClick={mainScreen.clickRightPanelOpener}
|
||||
>
|
||||
<img
|
||||
className={`${smallAvatar ? "small" : ""} avatar`}
|
||||
loading="lazy"
|
||||
src={getAvatarURL(evt.sender, memberEvtContent)}
|
||||
onClick={use(LightboxContext)!}
|
||||
alt=""
|
||||
/>
|
||||
</div>}
|
||||
|
|
Loading…
Add table
Reference in a new issue