Files
discord-decomp/modules/age_gate/native/components/NsfwGateGuildSidebar.tsx
T
2026-11-01 12:12:55 +02:00

57 lines
2.7 KiB
TypeScript

// Metro module 15238 (f15239).
import { useEffect } from "react";
import { View } from "react-native";
import GuildMemberStore from "../../../../stores/GuildMemberStore";
import GuildStore from "../../../../stores/GuildStore";
import UserStore from "../../../../stores/UserStore";
import { NsfwGateSource } from "./Constants";
import { AnalyticEvents, Fonts, HelpdeskArticles } from "../../../../Constants";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { useStateFromStores } from "../../../../_bundle/Module589";
import AnalyticsUtils from "../../../../utils/AnalyticsUtils";
import { getViewNsfwGuildsOrDefault } from "../../../user_settings/content_and_social/AgeRestrictedContentSettingsUtils";
import ChannelListStickyHeader from "../../../channel_list_v2/native/components/ChannelListStickyHeader";
import { RefreshEmptyState } from "../../../../design/void/native";
import TextStyles from "../../../rebrand/native/TextStyles";
import Module15239 from "../../../../_bundle/Module15239";
import { intl, t } from "../../../../intl/index.native";
import HelpdeskUtils from "../../../../utils/HelpdeskUtils";
const useStyles = createStyles({
container: {
flex: 1,
backgroundColor: Module712.colors.PANEL_BG
},
emptyStateContainer: {
flex: 1
},
emptyStateImageContainer: {
marginBottom: 16
}
});
export default function NsfwGateGuildSidebar(props) {
let currentUser;
const { style, guildId } = props;
currentUser = void 0;
const styles = useStyles();
const stateFromStores = useStateFromStores([GuildStore], () => GuildStore.getGuild(guildId));
currentUser = UserStore.getCurrentUser();
useEffect(() => {
if (currentUser != null && stateFromStores != null) {
AnalyticsUtils.track(AnalyticEvents.GUILD_NSFW_GATE_VIEWED, {
guild_id: guildId,
user_id: currentUser.id,
is_member: GuildMemberStore.isMember(guildId, currentUser.id),
is_user_opted_in_to_age_restricted_servers: currentUser.nsfwAllowed && getViewNsfwGuildsOrDefault(),
source: NsfwGateSource.GUILD_SIDEBAR
});
}
}, [guildId, stateFromStores, currentUser]);
return stateFromStores != null ? <View style={[styles.container, style]}>
<ChannelListStickyHeader guild={stateFromStores} showExtraButtons={false} />
<RefreshEmptyState imageStyle={styles.emptyStateImageContainer} titleStyle={TextStyles(Fonts.DISPLAY_EXTRABOLD, void 0, 16)} containerStyle={styles.emptyStateContainer} source={Module15239} title={intl.string(t.bAVpRR)} body={intl.format(t.NQuXf0, {
helpURL: HelpdeskUtils.getArticleURL(HelpdeskArticles.NSFW_GUILD_GUIDELINES)
})} />
</View> : null;
};