82 lines
3.4 KiB
TypeScript
82 lines
3.4 KiB
TypeScript
// Metro module 10906 (f10907).
|
|
import { useEffect, useMemo } from "react";
|
|
import { View } from "react-native";
|
|
import AccessibilityStore from "../../a11y/AccessibilityStore";
|
|
import { EVERYONE_CHANNEL_ID } from "../../../stores/ChannelMemberStore";
|
|
import GuildRoleStore from "../../../stores/GuildRoleStore";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import SnowflakeUtils from "../../../utils/SnowflakeUtils";
|
|
import { requestMembersForRole } from "../../guild_settings/GuildRoleMemberActionCreators";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import useGuildRoleMemberCounts from "../../guild_role_subscriptions/useGuildRoleMemberCounts";
|
|
import { RoleDot } from "../../../design/void/native";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native";
|
|
import GuildChannelUserList from "../../main_tabs_v2/native/shared_components/user_list/GuildChannelUserList";
|
|
const useStyles = createStyles({
|
|
header: {
|
|
flexDirection: "row",
|
|
alignItems: "center",
|
|
gap: Module712.space.PX_4,
|
|
paddingTop: Module712.space.PX_12,
|
|
paddingBottom: Module712.space.PX_4,
|
|
paddingHorizontal: Module712.space.PX_16
|
|
},
|
|
headerText: {
|
|
flex: 1
|
|
},
|
|
roleDot: {
|
|
paddingTop: 0
|
|
},
|
|
memberCount: {
|
|
color: Module712.colors.TEXT_MUTED
|
|
}
|
|
});
|
|
export default function RoleMembersActionSheet(props) {
|
|
let stateFromStores, c18359_4, children;
|
|
const { guildId, roleId } = props;
|
|
let channelId = props.channelId;
|
|
stateFromStores = void 0;
|
|
c18359_4 = void 0;
|
|
children = void 0;
|
|
const styles = useStyles();
|
|
useEffect(() => {
|
|
if (roleId !== SnowflakeUtils.castGuildIdAsEveryoneGuildRoleId(guildId)) {
|
|
requestMembersForRole(guildId, roleId);
|
|
}
|
|
}, [guildId, roleId]);
|
|
stateFromStores = useStateFromStores([GuildRoleStore], () => GuildRoleStore.getRole(guildId, roleId), [guildId, roleId]);
|
|
const r1 = useStateFromStores([AccessibilityStore], () => AccessibilityStore.roleStyle) === "dot" && stateFromStores?.colorString != null;
|
|
c18359_4 = r1;
|
|
const r40 = SnowflakeUtils.castGuildIdAsEveryoneGuildRoleId(guildId);
|
|
const guildRoleMemberCounts = useGuildRoleMemberCounts(guildId);
|
|
let r45 = null;
|
|
if (roleId !== r40) {
|
|
let r47 = guildRoleMemberCounts == null ? void 0 : guildRoleMemberCounts[roleId];
|
|
if (r47 == null) {
|
|
r47 = null;
|
|
}
|
|
r45 = r47;
|
|
}
|
|
children = r45;
|
|
const memo = useMemo(() => <View style={styles.header}>
|
|
{c18359_4 ? <RoleDot color={stateFromStores.colorString} colors={stateFromStores.colorStrings} size="small" containerStyles={styles.roleDot} /> : null}
|
|
<Text variant="text-sm/semibold" style={styles.headerText}>
|
|
{stateFromStores?.name}
|
|
</Text>
|
|
{children != null ? <Text variant="text-sm/medium" style={styles.memberCount}>{children}</Text> : null}
|
|
</View>, [r1, stateFromStores, children, styles]);
|
|
const r52 = stateFromStores == null;
|
|
let r53 = null;
|
|
if (!r52) {
|
|
if (channelId == null) {
|
|
channelId = EVERYONE_CHANNEL_ID;
|
|
}
|
|
r53 = <BottomSheet scrollable header={memo}>
|
|
<GuildChannelUserList guildId={guildId} channelId={channelId} roleId={roleId} headerShown={false} inActionSheet disableStickySections disableThemedGradient />
|
|
</BottomSheet>;
|
|
}
|
|
return r53;
|
|
};
|