Files
discord-decomp/modules/parent_tools/hooks/useParentalControlSettings.tsx
T
2026-11-01 12:12:55 +02:00

132 lines
5.0 KiB
TypeScript

// Metro module 13855 (f13856).
import { useMemo, useCallback } from "react";
import FamilyCenterControlledSettingsStore from "../FamilyCenterControlledSettingsStore";
import { SafetyToastType } from "../../safety_common/Constants";
import { useSelectedTeen, useSelectedTeenId } from "./useSelectedTeen";
import { ParentalControlledExplicitContent, ParentalControlledGoreContent, ParentalControlledDefaultGuildsRestricted, ParentalControlledDefaultGuildsRestrictedV2, ParentalControlledFriendSourceFlags } from "../../user_settings/family_center/ParentalControlledUserSettings";
import { resolveExplicitContentSettingWithDefaultsForTeen, isSetAndNotDefault } from "../FamilyCenterControlledSettingsUtils";
import { ExplicitContentRedaction } from "../../../_bundle/Module1306";
import { resolveGoreSettingWithDefaultsForTeen } from "../../explicit_media_redaction/SensitiveMediaGoreRedactionSettingsUtils";
import { computeFlags } from "../../../utils/UserSettingsUtils";
import { useHasActiveParentLinks } from "./useUserLinks";
import { useStateFromStores } from "../../../_bundle/Module589";
import FamilyCenterActionCreators from "../FamilyCenterActionCreators";
import SafetyToastsActionCreators_native from "../../safety_common/SafetyToastsActionCreators.native";
let env9655 = {};
export function useParentalControlledExplicitContentSettings() {
const selectedTeen = useSelectedTeen();
const controlledSetting2 = ParentalControlledExplicitContent.useControlledSetting(selectedTeen?.id);
return selectedTeen == null ? null : {
explicitContentNonFriendDm: resolveExplicitContentSettingWithDefaultsForTeen({
teenId: selectedTeen?.id,
setting: controlledSetting2?.explicitContentNonFriendDm
}),
explicitContentFriendDm: resolveExplicitContentSettingWithDefaultsForTeen({
teenId: selectedTeen?.id,
setting: controlledSetting2?.explicitContentFriendDm,
isFriend: true
}),
explicitContentGuilds: ExplicitContentRedaction.BLUR
};
}
export function useParentalControlledGoreContentSettings() {
const selectedTeen = useSelectedTeen();
let r16 = ParentalControlledGoreContent.useControlledSetting(selectedTeen?.id);
if (selectedTeen == null) {
return null;
}
if (r16 == null) {
r16 = {};
}
let goreContentNonFriendDm = r16.goreContentNonFriendDm;
let goreContentFriendDm = r16.goreContentFriendDm;
if (!isSetAndNotDefault(goreContentNonFriendDm)) {
goreContentNonFriendDm = resolveGoreSettingWithDefaultsForTeen({
isDm: true
});
}
if (!isSetAndNotDefault(goreContentFriendDm)) {
goreContentFriendDm = resolveGoreSettingWithDefaultsForTeen({
isDm: true,
isFriend: true
});
}
return {
goreContentNonFriendDm,
goreContentFriendDm,
goreContentGuilds: ExplicitContentRedaction.BLUR
};
}
export function useDefaultGuildsRestricted() {
const selectedTeen = useSelectedTeen();
const controlledSetting2 = ParentalControlledDefaultGuildsRestricted.useControlledSetting(selectedTeen?.id);
let r22 = ParentalControlledDefaultGuildsRestrictedV2.useControlledSetting(selectedTeen?.id);
if (r22 == null) {
r22 = !!controlledSetting2 || controlledSetting2;
}
return r22;
}
export function useAllowFriendsFromMutualGuildsOnlyForTeen() {
const id = useSelectedTeen()?.id;
const controlledSetting = ParentalControlledFriendSourceFlags.useControlledSetting(id);
const memo = useMemo(() => computeFlags(controlledSetting), [controlledSetting]);
return memo.mutualGuilds && !memo.all;
}
export function useIsParentallyControlled() {
return useHasActiveParentLinks();
}
export function useParentalControlledConsent(a0) {
let env20758;
let c20759_0;
const selectedTeenId = useSelectedTeenId();
const stateFromStores = useStateFromStores([FamilyCenterControlledSettingsStore], () => FamilyCenterControlledSettingsStore.hasConsented(selectedTeenId, a0));
env20758 = {
$parent: env9655
};
env20758[0] = a0;
env20758[1] = void 0;
const selectedTeenId2 = useSelectedTeenId();
env20758[1] = selectedTeenId2;
c20759_0 = void 0;
c20759_0 = async (c31701_0) => {
let c31701_4 = 0;
L19: {
try {
const r18 = env20758[1];
if (r18 != null) {
const r17 = c31701_0 ? [env20758[0]] : [];
const r31 = c31701_0 ? [] : [env20758[0]];
c31701_4 = 1;
await FamilyCenterActionCreators.updateTeenConsents(r18, r17, r31);
c31701_4 = 0;
break L19;
}
} catch ($e) {
let r7 = $e;
if (c31701_4 !== 0) {
while (true) {
try {
c31701_4 = 0;
SafetyToastsActionCreators_native.showFailedToast(SafetyToastType.GENERIC_ERROR);
break L19;
} catch ($e) {
r7 = $e;
if (c31701_4 === 0) {
break;
}
}
}
}
throw r7;
}
return void 0;
}
};
return {
hasConsented: stateFromStores,
updateConsent: useCallback(function() {
return c20759_0.apply(this, arguments);
}, [selectedTeenId2, a0])
};
}