import { observer } from "mobx-react-lite"; import { Server } from "revolt.js/dist/maps/Servers"; import styles from "./ServerIdentityModal.module.scss"; import { Text } from "preact-i18n"; import { useEffect, useState } from "preact/hooks"; 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"; import styled, { css } from "styled-components"; 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 })} remove={() => member.edit({ remove: "Avatar" })} defaultPreview={client.user?.generateAvatarURL({ max_side: 256, }, false)} previewURL={client.generateFileURL( member.avatar ?? undefined, { max_side: 256 }, true, )} desaturateDefault />
setNickname(e.currentTarget.value)} />
{currentNickname !== "" && ( )}
); });