import { observer } from "mobx-react-lite"; import { Channels } from "revolt.js/dist/api/objects"; import styled, { css } from "styled-components"; import { Text } from "preact-i18n"; import { useContext, useEffect, useState } from "preact/hooks"; import TextAreaAutoSize from "../../../lib/TextAreaAutoSize"; import { Channel } from "../../../mobx"; import { FileUploader } from "../../../context/revoltjs/FileUploads"; import { AppContext } from "../../../context/revoltjs/RevoltClient"; import Button from "../../../components/ui/Button"; import InputBox from "../../../components/ui/InputBox"; interface Props { channel: Channel; } const Row = styled.div` gap: 20px; display: flex; .name { flex-grow: 1; input { width: 100%; } } `; export default observer(({ channel }: Props) => { const client = useContext(AppContext); const [name, setName] = useState(channel.name ?? undefined); const [description, setDescription] = useState(channel.description ?? ""); useEffect(() => setName(channel.name ?? undefined), [channel.name]); useEffect( () => setDescription(channel.description ?? ""), [channel.description], ); const [changed, setChanged] = useState(false); function save() { const changes: any = {}; if (name !== channel.name) changes.name = name; if (description !== channel.description) changes.description = description; client.channels.edit(channel._id, changes); setChanged(false); } return (