Merge branch 'dev'

This commit is contained in:
thororen1234 2024-11-08 01:18:55 -05:00
commit a4d8741759
9 changed files with 68 additions and 62 deletions

View file

@ -14,7 +14,7 @@ import type { StoreApi, UseBoundStore } from "zustand";
type Modal = { type Modal = {
Layer?: any, Layer?: any,
instant?: boolean, instant?: boolean,
backdropStyle?: "SUBTLE" | "DARK" | "BLUR", backdropStyle?: "SUBTLE" | "DARK" | "BLUR", "IMMERSIVE",
}; };
const { useModalContext, useModalsStore } = proxyLazy(() => Forms as any as { const { useModalContext, useModalsStore } = proxyLazy(() => Forms as any as {
@ -26,8 +26,6 @@ const { useModalContext, useModalsStore } = proxyLazy(() => Forms as any as {
}); });
const { animated, useSpring, useTransition } = findByPropsLazy("a", "animated", "useTransition"); const { animated, useSpring, useTransition } = findByPropsLazy("a", "animated", "useTransition");
// This doesn't seem to be necessary
// const { default: AppLayer } = findByPropsLazy("AppLayerContainer", "AppLayerProvider");
const ANIMS = { const ANIMS = {
SUBTLE: { SUBTLE: {
@ -42,6 +40,10 @@ const ANIMS = {
off: { opacity: 1, filter: "blur(0px)" }, off: { opacity: 1, filter: "blur(0px)" },
on: { opacity: 0.7, filter: "blur(8px)" }, on: { opacity: 0.7, filter: "blur(8px)" },
}, },
IMMERSIVE: {
off: { opacity: 1 },
on: { opacity: 0.7 }
}
}; };
export default definePlugin({ export default definePlugin({

View file

@ -60,14 +60,17 @@ export default definePlugin({
} }
] ]
}, },
{ // TEMP Work until Vencord Fix
find: ".installedLogHooks)", ...[
".DEBUG_LOGGING)",
".inputDeviceId)||"
].map(find => ({
find,
replacement: { replacement: {
// if getDebugLogging() returns false, the hooks don't get installed.
match: "getDebugLogging(){", match: "getDebugLogging(){",
replace: "getDebugLogging(){return false;" replace: "getDebugLogging(){return false;"
} }
}, })),
], ],
startAt: StartAt.Init, startAt: StartAt.Init,

View file

@ -154,5 +154,5 @@ export default definePlugin({
replace: "$self.NoopLogger()" replace: "$self.NoopLogger()"
} }
} }
], ]
}); });

View file

@ -93,7 +93,7 @@ export const useAuthorizationStore = proxyLazy(() => zustandCreate(
} as AuthorizationState), } as AuthorizationState),
{ {
name: "decor-auth", name: "decor-auth",
getStorage: () => indexedDBStorage, storage: indexedDBStorage,
partialize: state => ({ tokens: state.tokens }), partialize: state => ({ tokens: state.tokens }),
onRehydrateStorage: () => state => state?.init() onRehydrateStorage: () => state => state?.init()
} }

View file

@ -19,7 +19,7 @@ import { getIntlMessage } from "@utils/discord";
import { Logger } from "@utils/Logger"; import { Logger } from "@utils/Logger";
import { classes } from "@utils/misc"; import { classes } from "@utils/misc";
import definePlugin, { OptionType } from "@utils/types"; import definePlugin, { OptionType } from "@utils/types";
import { findByCodeLazy, findByPropsLazy } from "@webpack"; import { findByPropsLazy } from "@webpack";
import { ChannelStore, FluxDispatcher, Menu, MessageStore, Parser, SelectedChannelStore, Timestamp, UserStore, useStateFromStores } from "@webpack/common"; import { ChannelStore, FluxDispatcher, Menu, MessageStore, Parser, SelectedChannelStore, Timestamp, UserStore, useStateFromStores } from "@webpack/common";
import { Message } from "discord-types/general"; import { Message } from "discord-types/general";
@ -33,12 +33,7 @@ interface MLMessage extends Message {
firstEditTimestamp?: Date; firstEditTimestamp?: Date;
} }
const styles = findByPropsLazy( const styles = findByPropsLazy("edited", "communicationDisabled", "isSystemMessage");
"edited",
"communicationDisabled",
"isSystemMessage",
);
const getMessage = findByCodeLazy('replace(/^\\n+|\\n+$/g,"")');
function addDeleteStyle() { function addDeleteStyle() {
if (Settings.plugins.MessageLogger.deleteStyle === "text") { if (Settings.plugins.MessageLogger.deleteStyle === "text") {
@ -348,35 +343,33 @@ export default definePlugin({
); );
}, },
Messages: { // DELETED_MESSAGE_COUNT: getMessage("{count, plural, =0 {No deleted messages} one {{count} deleted message} other {{count} deleted messages}}")
// DELETED_MESSAGE_COUNT: getMessage("{count, plural, =0 {No deleted messages} one {{count} deleted message} other {{count} deleted messages}}") // TODO: Find a better way to generate intl messages
// TODO: find a better way to generate intl messages DELETED_MESSAGE_COUNT: () => ({
DELETED_MESSAGE_COUNT: () => ({ ast: [[
ast: [[ 6,
6, "count",
"count", {
{ "=0": ["No deleted messages"],
"=0": ["No deleted messages"], one: [
one: [ [
[ 1,
1, "count"
"count"
],
" deleted message"
], ],
other: [ " deleted message"
[ ],
1, other: [
"count" [
], 1,
" deleted messages" "count"
] ],
}, " deleted messages"
0, ]
"cardinal" },
]] 0,
}) "cardinal"
}, ]]
}),
patches: [ patches: [
{ {
@ -572,8 +565,7 @@ export default definePlugin({
}, },
{ {
match: /(\i).type===\i\.\i\.MESSAGE_GROUP_BLOCKED\?.*?:/, match: /(\i).type===\i\.\i\.MESSAGE_GROUP_BLOCKED\?.*?:/,
replace: replace: '$&$1.type==="MESSAGE_GROUP_DELETED"?$self.DELETED_MESSAGE_COUNT:',
'$&$1.type==="MESSAGE_GROUP_DELETED"?$self.Messages.DELETED_MESSAGE_COUNT:',
}, },
], ],
predicate: () => Settings.plugins.MessageLogger.collapseDeleted, predicate: () => Settings.plugins.MessageLogger.collapseDeleted,

View file

@ -28,8 +28,8 @@ import { Message } from "discord-types/general";
const RelationshipStore = findByPropsLazy("getRelationships", "isBlocked"); const RelationshipStore = findByPropsLazy("getRelationships", "isBlocked");
interface MessageDeleteProps { interface MessageDeleteProps {
// i18n message i18n.t["+FcYMz"] if deleted, with args // Internal intl message for BLOCKED_MESSAGE_COUNT
collapsedReason: () => any collapsedReason: () => any;
} }
export default definePlugin({ export default definePlugin({

View file

@ -50,6 +50,8 @@ async function runMigrations() {
export async function syncAndRunChecks() { export async function syncAndRunChecks() {
await runMigrations(); await runMigrations();
if (UserStore.getCurrentUser() == null) return;
const [oldGuilds, oldGroups, oldFriends] = await DataStore.getMany([ const [oldGuilds, oldGroups, oldFriends] = await DataStore.getMany([
guildsKey(), guildsKey(),
groupsKey(), groupsKey(),

View file

@ -24,7 +24,7 @@ import { Devs } from "@utils/constants";
import { getIntlMessage } from "@utils/discord"; import { getIntlMessage } from "@utils/discord";
import definePlugin, { OptionType } from "@utils/types"; import definePlugin, { OptionType } from "@utils/types";
import { findComponentByCodeLazy, findExportedComponentLazy, findStoreLazy } from "@webpack"; import { findComponentByCodeLazy, findExportedComponentLazy, findStoreLazy } from "@webpack";
import { ChannelStore, GuildMemberStore, RelationshipStore, SelectedChannelStore, Tooltip, UserStore, useStateFromStores } from "@webpack/common"; import { GuildMemberStore, RelationshipStore, SelectedChannelStore, Tooltip, UserStore, useStateFromStores } from "@webpack/common";
import { buildSeveralUsers } from "../typingTweaks"; import { buildSeveralUsers } from "../typingTweaks";
@ -44,7 +44,7 @@ function getDisplayName(guildId: string, userId: string) {
return GuildMemberStore.getNick(guildId, userId) ?? (user as any).globalName ?? user.username; return GuildMemberStore.getNick(guildId, userId) ?? (user as any).globalName ?? user.username;
} }
function TypingIndicator({ channelId }: { channelId: string; }) { function TypingIndicator({ channelId, guildId }: { channelId: string; guildId: string; }) {
const typingUsers: Record<string, number> = useStateFromStores( const typingUsers: Record<string, number> = useStateFromStores(
[TypingStore], [TypingStore],
() => ({ ...TypingStore.getTypingUsers(channelId) as Record<string, number> }), () => ({ ...TypingStore.getTypingUsers(channelId) as Record<string, number> }),
@ -57,7 +57,6 @@ function TypingIndicator({ channelId }: { channelId: string; }) {
} }
); );
const currentChannelId: string = useStateFromStores([SelectedChannelStore], () => SelectedChannelStore.getChannelId()); const currentChannelId: string = useStateFromStores([SelectedChannelStore], () => SelectedChannelStore.getChannelId());
const guildId = ChannelStore.getChannel(channelId).guild_id;
if (!settings.store.includeMutedChannels) { if (!settings.store.includeMutedChannels) {
const isChannelMuted = UserGuildSettingsStore.isChannelMuted(guildId, channelId); const isChannelMuted = UserGuildSettingsStore.isChannelMuted(guildId, channelId);
@ -165,7 +164,7 @@ export default definePlugin({
find: "UNREAD_IMPORTANT:", find: "UNREAD_IMPORTANT:",
replacement: { replacement: {
match: /\.name\),.{0,120}\.children.+?:null(?<=,channel:(\i).+?)/, match: /\.name\),.{0,120}\.children.+?:null(?<=,channel:(\i).+?)/,
replace: "$&,$self.TypingIndicator($1.id)" replace: "$&,$self.TypingIndicator($1.id,$1.getGuildId())"
} }
}, },
// Theads // Theads
@ -174,14 +173,14 @@ export default definePlugin({
find: "M11 9H4C2.89543 9 2 8.10457 2 7V1C2 0.447715 1.55228 0 1 0C0.447715 0 0 0.447715 0 1V7C0 9.20914 1.79086 11 4 11H11C11.5523 11 12 10.5523 12 10C12 9.44771 11.5523 9 11 9Z", find: "M11 9H4C2.89543 9 2 8.10457 2 7V1C2 0.447715 1.55228 0 1 0C0.447715 0 0 0.447715 0 1V7C0 9.20914 1.79086 11 4 11H11C11.5523 11 12 10.5523 12 10C12 9.44771 11.5523 9 11 9Z",
replacement: { replacement: {
match: /mentionsCount:\i.+?null(?<=channel:(\i).+?)/, match: /mentionsCount:\i.+?null(?<=channel:(\i).+?)/,
replace: "$&,$self.TypingIndicator($1.id)" replace: "$&,$self.TypingIndicator($1.id,$1.getGuildId())"
} }
} }
], ],
TypingIndicator: (channelId: string) => ( TypingIndicator: (channelId: string, guildId: string) => (
<ErrorBoundary noop> <ErrorBoundary noop>
<TypingIndicator channelId={channelId} /> <TypingIndicator channelId={channelId} guildId={guildId} />
</ErrorBoundary> </ErrorBoundary>
), ),
}); });

View file

@ -129,14 +129,22 @@ export default definePlugin({
buildSeveralUsers, buildSeveralUsers,
mutateChildren(props: any, users: User[], children: any) { mutateChildren(props: any, users: User[], children: any) {
if (!Array.isArray(children)) return children; try {
if (!Array.isArray(children)) {
return children;
}
let element = 0; let element = 0;
return children.map(c => return children.map(c =>
c.type === "strong" || (typeof c !== "string" && !React.isValidElement(c)) c.type === "strong" || (typeof c !== "string" && !React.isValidElement(c))
? <TypingUser {...props} user={users[element++]} /> ? <TypingUser {...props} user={users[element++]} />
: c : c
); );
} catch (e) {
console.error(e);
}
return children;
} }
}); });