63 lines
3.2 KiB
TypeScript
63 lines
3.2 KiB
TypeScript
// Metro module 15328 (f15329).
|
|
import { View } from "react-native";
|
|
import ChannelStore from "../../../stores/ChannelStore";
|
|
import GuildStore from "../../../stores/GuildStore";
|
|
import ICYMIStore from "../ICYMIStore";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import useChannelName from "../../channel/useChannelName";
|
|
import useDesignToggle from "../../devtools/design_toggles/useDesignToggle";
|
|
import GuildIcon, { GuildIconSizes } from "../../guild/native/GuildIcon";
|
|
import { Avatar, AvatarSizes } from "../../../design/void/native";
|
|
import { isChannelCustomScoreEligible } from "../ICYMIUtils";
|
|
import { ActionSheet } from "../../../design/components/Sheet/native/ActionSheet.native";
|
|
import { ActionSheetIconHeader } from "../../../design/components/Sheet/native/ActionSheetIconHeader.native";
|
|
import { ChannelScoreSettings, GuildScoreSettings } from "./custom_scores/ICYMIContentSettingControl";
|
|
import { TableRowGroup } from "../../../design/components/TableRow/native/TableRowGroup.native";
|
|
import { TableRow } from "../../../design/components/TableRow/native/TableRow.native";
|
|
const useStyles = createStyles({
|
|
divider: {
|
|
height: 1,
|
|
backgroundColor: Module712.colors.BORDER_SUBTLE
|
|
}
|
|
});
|
|
export default function ItemDetailsActionSheet(props) {
|
|
const { guildId, channelId, id } = props;
|
|
const stateFromStores2 = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(channelId));
|
|
const stateFromStores3 = useStateFromStores([GuildStore], () => GuildStore.getGuild(guildId));
|
|
const channelName = useChannelName(stateFromStores2, true);
|
|
const stateFromStores = useStateFromStores([ICYMIStore], () => id != null ? ICYMIStore.getDehydratedItem(id) : null);
|
|
const designToggle = useDesignToggle("show_icymi_debug_scores");
|
|
const icon = stateFromStores3 != null ? <GuildIcon guild={stateFromStores3} size={GuildIconSizes.LARGE} /> : stateFromStores2 != null ? <Avatar size={AvatarSizes.LARGE} channel={stateFromStores2} /> : void 0;
|
|
const styles = useStyles();
|
|
let r16 = stateFromStores2 != null && stateFromStores3 != null && isChannelCustomScoreEligible(stateFromStores2);
|
|
let subtitle = stateFromStores3?.name;
|
|
if (subtitle == null) {
|
|
subtitle = "";
|
|
}
|
|
const props2 = {
|
|
showGradient: true,
|
|
startExpanded: true,
|
|
header: <ActionSheetIconHeader icon={icon} title={channelName} subtitle={subtitle} />,
|
|
children: null
|
|
};
|
|
const children = [r16 ? <ChannelScoreSettings channel={stateFromStores2} guild={stateFromStores3} /> : r16, , ,];
|
|
let r84 = stateFromStores != null && stateFromStores3 != null;
|
|
if (r84) {
|
|
if (r16) {
|
|
r16 = <View style={styles.divider} />;
|
|
}
|
|
r84 = <>
|
|
{r16}
|
|
<GuildScoreSettings guild={stateFromStores3} />
|
|
</>;
|
|
}
|
|
children[1] = r84;
|
|
children[2] = stateFromStores != null ? designToggle ? <TableRowGroup title="Debug details" hasIcons={false}>
|
|
<TableRow label={"Total Score: " + stateFromStores.score} subLabel={JSON.stringify(stateFromStores.score_components)} />
|
|
</TableRowGroup> : null : null;
|
|
props2.children = children;
|
|
return <ActionSheet {...props2} />;
|
|
};
|