The weeb for the next gen discord boat - Wamellow wamellow.com
bot discord
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

eslint fixes

Luna e70b4757 0441b371

+32 -31
+1
.github/FUNDING.yml
··· 1 + kofi: mwlica
+18 -20
app/(home)/page.tsx
··· 20 20 import ArrowPic from "@/public/arroww.webp"; 21 21 import CaptchaPic from "@/public/captcha.webp"; 22 22 import LeaderboardPic from "@/public/leaderboard.webp"; 23 + import NotificationsPic from "@/public/notifications-thumbnail.webp"; 23 24 import SpacePic from "@/public/space.webp"; 24 25 import WaifuPic from "@/public/waifu.webp"; 25 26 import WelcomePic from "@/public/welcome.webp"; 26 - import NotificationsPic from "@/public/notifications-thumbnail.webp"; 27 + import { ApiV1TopguildsGetResponse } from "@/typings"; 27 28 import cn from "@/utils/cn"; 28 29 import { toFixedArrayLength } from "@/utils/fixed-array-length"; 29 30 import { actor } from "@/utils/tts"; ··· 33 34 import Faq from "./faq.component"; 34 35 import Ratings from "./ratings.component"; 35 36 import Stats from "./stats.component"; 36 - import { ApiV1TopguildsGetResponse } from "@/typings"; 37 37 38 38 const montserrat = Montserrat({ subsets: ["latin"] }); 39 39 const handwritten = Patrick_Hand({ subsets: ["latin"], weight: "400" }); ··· 52 52 h3: cn(montserrat.className, "lg:text-2xl text-xl bg-gradient-to-b bg-clip-text text-transparent from-neutral-200 from-40% to-neutral-300 font-semibold") 53 53 }; 54 54 55 - const messageProps = (command?: string) => { 56 - return { 57 - mode: "DARK" as const, 58 - commandUsed: command 59 - ? { 60 - name: command, 61 - username: "@mwlica", 62 - avatar: "/luna-small.webp", 63 - bot: false 64 - } 65 - : undefined, 66 - 67 - user: { 68 - username: "Wamellow", 69 - avatar: "/waya-v3-small.webp", 70 - bot: true 55 + const messageProps = (command?: string) => ({ 56 + mode: "DARK" as const, 57 + commandUsed: command 58 + ? { 59 + name: command, 60 + username: "@mwlica", 61 + avatar: "/luna-small.webp", 62 + bot: false 71 63 } 72 - } as const; 73 - }; 64 + : undefined, 65 + 66 + user: { 67 + username: "Wamellow", 68 + avatar: "/waya-v3-small.webp", 69 + bot: true 70 + } 71 + }); 74 72 75 73 const Invite = () => ( 76 74 <ServerButton
+12 -10
app/dashboard/[guildId]/notifications/create.component.tsx
··· 1 1 "use client"; 2 2 3 3 import { Button, Chip } from "@nextui-org/react"; 4 + import Image from "next/image"; 5 + import Link from "next/link"; 4 6 import { useState } from "react"; 5 7 import { HiPencil } from "react-icons/hi"; 6 8 9 + import { guildStore } from "@/common/guilds"; 7 10 import DumbTextInput from "@/components/inputs/dumb-text-input"; 11 + import SelectMenu from "@/components/inputs/select-menu"; 8 12 import Modal from "@/components/modal"; 13 + import TutorialPic from "@/public/docs-assets/notifications-get-handle.webp"; 9 14 import { ApiV1GuildsModulesNotificationsGetResponse } from "@/typings"; 10 - import SelectMenu from "@/components/inputs/select-menu"; 11 - import { guildStore } from "@/common/guilds"; 12 - 13 - import TutorialPic from "@/public/docs-assets/notifications-get-handle.webp" 14 - import Image from "next/image"; 15 - import Link from "next/link"; 16 15 17 16 const URL_CHANNEL_REGEX = /^https:\/\/(www\.)?youtube\.com\/channel\/UC([a-zA-Z0-9_-]{16,32})$/; 18 - const URL_HANDLE_REGEX = /^https:\/\/(www\.)?youtube\.com\/@([a-zA-Z0-9\._-]{3,30})$/; 17 + const URL_HANDLE_REGEX = /^https:\/\/(www\.)?youtube\.com\/@([a-zA-Z0-9._-]{3,30})$/; 19 18 const CHANNEL_ID = /^UC[a-zA-Z0-9_-]{16,32}$/; 20 - const CHANNE_HANDLE = /^@?[a-zA-Z0-9\._-]{3,30}$/; 19 + const CHANNE_HANDLE = /^@?[a-zA-Z0-9._-]{3,30}$/; 21 20 22 21 export enum Style { 23 22 Compact = 1, ··· 37 36 38 37 const [open, setOpen] = useState(false); 39 38 const [name, setName] = useState(""); 40 - const [channelId, setChannelId] = useState<string>(); 39 + const [channelId, setChannelId] = useState<string | null>(null); 41 40 42 41 function validateAccount(input: string) { 43 42 if (URL_CHANNEL_REGEX.exec(input)) return input.split("/channel/")[1]; ··· 101 100 onSuccess={(tag) => { 102 101 addNotification(tag); 103 102 setNotificationId(tag.id); 103 + 104 + setName(""); 105 + setChannelId(null); 104 106 }} 105 107 > 106 108 <DumbTextInput ··· 121 123 /> 122 124 123 125 <div className="flex items-center gap-2"> 124 - <span className="text-lg dark:text-neutral-300 text-neutral-700 font-medium">How to get a channel's @handle or Id</span> 126 + <span className="text-lg dark:text-neutral-300 text-neutral-700 font-medium">How to get a channel&apos;s @handle or Id</span> 125 127 </div> 126 128 127 129 <Link
+1 -1
app/leaderboard/[guildId]/layout.tsx
··· 18 18 children: React.ReactNode; 19 19 } 20 20 21 - export const revalidate = 60 * 60; 21 + export const revalidate = 3600; 22 22 23 23 export const generateMetadata = async ({ 24 24 params