// Metro module 15650 (f15651).
import { useLayoutEffect, useMemo, useState, useEffect, useCallback } from "react";
import { View, ScrollView } from "react-native";
import ChannelSettingsPermissionsStore from "../../../../stores/ChannelSettingsPermissionsStore";
import ChannelStore from "../../../../stores/ChannelStore";
import GuildMemberStore from "../../../../stores/GuildMemberStore";
import GuildRoleStore from "../../../../stores/GuildRoleStore";
import GuildStore from "../../../../stores/GuildStore";
import PermissionStore from "../../../../stores/PermissionStore";
import RelationshipStore from "../../../../stores/RelationshipStore";
import UserStore from "../../../../stores/UserStore";
import { SettingMode } from "../../ChannelPermissionsConstants";
import { Permissions, ChannelTypes, AnalyticEvents, ChannelSettingsSections, SettingsPaneTypes } from "../../../../Constants";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { useNavigation } from "../../../../design/components/Navigator/native/useNavigation.native";
import { useStateFromStoresObject, useStateFromStores } from "../../../../_bundle/Module589";
import * as _ChannelPermissionsUtils from "../../ChannelPermissionsUtils";
import { flipEveryonePermission, grantUserChannelAccess, getExistingRolesRows, getExistingMembersRows } from "../../ChannelPermissionsUtils";
import { savePermissionUpdates, setAdvancedMode } from "../../../../actions/ChannelSettingsPermissionsActionCreators";
import { checkChattableChannelThresholdMetAfterChannelPermissionDeny } from "../../../guild_onboarding/DefaultChannelThresholdUtils";
import { intl, t } from "../../../../intl/index.native";
import { computeChannelName } from "../../../channel/useChannelName";
import AlertActionCreators from "../../../../actions/AlertActionCreators";
import ChannelOverwritesItem from "./ChannelOverwritesItem";
import * as _PermissionUtils from "../../../../utils/PermissionUtils";
import { Stack } from "../../../../design/components/Stack/native/Stack.native";
import { TableRowGroup } from "../../../../design/components/TableRow/native/TableRowGroup.native";
import { TableSwitchRow } from "../../../../design/components/TableRow/native/TableSwitchRow.native";
import { HelpMessage, HelpMessageTypes } from "../../../../design/void/native";
import { TableRow } from "../../../../design/components/TableRow/native/TableRow.native";
import { CirclePlusIcon } from "../../../../design/components/Icon/native/redesign/generated/CirclePlusIcon";
import { openAddMembersActionSheet } from "../ChannelPermissionsUtils";
import { useNavigatorBackPressHandler } from "../../../../design/components/Navigator/native/useNavigatorBackPressHandler.native";
import AppAnalyticsUtils from "../../../app_analytics/AppAnalyticsUtils";
import { useSegmentedControlState } from "../../../../design/components/SegmentedControl/native/SegmentedControlState.native";
import { SegmentedControl } from "../../../../design/components/SegmentedControl/native/SegmentedControl.native";
import ViewModerators from "../../../stage_channels/native/channel_permissions/ViewModerators";
import ChannelSettingsPermissionsOverview from "../../../../components_native/channel_settings/ChannelSettingsPermissionsOverview";
function $mk118501($env) {
return () => {
const r1 = $env;
const r2 = r1[2];
r2(_ChannelPermissionsUtils.isPrivateGuildChannel(r1[0]));
};
}
let onBack, c11171_25, useStyles;
let env11171 = {};
const ChannelPermissionSettingsBasicView = function ChannelPermissionSettingsBasicView(props) {
let env22287 = {
$parent: env11171
};
const channel = props.channel;
env22287[0] = channel;
const privateToggleState = props.privateToggleState;
env22287[1] = privateToggleState;
env22287[2] = props.setPrivateToggleState;
env22287[3] = void 0;
env22287[4] = void 0;
env22287[5] = void 0;
env22287[9] = void 0;
env22287[6] = function togglePrivateChannel() {
return env22287[7].apply(this, arguments);
};
env22287[7] = function _togglePrivateChannel() {
const r9 = async () => {
const isPrivateGuildChannel = _ChannelPermissionsUtils.isPrivateGuildChannel(env22287[0]);
const accessPermissions = env22287[0].accessPermissions;
let c31778_0 = flipEveryonePermission(env22287[0], accessPermissions, isPrivateGuildChannel);
const currentUser = UserStore.getCurrentUser();
const r51 = PermissionStore.can(Permissions.ADMINISTRATOR, env22287[4]);
if (env22287[9] || currentUser == null || r51) {
await savePermissionUpdates(env22287[0].id, [c31778_0]);
} else {
await grantUserChannelAccess(env22287[0], accessPermissions);
await savePermissionUpdates(env22287[0].id, [c31778_0]);
}
};
env22287[7] = r9;
return r9.apply(this, arguments);
};
env22287[8] = function _onPrivateChannelSwitchChange() {
const r9 = async () => {
let c30911_0, c30911_1;
L28: {
L21: {
L14: {
let env31779;
const r9 = env22287;
c30911_1 = r9;
const r29 = env31779 = {
$parent: r9
};
c30911_0 = r29;
env31779[0] = void 0;
env31779[1] = void 0;
env31779[2] = void 0;
if (env22287[0].guild_id != null && !env22287[1]) {
if (await checkChattableChannelThresholdMetAfterChannelPermissionDeny(env22287[0], Permissions.VIEW_CHANNEL)) {
env31779[0] = env22287[1] ? intl.string(t.vw48TT) : intl.string(t["47gQYL"]);
env31779[1] = computeChannelName(env22287[0], UserStore, RelationshipStore);
env31779[2] = env22287[1] ? intl.format(t.hGzPnx, {
channelName: env31779[1]
}) : intl.format(t.rKzX1E, {
channelName: env31779[1]
});
(0, env22287[2])(!env22287[1]);
AlertActionCreators.show({
title: env31779[0],
body: env31779[2],
cancelText: intl.string(t["ETE/oC"]),
confirmText: intl.string(t.p89ACt),
onConfirm: env22287[6],
hideActionSheet: false,
onCancel: $mk118501(env22287)
});
break L21;
}
break L14;
}
env31779[0] = env22287[1] ? intl.string(t.vw48TT) : intl.string(t["47gQYL"]);
env31779[1] = computeChannelName(env22287[0], UserStore, RelationshipStore);
env31779[2] = env22287[1] ? intl.format(t.hGzPnx, {
channelName: env31779[1]
}) : intl.format(t.rKzX1E, {
channelName: env31779[1]
});
(0, env22287[2])(!env22287[1]);
AlertActionCreators.show({
title: env31779[0],
body: env31779[2],
cancelText: intl.string(t["ETE/oC"]),
confirmText: intl.string(t.p89ACt),
onConfirm: env22287[6],
hideActionSheet: false,
onCancel: $mk118501(env22287)
});
break L28;
}
return void 0;
}
return void 0;
}
};
env22287[8] = r9;
return r9.apply(this, arguments);
};
const styles = useStyles();
const navigation = useNavigation();
env22287[3] = navigation;
const stateFromStoresObject = useStateFromStoresObject([GuildStore, GuildRoleStore], () => {
const guild = GuildStore.getGuild(env22287[0].getGuildId());
return {
guild,
sortedGuildRoles: guild != null ? GuildRoleStore.getSortedRoles(guild.id) : void 0
};
});
const guild = stateFromStoresObject.guild;
env22287[4] = guild;
const sortedGuildRoles = stateFromStoresObject.sortedGuildRoles;
env22287[5] = sortedGuildRoles;
useLayoutEffect(() => {
env22287[3].setOptions({
headerRight: void 0
});
}, [navigation]);
const memo = useMemo(() => {
let r17;
const r6 = env22287[4];
if (r6 != null) {
const r5 = env22287[5];
if (r5 != null) {
const r16 = env22287[0];
r17 = getExistingRolesRows(r6, r5, r16, r16.accessPermissions);
} else {
r17 = [];
}
} else {
r17 = [];
}
return r17;
}, [guild, sortedGuildRoles, channel]);
if (guild != null && sortedGuildRoles != null) {
const isCategory = channel.isCategory();
const existingMembersRows = getExistingMembersRows(GuildMemberStore.getMemberIds(guild?.id), channel, guild, channel.accessPermissions);
const isPrivateGuildChannel = _ChannelPermissionsUtils.isPrivateGuildChannel(channel);
env22287[9] = isPrivateGuildChannel;
const canEveryoneRole2 = _PermissionUtils.canEveryoneRole(Permissions.VIEW_CHANNEL, guild);
const canEveryoneRole = _PermissionUtils.canEveryoneRole(Permissions.ADMINISTRATOR, guild);
const type = channel.type;
const r84 = intl.string(t.hfbjIH);
return
{canEveryoneRole &&
{intl.string(t["5f3HIC"])}
}
{(canEveryoneRole ? !canEveryoneRole : !canEveryoneRole2) && !isPrivateGuildChannel &&
{intl.string(t.ZAk4Q9)}
}
} label={intl.string(t.dMJ3Y6)} onPress={() => {
const r3 = env22287[0];
if (r3 != null) {
openAddMembersActionSheet(r3);
}
}} />
{memo.map((a0) => {
const r10 = env22287[0];
return ;
})}
{existingMembersRows.map((existingMembersRow) => {
const r10 = env22287[0];
return ;
})}
;
}
return null;
};
onBack = function onBack() {
AlertActionCreators.close();
return false;
};
c11171_25 = {
BASIC: 0,
0: "BASIC",
ADVANCED: 1,
1: "ADVANCED",
MODERATORS: 2,
2: "MODERATORS"
};
useStyles = createStyles({
container: {
flex: 1,
paddingTop: 16,
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWER
},
content: {
marginTop: 16,
flex: 1
},
adminWarning: {
marginTop: Module712.space.PX_12
}
});
export default function EasyChannelPermissionSettings(props) {
let r43, MODERATORS;
let state, setState, setState2;
const { channelId, origin } = props;
state = void 0;
setState = void 0;
setState2 = void 0;
useNavigatorBackPressHandler(onBack);
const styles = useStyles();
const stateFromStores = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(channelId));
const stateFromStores2 = useStateFromStores([ChannelSettingsPermissionsStore], () => ChannelSettingsPermissionsStore.advancedMode);
const r10 = stateFromStores == null ? void 0 : stateFromStores.isGuildStageVoice();
if (r10) {
MODERATORS = c11171_25.MODERATORS;
r43 = c11171_25;
} else if (stateFromStores2) {
MODERATORS = c11171_25.ADVANCED;
r43 = c11171_25;
} else {
MODERATORS = c11171_25.BASIC;
r43 = c11171_25;
}
[state, setState] = useState(MODERATORS);
let privateToggleState;
[privateToggleState, setState2] = useState(_ChannelPermissionsUtils.isPrivateGuildChannel(stateFromStores));
useEffect(() => {
AppAnalyticsUtils.trackWithMetadata(AnalyticEvents.SETTINGS_PANE_VIEWED, {
settings_type: "channel",
origin_pane: origin === ChannelSettingsSections.OVERVIEW ? SettingsPaneTypes.CHANNEL_SETTINGS : null,
destination_pane: ChannelSettingsSections.PERMISSIONS
});
}, [origin]);
const callback = useCallback((a0) => {
if (a0 === c11171_25.ADVANCED) {
setAdvancedMode(true);
} else {
setState2(_ChannelPermissionsUtils.isPrivateGuildChannel(stateFromStores));
setAdvancedMode(false);
}
setState(a0);
}, [stateFromStores]);
const r20 = [intl.string(t["Mw/UDN"]), intl.string(t["0a6awf"])];
if ((stateFromStores == null ? void 0 : stateFromStores.isGuildStageVoice()) === true) {
r20.push(intl.string(t.YIIUJ3));
}
const segmentedControlState = useSegmentedControlState({
pageWidth: 0,
defaultIndex: state,
onSetActiveIndex: callback,
items: r20.map((item) => ({
id: item,
label: item,
page: null
}))
});
useEffect(() => {
AppAnalyticsUtils.trackWithMetadata(AnalyticEvents.CHANNEL_PERMISSIONS_PAGE_VIEWED, {
mode: state === c11171_25.BASIC ? SettingMode.BASIC : SettingMode.ADVANCED,
channel_is_private: _ChannelPermissionsUtils.isPrivateGuildChannel(stateFromStores)
});
}, [stateFromStores, state]);
return stateFromStores != null ?
{state === r43.BASIC ? : state === r43.MODERATORS ? : }
: null;
};