add: added channel purge button

This commit is contained in:
Lukian 2025-04-09 12:49:26 +02:00
parent 102f6c1a9a
commit 172c5dfeed
5 changed files with 98 additions and 20 deletions

View file

@ -23,13 +23,8 @@ export default function ChannelPage({socket}: {socket: WebSocket}) {
axios
.post(`/api/channels/${name}/messages/send`, { token, message})
.then(() => {
axios
.get(`/api/channels/${name}/messages`)
.then((res) => {
setMessages(res.data);
setMessage("");
}
);
setMessage("");
setSearchedUsers([]);
})
.catch((err) => {
console.error(err.response);
@ -39,19 +34,20 @@ export default function ChannelPage({socket}: {socket: WebSocket}) {
function deleteMessage(message_id: number) {
axios
.post(`/api/channels/${name}/messages/delete`, { token, message_id })
.then(() => {
axios
.get(`/api/channels/${name}/messages`)
.then((res) => {
setMessages(res.data);
}
);
})
.catch((err) => {
console.error(err.response);
});
}
function purgeChannel() {
axios
.post(`/api/channels/${name}/purge`, { token })
.catch((err) => {
console.error(err.response);
}
);
}
useEffect(() => {
const localToken = localStorage.getItem("token");
if (localToken) {
@ -73,7 +69,7 @@ export default function ChannelPage({socket}: {socket: WebSocket}) {
useEffect(() => {
socket.addEventListener('message', function (event) {
const data = JSON.parse(event.data);
if ((data.type === "new_message" || data.type === "delete_message") && data.channel_id === channel?.id) {
if ((data.type === "new_message" || data.type === "delete_message" || data.type === "purge_channel") && data.channel_id === channel?.id) {
axios
.get(`/api/channels/${name}/messages`).then((res) => {
setMessages(res.data)
@ -123,6 +119,11 @@ export default function ChannelPage({socket}: {socket: WebSocket}) {
{channel.name.toLowerCase().includes("cat") && (
<img src="/cat.jpg" alt="cat" className="cat" />
)}
{user?.admin && (
<button onClick={purgeChannel}>
Purge Channel
</button>
)}
{token ? (
<form onSubmit={handleSubmit} className="message-form">
<input

View file

@ -62,7 +62,7 @@ export default function Home({socket}: {socket: WebSocket}) {
socket.addEventListener('message', function (event)
{
const data = JSON.parse(event.data);
if (data.type === "new_message" || data.type === "delete_message") {
if (data.type === "new_message" || data.type === "delete_message" || data.type === "purge_channel") {
axios
.get("/api/lastmessages")
.then((res) => {

View file

@ -47,8 +47,7 @@ export default function UserPage({socket}: {socket: WebSocket}) {
useEffect(() => {
socket.addEventListener('message', function (event) {
const data = JSON.parse(event.data);
if ((data.type === "new_message" || data.type === "delete_message") && data.user_id === pageUser?.id) {
console.log("new message");
if (((data.type === "new_message" || data.type === "delete_message") && data.user_id === pageUser?.id) || data.type === "purge_channel") {
axios
.get(`/api/users/${username}/lastmessages`)
.then((res) => {