import Image from "next/image"; import { useRouter } from "next/router"; import { useCallback, useEffect, useState } from "react"; import { Channel, User } from "../../../@types/dts/user"; import { FaUserSlash, FaSave } from "react-icons/fa"; import { BsThreeDots, BsFillGearFill } from "react-icons/bs"; import Link from "next/link"; import styles from "styles/sass/Animations.module.scss"; import { AiOutlineCamera } from "react-icons/ai"; import { useDropzone } from "react-dropzone"; export default function Members({ user, channel, }: { user: User; channel: Channel; }) { const [members, setMembers] = useState([]); const router = useRouter(); useEffect(() => { fetch(`/api/v1/channels/${router.query.id}/members`) .then((res) => res.json()) .then(setMembers); }, [router]); return (
{members.map((member, index) => (
{`${member.username}

{member.username}

{member.id}

))}
); } function UserTab({ user }: { user: User }) { const [open, setOpen] = useState(false); var censorWord = function (str: string) { return str[0] + "*".repeat(str.length - 2) + str.slice(-1); }; var censorEmail = function (email: string) { var arr = email.split("@"); return censorWord(arr[0]) + "@" + censorWord(arr[1]); }; return (
{`${user.username}

{user.username}

{censorEmail(user.email)}

setOpen(!open)} /> {open && }
); } function ChannelTab({ channel }: { channel: Channel }) { const [data, setData] = useState(channel.icon); const [changed, setChanged] = useState(false); const onDrop = useCallback(([file]: File[]) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function () { setData(reader.result as string); setChanged(true); }; }, []); const { getInputProps, getRootProps } = useDropzone({ onDrop, maxFiles: 1, accept: { "image/png": [".png", ".jpg", ".jpeg"] }, maxSize: 8388608, }); const router = useRouter(); return (
{`${channel.name}

{channel.name}

{changed && ( { fetch(`/api/v1/channels/${router.query.id}/icon`, { method: "POST", body: JSON.stringify({ data }), }).then(() => { setTimeout( () => location.replace(`/app/@me/channels/${router.query.id}`), 1500 ); }); }} /> )}
); } function MembersDropdown() { return (

Logout

Settings

); }