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.

add `Wave to say hi!`

Luna 8791231b bd164833

+87 -1
+78
app/dashboard/[guildId]/greeting/welcome/page.tsx
··· 17 17 import Switch from "@/components/inputs/switch"; 18 18 import Notice from "@/components/notice"; 19 19 import { ApiV1GuildsModulesWelcomeGetResponse, RouteErrorResponse } from "@/typings"; 20 + import { Section } from "@/components/section"; 20 21 21 22 export default function Home() { 22 23 const guild = guildStore((g) => g); ··· 311 312 </div> 312 313 313 314 </MessageCreatorEmbed> 315 + 316 + <Section 317 + title="Wave to say hi!" 318 + > 319 + Bring Discord's "Wave to say hi!" feature on customized messages, just with a random greet! 320 + </Section> 321 + 322 + <Switch 323 + name="Enable button" 324 + url={`/guilds/${guild?.id}/modules/welcome`} 325 + dataName="button.enabled" 326 + defaultState={welcome.button?.enabled} 327 + disabled={!welcome.enabled} 328 + onSave={(s) => { 329 + setWelcome({ 330 + ...welcome, 331 + button: { 332 + ...welcome.button, 333 + enabled: s 334 + } 335 + }); 336 + }} 337 + /> 338 + 339 + <Switch 340 + name="Ping new member" 341 + description="Whenever the mention in the greet message should ping or not." 342 + url={`/guilds/${guild?.id}/modules/welcome`} 343 + dataName="button.ping" 344 + defaultState={welcome.button?.ping || false} 345 + disabled={!welcome.enabled || !welcome.button?.enabled} 346 + /> 347 + 348 + <div className="lg:flex gap-3"> 349 + <div className="lg:w-1/2"> 350 + <SelectMenu 351 + name="Button color" 352 + url={`/guilds/${guild?.id}/modules/welcome`} 353 + dataName="button.style" 354 + items={ 355 + [ 356 + ["852956037111349269", "Grey", 2], 357 + ["1021446883685695538", "Blurple", 1], 358 + ["1021446892707647498", "Green", 3], 359 + ["1021446888773386300", "Red", 4] 360 + ] 361 + .map(([emoji, name, id]) => { 362 + return { 363 + icon: <Image src={`https://cdn.discordapp.com/emojis/${emoji}.webp?size=64&quality=lossless`} className="rounded-md h-6 w-6" alt={name as string} height={64} width={64} />, 364 + name: name as string, 365 + value: id 366 + }; 367 + }) || [] 368 + } 369 + description="Select emotes which will be reacted with on welcome messages." 370 + defaultState={welcome?.button?.style} 371 + disabled={!welcome.enabled || !welcome.button?.enabled} 372 + /> 373 + </div> 374 + <div className="lg:w-1/2"> 375 + <SelectMenu 376 + name="Button emoji" 377 + url={`/guilds/${guild?.id}/modules/welcome`} 378 + dataName="button.emoji" 379 + items={ 380 + guild?.emojis?.sort((a, b) => a.name.localeCompare(b.name)).map((c) => { 381 + return { icon: <Image src={`https://cdn.discordapp.com/emojis/${c.id}.webp?size=64&quality=lossless`} className="rounded-md h-6 w-6" alt={c.name} height={64} width={64} />, name: c.name.replace(/-|_/g, " "), value: c.id }; 382 + }) || [] 383 + } 384 + description="Select an emoji which will be used in the button." 385 + defaultState={welcome?.button?.emoji} 386 + disabled={!welcome.enabled || !welcome.button?.enabled} 387 + /> 388 + </div> 389 + </div> 390 + 391 + <div className="h-48" /> 314 392 315 393 </div> 316 394 );
+9 -1
typings.ts
··· 108 108 export interface ApiV1GuildsModulesWelcomeGetResponse { 109 109 enabled: boolean; 110 110 channelId?: string; 111 - webhookURL?: string; 112 111 113 112 message: { 114 113 content?: string; ··· 139 138 inEmbed: boolean; 140 139 background?: string; 141 140 textColor?: number; 141 + }; 142 + 143 + button: { 144 + enabled: boolean; 145 + style: 1 | 2 | 3 | 4; 146 + emoji?: string | null; 147 + label?: string | null; 148 + ping?: boolean; 149 + type: 0; 142 150 }; 143 151 } 144 152