/*
* 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}
{({ onMouseLeave, onMouseEnter }) => (
)}
{({ onMouseLeave, onMouseEnter }) => (
)}
{({ onMouseLeave, onMouseEnter }) => (
)}
{({ onMouseLeave, onMouseEnter }) => (
)}
);
};