import { observer } from "mobx-react-lite"; import { Server } from "revolt.js"; import styles from "./ServerIdentityModal.module.scss"; import { Text } from "preact-i18n"; import { useEffect, useState } from "preact/hooks"; import { noop } from "../../../lib/js"; import Button from "../../../components/ui/Button"; import InputBox from "../../../components/ui/InputBox"; import Modal from "../../../components/ui/Modal"; import Overline from "../../../components/ui/Overline"; import { FileUploader } from "../../revoltjs/FileUploads"; import { useClient } from "../../revoltjs/RevoltClient"; interface Props { server: Server; onClose: () => void; } export const ServerIdentityModal = observer(({ server, onClose }: Props) => { const client = useClient(); const member = client.members.getKey({ server: server._id, user: client.user!._id, }); if (!member) return null; const [nickname, setNickname] = useState(""); const [currentNickname, setCurrentNickname] = useState(""); useEffect(() => { setNickname(member.nickname ?? ""); setCurrentNickname(member.nickname ?? ""); }, [member.nickname]); return ( } onClose={onClose}>
member.edit({ avatar }).then(noop) } remove={() => member.edit({ remove: ["Avatar"] }).then(noop) } defaultPreview={client.user?.generateAvatarURL( { max_side: 256, }, false, )} previewURL={client.generateFileURL( member.avatar ?? undefined, { max_side: 256 }, true, )} desaturateDefault />
setNickname(e.currentTarget.value)} />
{currentNickname !== "" && ( )}
); });