From bc2a78e5af3530f2dbb7a3d5b1e39a6fbe71a012 Mon Sep 17 00:00:00 2001 From: Hampus Kraft Date: Thu, 19 Feb 2026 13:51:49 +0000 Subject: [PATCH] feat: make custom notification sounds free for all --- .../components/FeatureComparisonTable.tsx | 1 - .../modals/tabs/NotificationsTab.tsx | 2 - .../modals/tabs/notifications_tab/Inline.tsx | 2 - .../tabs/notifications_tab/Sounds.module.css | 36 ----- .../modals/tabs/notifications_tab/Sounds.tsx | 68 ++------- .../notifications_tab/useSoundSettings.tsx | 32 +--- fluxer_app/src/locales/ar/messages.po | 144 ++++++++---------- fluxer_app/src/locales/bg/messages.po | 144 ++++++++---------- fluxer_app/src/locales/cs/messages.po | 144 ++++++++---------- fluxer_app/src/locales/da/messages.po | 144 ++++++++---------- fluxer_app/src/locales/de/messages.po | 144 ++++++++---------- fluxer_app/src/locales/el/messages.po | 144 ++++++++---------- fluxer_app/src/locales/en-GB/messages.po | 144 ++++++++---------- fluxer_app/src/locales/en-US/messages.po | 144 ++++++++---------- fluxer_app/src/locales/es-419/messages.po | 144 ++++++++---------- fluxer_app/src/locales/es-ES/messages.po | 144 ++++++++---------- fluxer_app/src/locales/fi/messages.po | 144 ++++++++---------- fluxer_app/src/locales/fr/messages.po | 144 ++++++++---------- fluxer_app/src/locales/he/messages.po | 144 ++++++++---------- fluxer_app/src/locales/hi/messages.po | 144 ++++++++---------- fluxer_app/src/locales/hr/messages.po | 144 ++++++++---------- fluxer_app/src/locales/hu/messages.po | 144 ++++++++---------- fluxer_app/src/locales/id/messages.po | 144 ++++++++---------- fluxer_app/src/locales/it/messages.po | 144 ++++++++---------- fluxer_app/src/locales/ja/messages.po | 144 ++++++++---------- fluxer_app/src/locales/ko/messages.po | 144 ++++++++---------- fluxer_app/src/locales/lt/messages.po | 144 ++++++++---------- fluxer_app/src/locales/nl/messages.po | 144 ++++++++---------- fluxer_app/src/locales/no/messages.po | 144 ++++++++---------- fluxer_app/src/locales/pl/messages.po | 144 ++++++++---------- fluxer_app/src/locales/pt-BR/messages.po | 144 ++++++++---------- fluxer_app/src/locales/ro/messages.po | 144 ++++++++---------- fluxer_app/src/locales/ru/messages.po | 144 ++++++++---------- fluxer_app/src/locales/sv-SE/messages.po | 144 ++++++++---------- fluxer_app/src/locales/th/messages.po | 144 ++++++++---------- fluxer_app/src/locales/tr/messages.po | 144 ++++++++---------- fluxer_app/src/locales/uk/messages.po | 144 ++++++++---------- fluxer_app/src/locales/vi/messages.po | 144 ++++++++---------- fluxer_app/src/locales/zh-CN/messages.po | 144 ++++++++---------- fluxer_app/src/locales/zh-TW/messages.po | 144 ++++++++---------- fluxer_docs/resources/instance.mdx | 1 + packages/constants/src/PlutoniumPerks.tsx | 8 - packages/limits/src/LimitDefaults.tsx | 2 +- .../marketing/src/pages/PlutoniumPage.tsx | 9 -- 44 files changed, 2229 insertions(+), 2828 deletions(-) diff --git a/fluxer_app/src/components/modals/components/FeatureComparisonTable.tsx b/fluxer_app/src/components/modals/components/FeatureComparisonTable.tsx index 158ca993..0aa6a264 100644 --- a/fluxer_app/src/components/modals/components/FeatureComparisonTable.tsx +++ b/fluxer_app/src/components/modals/components/FeatureComparisonTable.tsx @@ -46,7 +46,6 @@ export const FeatureComparisonTable = observer(() => { profile_badge: t`Profile badge`, custom_video_backgrounds: t`Custom video backgrounds`, entrance_sounds: t`Entrance sounds`, - notification_sounds: t`Notification sounds`, communities: t`Communities`, message_character_limit: t`Message character limit`, bookmarked_messages: t`Bookmarked messages`, diff --git a/fluxer_app/src/components/modals/tabs/NotificationsTab.tsx b/fluxer_app/src/components/modals/tabs/NotificationsTab.tsx index 8375757d..66b7ff40 100644 --- a/fluxer_app/src/components/modals/tabs/NotificationsTab.tsx +++ b/fluxer_app/src/components/modals/tabs/NotificationsTab.tsx @@ -40,7 +40,6 @@ const NotificationsTab: React.FC = observer(() => { const {afkTimeout} = UserSettingsStore; const { - hasCustomNotificationSounds, soundTypeLabels, customSounds, handleToggleAllSounds, @@ -71,7 +70,6 @@ const NotificationsTab: React.FC = observer(() => { { const {afkTimeout} = UserSettingsStore; const { - hasCustomNotificationSounds, soundTypeLabels, customSounds, handleToggleAllSounds, @@ -69,7 +68,6 @@ export const NotificationsInlineContent: React.FC = observer(() => { . */ -import * as PremiumModalActionCreators from '@app/actions/PremiumModalActionCreators'; import {Switch} from '@app/components/form/Switch'; import styles from '@app/components/modals/tabs/notifications_tab/Sounds.module.css'; -import {Button} from '@app/components/uikit/button/Button'; import {SwitchGroup, SwitchGroupCustomItem} from '@app/components/uikit/SwitchGroup'; import type {SoundSettings} from '@app/stores/SoundStore'; import type * as CustomSoundDB from '@app/utils/CustomSoundDB'; -import {shouldShowPremiumFeatures} from '@app/utils/PremiumUtils'; import type {SoundType} from '@app/utils/SoundUtils'; import {useLingui} from '@lingui/react/macro'; -import {CrownIcon, SpeakerHighIcon, TrashIcon, UploadIcon} from '@phosphor-icons/react'; +import {SpeakerHighIcon, TrashIcon, UploadIcon} from '@phosphor-icons/react'; import {observer} from 'mobx-react-lite'; import type React from 'react'; interface SoundsProps { soundSettings: SoundSettings; - hasCustomNotificationSounds: boolean; soundTypeLabels: Record; customSounds: Record; onToggleAllSounds: (value: boolean) => void; @@ -48,7 +44,6 @@ interface SoundsProps { export const Sounds: React.FC = observer( ({ soundSettings, - hasCustomNotificationSounds, soundTypeLabels, customSounds, onToggleAllSounds, @@ -64,27 +59,6 @@ export const Sounds: React.FC = observer(

{t`Configure which sounds to play and when.`}

- {!hasCustomNotificationSounds && shouldShowPremiumFeatures() && ( -
-
- - {t`Customize your notification sounds with Plutonium`} -
-

- {t`Upload your own custom notification sounds and ringtones. Supported formats: MP3, WAV, OGG, M4A, AAC, FLAC, Opus, WebM. Maximum file size: 2MB per sound.`} -

- -
- )} - = observer( onChange={onToggleAllSounds} /> - {hasCustomNotificationSounds && ( -
- {t`Click the upload icon next to any sound to customize it with your own audio file. Supported formats: MP3, WAV, OGG, M4A, AAC, FLAC, Opus, WebM (max 2MB).`} -
- )} +
+ {t`Click the upload icon next to any sound to customize it with your own audio file. Supported formats: MP3, WAV, OGG, M4A, AAC, FLAC, Opus, WebM (max 2MB).`} +
{Object.entries(soundTypeLabels).map(([soundType, label]) => ( @@ -116,28 +88,16 @@ export const Sounds: React.FC = observer( clickDisabled={soundSettings.allSoundsDisabled} extraContent={ <> - {hasCustomNotificationSounds ? ( - - ) : shouldShowPremiumFeatures() ? ( - - ) : null} - {customSounds[soundType as SoundType] && hasCustomNotificationSounds && ( + + {customSounds[soundType as SoundType] && (