/* * Vencord, a Discord client mod * Copyright (c) 2024 Vendicated and contributors * SPDX-License-Identifier: GPL-3.0-or-later */ import { classNameFactory } from "@api/Styles"; import { openPrivateChannel, openUserProfile } from "@utils/discord"; import { copyWithToast } from "@utils/misc"; import { Alerts, Avatar, Button, ContextMenuApi, Menu, React, Text, TextArea, Tooltip, useState } from "@webpack/common"; import { updateNote } from "../data"; import { UsersCache } from "../types"; import { DeleteIcon, PopupIcon, RefreshIcon, SaveIcon } from "./Icons"; import { LoadingSpinner } from "./LoadingSpinner"; const cl = classNameFactory("vc-notes-searcher-modal-"); export default ({ userId, userNotes: userNotesArg, refreshNotesData, usersCache }: { userId: string; userNotes: string; refreshNotesData(): void; usersCache: UsersCache; }) => { let userCache = usersCache.get(userId); const pending = !userCache; userCache ??= { id: userId, globalName: "Loading...", username: "Loading...", avatar: "https://cdn.discordapp.com/embed/avatars/4.png", }; const [userNotes, setUserNotes] = useState(userNotesArg); return (
{ ContextMenuApi.openContextMenu(event, () => openUserProfile(userId)} /> openPrivateChannel(userId)} /> copyWithToast(userCache!.id)} /> { !pending && ( <> copyWithToast(userCache!.globalName ?? userCache!.username)} /> copyWithToast(userCache!.username)} /> copyWithToast(userCache!.avatar)} /> ) } copyWithToast(userNotes)} /> ); }} > { pending ? : }
{userCache.globalName} {userCache.username} {userCache.id}