import { X } from "@styled-icons/boxicons-regular"; import { Save } from "@styled-icons/boxicons-solid"; import { observer } from "mobx-react-lite"; import styled from "styled-components"; import { Text } from "preact-i18n"; import { useMemo, useState } from "preact/hooks"; import { Button, Category, Centred, Column, InputBox, Modal, Row, Message, } from "@revoltchat/ui"; import { noop } from "../../../lib/js"; import { FileUploader } from "../../client/jsx/legacy/FileUploads"; import { ModalProps } from "../types"; const Preview = styled(Centred)` flex-grow: 1; border-radius: var(--border-radius); background: var(--secondary-background); > div { padding: 0; } `; export default observer( ({ member, ...props }: ModalProps<"server_identity">) => { const [nickname, setNickname] = useState(member.nickname ?? ""); const message: any = useMemo(() => { return { author: member.user!, member: { ...member, nickname, }, }; }, []); return ( }> setNickname(e.currentTarget.value) } /> member.edit({ avatar }).then(noop) } remove={() => member .edit({ remove: ["Avatar"] }) .then(noop) } defaultPreview={member.user?.generateAvatarURL( { max_side: 256, }, false, )} previewURL={member.client.generateFileURL( member.avatar ?? undefined, { max_side: 256 }, true, )} desaturateDefault /> Preview ); }, );