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.

fix weird layout issues

Luna 564bff4a 86ade78d

+63 -45
+5 -1
app/ai-gallery/(home)/filter.component.tsx
··· 11 11 { 12 12 searchParams 13 13 }: { 14 - searchParams: { page: string, model: string; nsfw: string }; 14 + searchParams: { 15 + page: string; 16 + model: string; 17 + nsfw: string 18 + }; 15 19 } 16 20 ) { 17 21 const router = useRouter();
+17 -12
app/dashboard/[guildId]/layout.tsx
··· 6 6 import { redirect, useParams, usePathname } from "next/navigation"; 7 7 import { useCookies } from "next-client-cookies"; 8 8 import { Suspense, useEffect, useState } from "react"; 9 + import { BiLogoYoutube } from "react-icons/bi"; 9 10 import { HiArrowNarrowLeft, HiChartBar, HiCode, HiCursorClick, HiEye, HiHome, HiShare, HiStar, HiUserAdd, HiUsers, HiViewGridAdd } from "react-icons/hi"; 10 11 11 12 import { guildStore } from "@/common/guilds"; ··· 18 19 import { ApiV1GuildsChannelsGetResponse, ApiV1GuildsEmojisGetResponse, ApiV1GuildsGetResponse, ApiV1GuildsRolesGetResponse, RouteErrorResponse } from "@/typings"; 19 20 import { intl } from "@/utils/numbers"; 20 21 import { getCanonicalUrl } from "@/utils/urls"; 21 - import { BiLogoYoutube } from "react-icons/bi"; 22 22 23 23 export default function RootLayout({ 24 24 children ··· 189 189 190 190 <div className="text-lg flex gap-5"> 191 191 <Skeleton isLoaded={!!guild?.id} className="rounded-full h-14 w-14 ring-offset-[var(--background-rgb)] ring-2 ring-offset-2 ring-violet-400/40 shrink-0"> 192 - <ImageReduceMotion url={`https://cdn.discordapp.com/icons/${guild?.id}/${guild?.icon}`} size={128} alt="Server" /> 192 + <ImageReduceMotion 193 + alt="this server" 194 + className="rounded-full" 195 + url={`https://cdn.discordapp.com/icons/${guild?.id}/${guild?.icon}`} 196 + size={128} 197 + /> 193 198 </Skeleton> 194 199 195 200 {!guild?.id ? ··· 232 237 icon: <HiStar /> 233 238 }, 234 239 { 235 - name: "Custom Commands", 236 - value: "/custom-commands", 237 - icon: <HiCode /> 238 - }, 239 - { 240 240 name: "YouTube Notifications", 241 241 value: "/notifications", 242 242 icon: <BiLogoYoutube /> 243 243 }, 244 - // { 245 - // name: "NSFW Image Moderation", 246 - // value: "/nsfw-image-scanning", 247 - // icon: <HiEye /> 248 - // } 244 + { 245 + name: "NSFW Moderation", 246 + value: "/nsfw-image-scanning", 247 + icon: <HiEye /> 248 + }, 249 + { 250 + name: "Custom Commands", 251 + value: "/custom-commands", 252 + icon: <HiCode /> 253 + } 249 254 ]} 250 255 url={`/dashboard/${params.guildId}`} 251 256 disabled={!guild?.id || !!error}
+6 -3
app/layout.tsx
··· 53 53 "discord", "bot", "app", "intefration", "discord bot", "discord app", "discord application", "app list", "waya", "waya bot", "waya.one", "mwya", "mellow", "wamellow", "mwlica", "lunish", "Luna-devv", "mee6 alternative", 54 54 "arcane alternative", "dyno alternative", "starboard", "ranks", "leaderboard", "lb", "leaderboards", "text to speech", "captcha", "passport", "verification", "verify", 55 55 "captcha.bot", "security", "tts", "text to speech", "free", "customizable", "next-gen", "next generation", "ai", "ai images", "nsfw detection", "moderation", "anime", 56 - "nekos", "waifus", "chat to speech", "accessibility", "aphonia", "dysphonia", "mute", "liapew", "wumpus", "wumpus store", "wumpus bots" 56 + "nekos", "waifus", "chat to speech", "accessibility", "aphonia", "dysphonia", "mute", "liapew", "wumpus", "wumpus store", "wumpus bots", "youtube notifications", "youtube notifis", "youtube to discord" 57 57 ], 58 58 59 59 alternates: { ··· 104 104 105 105 <Script defer data-domain="wamellow.com" src="https://analytics.wamellow.com/js/script.js" /> 106 106 107 - <body className={cn("w-full max-w-7xl", outfit.className)}> 107 + <body 108 + className={cn("w-full max-w-7xl !overflow-visible", outfit.className)} 109 + style={{ overflow: "visible" }} 110 + > 108 111 <div id="bg" className="absolute top-0 right-0 w-screen h-screen -z-10" /> 109 112 110 113 <nav className="p-4 flex items-center gap-2 text-base font-medium dark:text-neutral-300 text-neutral-700 select-none h-20"> ··· 124 127 125 128 <div className="flex gap-1"> 126 129 <Link 127 - href="https://lunish.nl/kofi" 130 + href="https://ko-fi.com/mwlica" 128 131 className="dark:hover:bg-wamellow-alpha hover:bg-wamellow-100-alpha py-1 px-3 rounded-md duration-200 hidden sm:flex items-center gap-2 group" 129 132 > 130 133 <SiKofi className="group-hover:text-[#ff6c6b] duration-200 mt-0.5" />
+19 -21
app/leaderboard/[guildId]/page.tsx
··· 94 94 ); 95 95 } 96 96 97 - return ( 98 - <> 99 - {members 100 - .sort((a, b) => (b.activity[searchParams.type] ?? 0) - (a.activity[searchParams.type] ?? 0)) 101 - .map((member, i) => 102 - <Member 103 - key={member.id} 104 - member={member} 105 - index={i + (page * 20) - 19} 106 - type={searchParams.type} 107 - pagination={pagination} 108 - members={members} 109 - /> 110 - )} 97 + return (<> 98 + {members 99 + .sort((a, b) => (b.activity[searchParams.type] ?? 0) - (a.activity[searchParams.type] ?? 0)) 100 + .map((member, i) => 101 + <Member 102 + key={member.id} 103 + member={member} 104 + index={i + (page * 20) - 19} 105 + type={searchParams.type} 106 + pagination={pagination} 107 + members={members} 108 + /> 109 + )} 111 110 112 - <Pagination 113 - key={searchParams.type} 114 - searchParams={searchParams} 115 - pages={pagination[searchParams.type].pages} 116 - /> 117 - </> 118 - ); 111 + <Pagination 112 + key={searchParams.type} 113 + searchParams={searchParams} 114 + pages={pagination[searchParams.type].pages} 115 + /> 116 + </>); 119 117 }
+3 -4
app/leaderboard/[guildId]/pagination.component.tsx
··· 2 2 3 3 import { Pagination as UiPagination } from "@nextui-org/react"; 4 4 import { useRouter } from "next/navigation"; 5 + import { useCookies } from "next-client-cookies"; 5 6 6 - import { userStore } from "@/common/user"; 7 7 import LoginButton from "@/components/login-button"; 8 8 9 9 export default function Pagination( ··· 15 15 pages: number; 16 16 } 17 17 ) { 18 - const user = userStore((s) => s); 18 + const cookies = useCookies(); 19 19 const router = useRouter(); 20 20 21 - if (!user?.__fetched) return <></>; 22 21 23 - if (!user?.id) return ( 22 + if (!cookies.get("hasSession")) return ( 24 23 <LoginButton 25 24 addClassName="justify-center" 26 25 message="Login to view more"
+6 -2
app/profile/layout.tsx
··· 17 17 import { cacheOptions, getData } from "@/lib/api"; 18 18 import SadWumpusPic from "@/public/sad-wumpus.gif"; 19 19 import { ApiV1UsersMeGetResponse } from "@/typings"; 20 - import decimalToRgb from "@/utils/decimalToRgb"; 21 20 22 21 export default function RootLayout({ 23 22 children ··· 75 74 isLoaded={!!user?.id} 76 75 className="rounded-full h-14 w-14 ring-offset-[var(--background-rgb)] ring-2 ring-offset-2 ring-violet-400/40 shrink-0 relative top-1" 77 76 > 78 - <ImageReduceMotion url={`https://cdn.discordapp.com/avatars/${user?.id}/${user?.avatar}`} size={128} alt="you" /> 77 + <ImageReduceMotion 78 + alt="you" 79 + className="rounded-full" 80 + url={`https://cdn.discordapp.com/avatars/${user?.id}/${user?.avatar}`} 81 + size={128} 82 + /> 79 83 </Skeleton> 80 84 81 85 {!user?.id ?
+7 -2
components/header.tsx
··· 59 59 > 60 60 61 61 <Skeleton isLoaded={!!user?.id} className="rounded-full mr-2 h-[30px] w-[30px]"> 62 - <ImageReduceMotion url={`https://cdn.discordapp.com/avatars/${user?.id}/${user?.avatar}`} size={96} alt="your avatar" /> 62 + <ImageReduceMotion 63 + alt="your avatar" 64 + className="rounded-full" 65 + url={`https://cdn.discordapp.com/avatars/${user?.id}/${user?.avatar}`} 66 + size={96} 67 + /> 63 68 </Skeleton> 64 69 65 70 {!user?.id ? ··· 250 255 {user?.id && menu && 251 256 <div className="pr-4 flex text-base font-medium dark:text-neutral-300 text-neutral-700 overflow-x-hidden"> 252 257 <div className="ml-auto"> 253 - <div className="absolute left-0 sm:left-auto px-4 sm:px-0 z-40 w-full"> 258 + <div className="absolute left-0 sm:left-auto px-4 sm:px-0 z-40 w-full sm:w-0"> 254 259 {UserDropdown} 255 260 </div> 256 261 </div>