57 lines
2.7 KiB
TypeScript
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;
|
|
};
|