73 lines
4.5 KiB
TypeScript
73 lines
4.5 KiB
TypeScript
// Metro module 10312 (f10313).
|
|
import ChannelStore from "../../../../stores/ChannelStore";
|
|
import UserGuildSettingsStore from "../../../../stores/UserGuildSettingsStore";
|
|
import { UserNotificationSettings } from "../../../../Constants";
|
|
import { UnreadSetting } from "../../../read_states/ReadStateConstants";
|
|
import { ChannelNotificationSettingsFlags } from "../../../user_settings/UserSettingsConstants";
|
|
import { useStateFromStores, useStateFromStoresArray } from "../../../../_bundle/defaultAreStatesEqual";
|
|
import { presetFromSettings, presetName, Presets } from "./notificationSettingsPresetUtils";
|
|
import { filterOverrides } from "../../NotificationUtils";
|
|
import NotificationSettingsModalActionCreators from "../../../../actions/NotificationSettingsModalActionCreators";
|
|
import { withChannelUnreadFlags, resetChannelUnreadFlags } from "./notificationSettingsFlagUtils";
|
|
import { NotificationLabels, NotificationLabel } from "../../../../utils/NotificationSettingsUtils";
|
|
export function useChannelPresetSettings(c17861_0) {
|
|
const stateFromStores = useStateFromStores([UserGuildSettingsStore], () => UserGuildSettingsStore.resolveUnreadSetting(c17861_0));
|
|
const stateFromStores2 = useStateFromStores([UserGuildSettingsStore], () => UserGuildSettingsStore.resolvedMessageNotifications(c17861_0));
|
|
return {
|
|
unread: stateFromStores,
|
|
notification: stateFromStores2,
|
|
preset: presetFromSettings(stateFromStores, stateFromStores2)
|
|
};
|
|
}
|
|
export function useChannelPresetInheritance(a0) {
|
|
const stateFromStoresArray = useStateFromStoresArray([UserGuildSettingsStore], () => filterOverrides(UserGuildSettingsStore.getChannelOverrides(a0.guild_id), {
|
|
ignoreMute: true,
|
|
ignoreUnreadSetting: false,
|
|
ignoreNotificationSetting: false
|
|
}));
|
|
const [inheritedFrom, inheritedPreset] = useStateFromStoresArray([UserGuildSettingsStore, ChannelStore], () => {
|
|
const channel = ChannelStore.getChannel(a0.parent_id);
|
|
return channel != null && stateFromStoresArray.includes(channel.id) ? ["parent", presetName(presetFromSettings(UserGuildSettingsStore.resolveUnreadSetting(channel), UserGuildSettingsStore.resolvedMessageNotifications(channel)))] : ["guild", presetName(presetFromSettings(UserGuildSettingsStore.getGuildUnreadSetting(a0.guild_id), UserGuildSettingsStore.getMessageNotifications(a0.guild_id)))];
|
|
}, [a0.guild_id, a0.parent_id, stateFromStoresArray]);
|
|
return {
|
|
inherited: !stateFromStoresArray.includes(a0.id),
|
|
inheritedFrom,
|
|
inheritedPreset
|
|
};
|
|
}
|
|
export function updateChannelPreset(a0, a1, a2) {
|
|
const channelIdFlags = UserGuildSettingsStore.getChannelIdFlags(a0, a1);
|
|
if (a2 === Presets.ALL_MESSAGES) {
|
|
NotificationSettingsModalActionCreators.updateChannelOverrideSettings(a0, a1, {
|
|
message_notifications: UserNotificationSettings.ALL_MESSAGES,
|
|
flags: withChannelUnreadFlags(channelIdFlags, ChannelNotificationSettingsFlags.UNREADS_ALL_MESSAGES)
|
|
}, NotificationLabels.PresetAll);
|
|
} else if (a2 === Presets.MENTIONS) {
|
|
NotificationSettingsModalActionCreators.updateChannelOverrideSettings(a0, a1, {
|
|
message_notifications: UserNotificationSettings.ONLY_MENTIONS,
|
|
flags: withChannelUnreadFlags(channelIdFlags, ChannelNotificationSettingsFlags.UNREADS_ONLY_MENTIONS)
|
|
}, NotificationLabels.PresetMentions);
|
|
} else if (a2 === Presets.NOTHING) {
|
|
NotificationSettingsModalActionCreators.updateChannelOverrideSettings(a0, a1, {
|
|
message_notifications: UserNotificationSettings.NO_MESSAGES,
|
|
flags: withChannelUnreadFlags(channelIdFlags, ChannelNotificationSettingsFlags.UNREADS_ONLY_MENTIONS)
|
|
}, NotificationLabels.PresetNothing);
|
|
}
|
|
}
|
|
export function updateChannelToGuildDefault(a0, a1) {
|
|
NotificationSettingsModalActionCreators.updateChannelOverrideSettings(a0, a1, {
|
|
message_notifications: UserNotificationSettings.NULL,
|
|
flags: resetChannelUnreadFlags(UserGuildSettingsStore.getChannelIdFlags(a0, a1))
|
|
}, NotificationLabels.PresetDefault);
|
|
}
|
|
export function updateChannelUnreadSetting(a0, a1, a2) {
|
|
NotificationSettingsModalActionCreators.updateChannelOverrideSettings(a0, a1, {
|
|
flags: withChannelUnreadFlags(UserGuildSettingsStore.getChannelIdFlags(a0, a1), a2 === UnreadSetting.ALL_MESSAGES ? ChannelNotificationSettingsFlags.UNREADS_ALL_MESSAGES : ChannelNotificationSettingsFlags.UNREADS_ONLY_MENTIONS)
|
|
}, NotificationLabel.unreads(a2));
|
|
}
|
|
export function updateChannelNotificationSetting(a0, a1, a2) {
|
|
NotificationSettingsModalActionCreators.updateChannelOverrideSettings(a0, a1, {
|
|
message_notifications: a2
|
|
}, NotificationLabel.notifications(a2));
|
|
}
|