132 lines
5.0 KiB
TypeScript
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])
|
|
};
|
|
}
|