Properly ErrorBoundary recent changes
This commit is contained in:
parent
892167420a
commit
9dc8e4e244
2 changed files with 41 additions and 42 deletions
|
@ -61,7 +61,7 @@ export default definePlugin({
|
||||||
find: ".popularApplicationCommandIds,",
|
find: ".popularApplicationCommandIds,",
|
||||||
replacement: {
|
replacement: {
|
||||||
match: /lastSection:(!?\i)}\),/,
|
match: /lastSection:(!?\i)}\),/,
|
||||||
replace: "$&$self.patchPadding($1),"
|
replace: "$&$self.patchPadding({lastSection:$1}),"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -81,12 +81,10 @@ export default definePlugin({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
patchPadding(lastSection: any) {
|
patchPadding: ErrorBoundary.wrap(({ lastSection }) => {
|
||||||
if (!lastSection) return;
|
if (!lastSection) return null;
|
||||||
return (
|
return (
|
||||||
<ErrorBoundary noop>
|
<div className={UserPopoutSectionCssClasses.lastSection} ></div>
|
||||||
<div className={UserPopoutSectionCssClasses.lastSection}></div>
|
|
||||||
</ErrorBoundary>
|
|
||||||
);
|
);
|
||||||
}
|
})
|
||||||
});
|
});
|
||||||
|
|
|
@ -24,6 +24,22 @@ import { GuildStore, i18n, RestAPI } from "@webpack/common";
|
||||||
|
|
||||||
const { InvitesDisabledExperiment } = findByPropsLazy("InvitesDisabledExperiment");
|
const { InvitesDisabledExperiment } = findByPropsLazy("InvitesDisabledExperiment");
|
||||||
|
|
||||||
|
function showDisableInvites(guildId: string) {
|
||||||
|
// Once the experiment is removed, this should keep working
|
||||||
|
const { enableInvitesDisabled } = InvitesDisabledExperiment?.getCurrentConfig?.({ guildId }) ?? { enableInvitesDisabled: true };
|
||||||
|
// @ts-ignore
|
||||||
|
return enableInvitesDisabled && !GuildStore.getGuild(guildId).hasFeature("INVITES_DISABLED");
|
||||||
|
}
|
||||||
|
|
||||||
|
function disableInvites(guildId: string) {
|
||||||
|
const guild = GuildStore.getGuild(guildId);
|
||||||
|
const features = [...guild.features, "INVITES_DISABLED"];
|
||||||
|
RestAPI.patch({
|
||||||
|
url: `/guilds/${guild.id}`,
|
||||||
|
body: { features },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export default definePlugin({
|
export default definePlugin({
|
||||||
name: "PauseInvitesForever",
|
name: "PauseInvitesForever",
|
||||||
tags: ["DisableInvitesForever"],
|
tags: ["DisableInvitesForever"],
|
||||||
|
@ -33,44 +49,29 @@ export default definePlugin({
|
||||||
patches: [
|
patches: [
|
||||||
{
|
{
|
||||||
find: "Messages.GUILD_INVITE_DISABLE_ACTION_SHEET_DESCRIPTION",
|
find: "Messages.GUILD_INVITE_DISABLE_ACTION_SHEET_DESCRIPTION",
|
||||||
replacement: [{
|
group: true,
|
||||||
|
replacement: [
|
||||||
|
{
|
||||||
match: /children:\i\.\i\.\i\.GUILD_INVITE_DISABLE_ACTION_SHEET_DESCRIPTION/,
|
match: /children:\i\.\i\.\i\.GUILD_INVITE_DISABLE_ACTION_SHEET_DESCRIPTION/,
|
||||||
replace: "children: $self.renderInvitesLabel(arguments[0].guildId, setChecked)",
|
replace: "children: $self.renderInvitesLabel({guildId:arguments[0].guildId,setChecked})",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
match: /(\i\.hasDMsDisabled\)\(\i\),\[\i,(\i)\]=\i\.useState\(\i\))/,
|
match: /(\i\.hasDMsDisabled\)\(\i\),\[\i,(\i)\]=\i\.useState\(\i\))/,
|
||||||
replace: "$1,setChecked=$2"
|
replace: "$1,setChecked=$2"
|
||||||
}]
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
showDisableInvites(guildId: string) {
|
renderInvitesLabel: ErrorBoundary.wrap(({ guildId, setChecked }) => {
|
||||||
// Once the experiment is removed, this should keep working
|
|
||||||
const { enableInvitesDisabled } = InvitesDisabledExperiment?.getCurrentConfig?.({ guildId }) ?? { enableInvitesDisabled: true };
|
|
||||||
// @ts-ignore
|
|
||||||
return enableInvitesDisabled && !GuildStore.getGuild(guildId).hasFeature("INVITES_DISABLED");
|
|
||||||
},
|
|
||||||
|
|
||||||
disableInvites(guildId: string) {
|
|
||||||
const guild = GuildStore.getGuild(guildId);
|
|
||||||
const features = [...guild.features, "INVITES_DISABLED"];
|
|
||||||
RestAPI.patch({
|
|
||||||
url: `/guilds/${guild.id}`,
|
|
||||||
body: { features },
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
renderInvitesLabel(guildId: string, setChecked: Function) {
|
|
||||||
return (
|
return (
|
||||||
<ErrorBoundary noop>
|
|
||||||
<div>
|
<div>
|
||||||
{i18n.Messages.GUILD_INVITE_DISABLE_ACTION_SHEET_DESCRIPTION}
|
{i18n.Messages.GUILD_INVITE_DISABLE_ACTION_SHEET_DESCRIPTION}
|
||||||
{this.showDisableInvites(guildId) && <a role="button" onClick={() => {
|
{showDisableInvites(guildId) && <a role="button" onClick={() => {
|
||||||
setChecked(true);
|
setChecked(true);
|
||||||
this.disableInvites(guildId);
|
disableInvites(guildId);
|
||||||
}}> Pause Indefinitely.</a>}
|
}}> Pause Indefinitely.</a>}
|
||||||
</div>
|
</div>
|
||||||
</ErrorBoundary>
|
|
||||||
);
|
);
|
||||||
}
|
})
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue