Files
discord-decomp/modules/icymi/native/ItemDetailsActionSheet.tsx
T
2026-11-01 12:12:55 +02:00

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} />;
};