/* * Copyright (C) 2026 Fluxer Contributors * * This file is part of Fluxer. * * Fluxer is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Fluxer is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Fluxer. If not, see . */ import {useLingui} from '@lingui/react/macro'; import {observer} from 'mobx-react-lite'; import type React from 'react'; import * as UserSettingsActionCreators from '~/actions/UserSettingsActionCreators'; import {SettingsSection} from '~/components/modals/shared/SettingsSection'; import {SettingsTabContainer, SettingsTabContent} from '~/components/modals/shared/SettingsTabLayout'; import NotificationStore from '~/stores/NotificationStore'; import SoundStore from '~/stores/SoundStore'; import UserSettingsStore from '~/stores/UserSettingsStore'; import {Notifications} from './NotificationsTab/Notifications'; import {PushSettings} from './NotificationsTab/PushSettings'; import {Sounds} from './NotificationsTab/Sounds'; import {useSoundSettings} from './NotificationsTab/useSoundSettings'; const NotificationsTab: React.FC = observer(() => { const {t} = useLingui(); const browserNotificationsEnabled = NotificationStore.browserNotificationsEnabled; const unreadMessageBadgeEnabled = NotificationStore.unreadMessageBadgeEnabled; const soundSettings = SoundStore.settings; const {afkTimeout} = UserSettingsStore; const { hasPremium, soundTypeLabels, customSounds, handleToggleAllSounds, handleToggleSound, handleEnableAllSounds, handleDisableAllSounds, handlePreviewSound, handleUploadClick, handleCustomSoundDelete, } = useSoundSettings(); const handleAfkTimeoutChange = async (value: number) => { try { await UserSettingsActionCreators.update({afkTimeout: value * 60}); } catch {} }; return ( ); }); export default NotificationsTab;