From f41b28c31d2cfae271847abb93c11ca76029f94b Mon Sep 17 00:00:00 2001 From: Paulo Castellano Date: Mon, 15 Jun 2026 13:23:03 -0300 Subject: [PATCH] feat(discord): global floating Discord widget with PostHog tracking - Fixed bottom-right Discord button (indies-club style) linking to https://trypost.it/discord, mounted globally in AppSidebarLayout - Captures discord.clicked (placement: floating_widget) via captureEvent - i18n label + aria-label in common.php (en, es, pt-BR) Co-Authored-By: Claude Opus 4.8 (1M context) --- lang/en/common.php | 6 +++++ lang/es/common.php | 6 +++++ lang/pt-BR/common.php | 6 +++++ resources/js/components/DiscordWidget.vue | 27 +++++++++++++++++++ resources/js/layouts/app/AppSidebarLayout.vue | 2 ++ 5 files changed, 47 insertions(+) create mode 100644 resources/js/components/DiscordWidget.vue diff --git a/lang/en/common.php b/lang/en/common.php index c348d641..7d29a8b0 100644 --- a/lang/en/common.php +++ b/lang/en/common.php @@ -3,6 +3,12 @@ declare(strict_types=1); return [ + + 'discord' => [ + 'label' => 'Discord', + 'join' => 'Join our Discord community', + ], + 'back' => 'Back', 'confirm_modal' => [ diff --git a/lang/es/common.php b/lang/es/common.php index 261d31e3..115c0549 100644 --- a/lang/es/common.php +++ b/lang/es/common.php @@ -3,6 +3,12 @@ declare(strict_types=1); return [ + + 'discord' => [ + 'label' => 'Discord', + 'join' => 'Unite a nuestra comunidad en Discord', + ], + 'back' => 'Volver', 'confirm_modal' => [ diff --git a/lang/pt-BR/common.php b/lang/pt-BR/common.php index 0b0c2c51..9826eebc 100644 --- a/lang/pt-BR/common.php +++ b/lang/pt-BR/common.php @@ -3,6 +3,12 @@ declare(strict_types=1); return [ + + 'discord' => [ + 'label' => 'Discord', + 'join' => 'Entre na nossa comunidade no Discord', + ], + 'back' => 'Voltar', 'confirm_modal' => [ diff --git a/resources/js/components/DiscordWidget.vue b/resources/js/components/DiscordWidget.vue new file mode 100644 index 00000000..52e3d339 --- /dev/null +++ b/resources/js/components/DiscordWidget.vue @@ -0,0 +1,27 @@ + + + diff --git a/resources/js/layouts/app/AppSidebarLayout.vue b/resources/js/layouts/app/AppSidebarLayout.vue index 0329df33..13c6601a 100644 --- a/resources/js/layouts/app/AppSidebarLayout.vue +++ b/resources/js/layouts/app/AppSidebarLayout.vue @@ -4,6 +4,7 @@ import { onBeforeUnmount, onMounted } from 'vue'; import AppHeader from '@/components/AppHeader.vue'; import AppSidebar from '@/components/AppSidebar.vue'; +import DiscordWidget from '@/components/DiscordWidget.vue'; import Toast from '@/components/Toast.vue'; import { SidebarInset, SidebarProvider, SidebarTrigger } from '@/components/ui/sidebar'; import UpgradeDialog from '@/components/UpgradeDialog.vue'; @@ -76,4 +77,5 @@ onBeforeUnmount(() => { +