Files
discord-decomp/modules/notification_center/native/NotificationCenterActionSheet.tsx
T
2026-11-01 12:12:55 +02:00

76 lines
4.4 KiB
TypeScript

// Metro module 15277 (f15278).
import { useCallback } from "react";
import RecentMentionsStore from "../../inbox/RecentMentionsStore";
import { UserSettingsSections } from "../../../Constants";
import { useStateFromStoresObject } from "../../../_bundle/Module589";
import MentionActionCreators from "../../../actions/MentionActionCreators";
import ForLaterExperiment from "../../saved_messages/ForLaterExperiment";
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import hasForLaterPremiumType from "../../saved_messages/hasForLaterPremiumType";
import openPremiumUpsellActionSheet from "../../premium/roadblocks/native/utils/openPremiumUpsellActionSheet";
import { EntitlementFeatureNames } from "../../../_bundle/Module6201";
import { showForLaterModal } from "../../saved_messages/native/showForLaterModal";
import { openUserSettings } from "../../user_settings/core/native/openUserSettings";
import { ActionSheet } from "../../../design/components/Sheet/native/ActionSheet.native";
import { BottomSheetTitleHeader } from "../../../design/components/Sheet/native/BottomSheetTitleHeader.native";
import { intl, t } from "../../../intl/index.native";
import { ActionSheetRow, ActionSheetSwitchRow } from "../../../design/components/Sheet/native/ActionSheetRow.native";
import { AtIcon } from "../../../design/components/Icon/native/redesign/generated/AtIcon";
import Module10390 from "../../../_bundle/Module10390";
import { BellIcon } from "../../../design/components/Icon/native/redesign/generated/BellIcon";
import Module15279 from "../../../_bundle/Module15279";
import { BookmarkIcon } from "../../../design/components/Icon/native/redesign/generated/BookmarkIcon";
import { SavedMessageSortTypes } from "../../saved_messages/SavedMessagesTypes";
import { ClockIcon } from "../../../design/components/Icon/native/redesign/generated/ClockIcon";
import { SettingsIcon } from "../../../design/components/Icon/native/redesign/generated/SettingsIcon";
export default function NotificationCenterActionSheet() {
let roleFilter, everyoneFilter, callback, callback2;
const stateFromStoresObject = useStateFromStoresObject([RecentMentionsStore], () => ({
everyoneFilter: RecentMentionsStore.everyoneFilter,
roleFilter: RecentMentionsStore.roleFilter
}));
roleFilter = stateFromStoresObject.roleFilter;
everyoneFilter = stateFromStoresObject.everyoneFilter;
callback = useCallback((a0) => {
MentionActionCreators.setGuildFilter({
roleFilter,
everyoneFilter,
...a0
});
}, [everyoneFilter, roleFilter]);
const enabled = ForLaterExperiment.useConfig({
location: "NotificationCenterActionSheet"
}).enabled;
callback2 = useCallback((a0) => {
ActionSheetActionCreators.hideActionSheet();
if (hasForLaterPremiumType()) {
showForLaterModal(a0);
} else {
openPremiumUpsellActionSheet(EntitlementFeatureNames.SAVED_MESSAGES);
}
}, []);
const callback3 = useCallback(() => {
ActionSheetActionCreators.hideActionSheet();
openUserSettings({
screen: UserSettingsSections.NOTIFICATIONS
});
}, []);
const props = {
showGradient: true,
header: <BottomSheetTitleHeader title={intl.string(t.HcoRu0)} />,
children: [<ActionSheetRow.Group hasIcons>
<ActionSheetSwitchRow onValueChange={() => callback({
roleFilter: !roleFilter
})} value={roleFilter} label={intl.string(t.asInft)} icon={<ActionSheetRow.Icon IconComponent={AtIcon} source={Module10390} />} />
<ActionSheetSwitchRow onValueChange={() => callback({
everyoneFilter: !everyoneFilter
})} value={everyoneFilter} label={intl.string(t.S9GLtt)} subLabel={intl.string(t.jYgZa4)} icon={<ActionSheetRow.Icon IconComponent={BellIcon} source={Module15279} />} />
</ActionSheetRow.Group>, <ActionSheetRow.Group hasIcons>
{enabled ? <ActionSheetRow key="bookmarks" icon={<ActionSheetRow.Icon IconComponent={BookmarkIcon} />} label={intl.string(t["2pAkDA"])} onPress={() => callback2(SavedMessageSortTypes.BOOKMARK)} arrow /> : null}
{enabled ? <ActionSheetRow key="reminders" icon={<ActionSheetRow.Icon IconComponent={ClockIcon} />} label={intl.string(t.aUXxzT)} onPress={() => callback2(SavedMessageSortTypes.REMINDER)} arrow /> : null}
<ActionSheetRow key="settings" icon={<ActionSheetRow.Icon IconComponent={SettingsIcon} />} label={intl.string(t.h850Ss)} onPress={callback3} arrow />
</ActionSheetRow.Group>]
};
return <ActionSheet {...props} />;
};