import { useEffect, useState, memo } from 'react'; import { SERVER_BASE_URL } from './App'; export var SettingsModal = memo(function SettingsModal({ open, setOpen, user, updateUser, theme, setTheme }) { var [emojis, setEmojis] = useState([]); async function getEmojis() { var emojis = await (await fetch(SERVER_BASE_URL + "/emojis")).json(); return emojis; } useEffect(function () { if (open) { getEmojis().then(setEmojis); } }, [open]); function EmojiUploader({ setEmojis }) { var [file, setFile] = useState(null); var [name, setName] = useState(""); async function onSubmit(event) { event.preventDefault(); if (!name || !file) return; var _file = file; setFile(null); var _name = name; setName(""); var res = await fetch(SERVER_BASE_URL + "/emoji/" + _name + "?type=" + encodeURIComponent(_file.type), { method: "PUT", body: await _file.arrayBuffer() }); if (res.status === 201) setEmojis(emojis => [...emojis, _name]); else alert(await res.text()); } return
setFile(event.target.files[0])} /> setName(event.target.value.replace(/[^a-z0-9-_]/gi, ''))} />
; } if (open) return
setOpen(false)}>
e.stopPropagation()}>
Settings
Emoji
{emojis.map(emoji => {`:${emoji}:`})}
Upload Emoji
Report bug
https://gitea.moe/lamp/chat
; });