Revamp all imports

This commit is contained in:
Zack Rauen 2023-05-19 18:37:21 -04:00
parent 9bf16a8b98
commit 9bbf318a86
78 changed files with 299 additions and 196 deletions

View File

@ -15,10 +15,16 @@ module.exports = {
"module-resolver",
{
alias: {
"builtins": "./src/builtins/builtins.js",
"data": "./src/data/data.js",
"@modules": path.join(__dirname, "src", "modules"),
"@assets": path.join(__dirname, "..", "assets"),
"@common": path.join(__dirname, "..", "common"),
"@builtins": path.join(__dirname, "src", "builtins"),
"@data": path.join(__dirname, "src", "data"),
"@modules": path.join(__dirname, "src", "modules"),
"@polyfill": path.join(__dirname, "src", "polyfill"),
"@structs": path.join(__dirname, "src", "structs"),
"@styles": path.join(__dirname, "src", "styles"),
"@ui": path.join(__dirname, "src", "ui"),
}
}
]]

View File

@ -4,10 +4,15 @@
"allowSyntheticDefaultImports": false,
"baseUrl": "./",
"paths": {
"builtins": ["./src/builtins/builtins.js"],
"data": ["./src/data/data.js"],
"@assets/*": ["../assets/*"],
"@common/*": ["../common/*"],
"@builtins/*": ["./src/builtins/*"],
"@data/*": ["./src/data/*"],
"@modules/*": ["./src/modules/*"],
"@common/*": ["../common/*"]
"@polyfill/*": ["./src/polyfill/*"],
"@structs/*": ["./src/structs/*"],
"@styles/*": ["./src/styles/*"],
"@ui/*": ["./src/ui/*"]
}
},
"exclude": ["node_modules"]

View File

@ -1,4 +1,8 @@
import Builtin from "../structs/builtin";
import fs from "fs";
import electron from "electron";
import Builtin from "@structs/builtin";
import Settings from "@modules/settingsmanager";
import DataStore from "@modules/datastore";
import React from "@modules/react";
@ -7,13 +11,13 @@ import Events from "@modules/emitter";
import DOMManager from "@modules/dommanager";
import Strings from "@modules/strings";
import DiscordModules from "@modules/discordmodules";
import CSSEditor from "../ui/customcss/csseditor";
import FloatingWindows from "../ui/floatingwindows";
import SettingsTitle from "../ui/settings/title";
import Utilities from "../modules/utilities";
import Utilities from "@modules/utilities";
import CSSEditor from "@ui/customcss/csseditor";
import FloatingWindows from "@ui/floatingwindows";
import SettingsTitle from "@ui/settings/title";
const fs = require("fs");
const electron = require("electron");
const UserSettings = WebpackModules.getByProps("updateAccount");
const Dispatcher = DiscordModules.Dispatcher;

View File

@ -1,4 +1,4 @@
import Builtin from "../../structs/builtin";
import Builtin from "@structs/builtin";
export default new class DeveloperMode extends Builtin {
get name() {return "Debugger";}

View File

@ -1,7 +1,8 @@
const fs = require("fs");
const path = require("path");
import Builtin from "../../structs/builtin";
import DataStore from "../../modules/datastore";
import fs from "fs";
import path from "path";
import Builtin from "@structs/builtin";
import DataStore from "@modules/datastore";
const timestamp = () => new Date().toISOString().replace("T", " ").replace("Z", "");

View File

@ -1,5 +1,6 @@
import Builtin from "../../structs/builtin";
import IPC from "../../modules/ipc";
import Builtin from "@structs/builtin";
import IPC from "@modules/ipc";
export default new class DevToolsListener extends Builtin {
get name() {return "DevTools";}

View File

@ -1,6 +1,6 @@
import Builtin from "../../structs/builtin";
import WebpackModules from "../../modules/webpackmodules";
// import IPC from "../../modules/ipc";
import Builtin from "@structs/builtin";
import WebpackModules from "@modules/webpackmodules";
export default new class StopDevToolsWarning extends Builtin {
get name() {return "StopDevToolsWarning";}

View File

@ -1,5 +1,6 @@
import Builtin from "../../structs/builtin";
import IPC from "../../modules/ipc";
import Builtin from "@structs/builtin";
import IPC from "@modules/ipc";
export default new class InspectElement extends Builtin {
get name() {return "InspectElementHotkey";}

View File

@ -1,9 +1,11 @@
import Builtin from "../../structs/builtin";
import Modals from "../../ui/modals";
import Builtin from "@structs/builtin";
import Strings from "@modules/strings";
import IPC from "@modules/ipc";
import Modals from "@ui/modals";
export default new class ReactDevTools extends Builtin {
get name() {return "ReactDevTools";}
get category() {return "developer";}

View File

@ -1,9 +1,11 @@
import Builtin from "../../structs/builtin";
import Modals from "../../ui/modals";
import Builtin from "@structs/builtin";
import Strings from "@modules/strings";
import IPC from "@modules/ipc";
import Modals from "@ui/modals";
export default new class MediaKeys extends Builtin {
get name() {return "DisableMediaKeys";}
get category() {return "general";}

View File

@ -1,4 +1,5 @@
import Builtin from "../../structs/builtin";
import Builtin from "@structs/builtin";
import DiscordModules from "@modules/discordmodules";
export default new class VoiceDisconnect extends Builtin {

View File

@ -1,6 +1,7 @@
import Builtin from "../../structs/builtin";
import IPC from "../../modules/ipc";
import DataStore from "../../modules/datastore";
import Builtin from "@structs/builtin";
import IPC from "@modules/ipc";
import DataStore from "@modules/datastore";
const DISCORD_MIN_HEIGHT = 500;
const DISCORD_MIN_WIDTH = 940;

View File

@ -1,9 +1,11 @@
import Builtin from "../../structs/builtin";
import Modals from "../../ui/modals";
import Builtin from "@structs/builtin";
import Strings from "@modules/strings";
import IPC from "@modules/ipc";
import Modals from "@ui/modals";
export default new class WindowTransparency extends Builtin {
get name() {return "WindowTransparency";}
get category() {return "window";}

View File

@ -1,3 +0,0 @@
export {default as Config} from "./config";
export {default as SettingsConfig} from "./settings";
export {default as Changelog} from "./changelog";

View File

@ -1,8 +1,8 @@
import require from "./polyfill"; // eslint-disable-line no-unused-vars
import secure from "./secure";
import LoadingIcon from "./loadingicon";
import BetterDiscord from "./modules/core";
import BdApi from "./modules/api/index";
import BetterDiscord from "@modules/core";
import BdApi from "@modules/api/index";
// Perform some setup
secure();

View File

@ -1,19 +1,22 @@
import path from "path";
import fs from "fs";
import {shell} from "electron";
import Logger from "@common/logger";
import AddonError from "@structs/addonerror";
import Settings from "./settingsmanager";
import Events from "./emitter";
import DataStore from "./datastore";
import AddonError from "../structs/addonerror";
import Toasts from "../ui/toasts";
import DiscordModules from "./discordmodules";
import React from "./react";
import Strings from "./strings";
import AddonEditor from "../ui/misc/addoneditor";
import FloatingWindows from "../ui/floatingwindows";
const React = DiscordModules.React;
import AddonEditor from "@ui/misc/addoneditor";
import FloatingWindows from "@ui/floatingwindows";
import Toasts from "@ui/toasts";
const path = require("path");
const fs = require("fs");
const shell = require("electron").shell;
const openItem = shell.openItem || shell.openPath;
const splitRegex = /[^\S\r\n]*?\r?(?:\r\n|\n)[^\S\r\n]*?\*[^\S\r\n]?/;

View File

@ -1,7 +1,8 @@
import WebpackModules from "../webpackmodules";
import Patcher from "../patcher";
import WebpackModules from "@modules/webpackmodules";
import Patcher from "@modules/patcher";
import Logger from "@common/logger";
import {React} from "../modules";
import React from "@modules/react";
let startupComplete = false;

View File

@ -1,4 +1,5 @@
import DataStore from "../datastore";
import DataStore from "@modules/datastore";
/**
* `Data` is a simple utility class for the management of plugin data. An instance is available on {@link BdApi}.

View File

@ -1,4 +1,5 @@
import DOMManager from "../dommanager";
import DOMManager from "@modules/dommanager";
/**
* `DOM` is a simple utility class for dom manipulation. An instance is available on {@link BdApi}.

View File

@ -1,7 +1,9 @@
import PluginManager from "../pluginmanager";
import ThemeManager from "../thememanager";
import Logger from "@common/logger";
import PluginManager from "@modules/pluginmanager";
import ThemeManager from "@modules/thememanager";
import DiscordModules from "@modules/discordmodules";
import AddonAPI from "./addonapi";
import Data from "./data";
import DOM from "./dom";
@ -12,7 +14,7 @@ import Utils from "./utils";
import Webpack from "./webpack";
import * as Legacy from "./legacy";
import ContextMenu from "./contextmenu";
import DiscordModules from "@modules/discordmodules";
const bounded = new Map();
const PluginAPI = new AddonAPI(PluginManager);

View File

@ -1,15 +1,18 @@
import {Config} from "data";
import WebpackModules from "../webpackmodules";
import DiscordModules from "../discordmodules";
import DataStore from "../datastore";
import DOMManager from "../dommanager";
import Toasts from "../../ui/toasts";
import Notices from "../../ui/notices";
import Modals from "../../ui/modals";
import Settings from "../settingsmanager";
import Logger from "@common/logger";
import Patcher from "../patcher";
import ipc from "../ipc";
import Config from "@data/config";
import WebpackModules from "@modules/webpackmodules";
import DiscordModules from "@modules/discordmodules";
import DataStore from "@modules/datastore";
import DOMManager from "@modules/dommanager";
import Settings from "@modules/settingsmanager";
import Patcher from "@modules/patcher";
import ipc from "@modules/ipc";
import Toasts from "@ui/toasts";
import Notices from "@ui/notices";
import Modals from "@ui/modals";
/**
* The React module being used inside Discord.

View File

@ -1,5 +1,7 @@
import Logger from "@common/logger";
import {default as MainPatcher} from "../patcher";
import {default as MainPatcher} from "@modules/patcher";
/**
* `Patcher` is a utility class for modifying existing functions. Instance is accessible through the {@link BdApi}.

View File

@ -1,4 +1,5 @@
import DiscordModules from "../discordmodules";
import DiscordModules from "@modules//discordmodules";
/**
* `ReactUtils` is a utility class for interacting with React internals. Instance is accessible through the {@link BdApi}.

View File

@ -1,8 +1,10 @@
import Modals from "../../ui/modals";
import Toasts from "../../ui/toasts";
import Notices from "../../ui/notices";
import Tooltip from "../../ui/tooltip";
import ipc from "../ipc";
import ipc from "@modules/ipc";
import Modals from "@ui/modals";
import Toasts from "@ui/toasts";
import Notices from "@ui/notices";
import Tooltip from "@ui/tooltip";
/**
* `UI` is a utility class for creating user interfaces. Instance is accessible through the {@link BdApi}.

View File

@ -1,4 +1,5 @@
import Utilities from "../utilities";
import Utilities from "@modules/utilities";
/**
* `Utils` is a utility containing commonly reused functions. Instance is accessible through the {@link BdApi}.

View File

@ -1,5 +1,7 @@
import Logger from "@common/logger";
import WebpackModules, {Filters} from "../webpackmodules";
import WebpackModules, {Filters} from "@modules/webpackmodules";
/**
* `Webpack` is a utility class for getting internal webpack modules. Instance is accessible through the {@link BdApi}.

View File

@ -1,21 +1,29 @@
import LocaleManager from "./localemanager";
import Logger from "@common/logger";
import {Config, Changelog} from "data";
import Config from "@data/config";
import Changelog from "@data/changelog";
import * as Builtins from "@builtins/builtins";
import LoadingIcon from "../loadingicon";
import LocaleManager from "./localemanager";
import DOMManager from "./dommanager";
import PluginManager from "./pluginmanager";
import ThemeManager from "./thememanager";
import Settings from "./settingsmanager";
import * as Builtins from "builtins";
import Modals from "../ui/modals";
import FloatingWindows from "../ui/floatingwindows";
import DataStore from "./datastore";
import DiscordModules from "./discordmodules";
import LoadingIcon from "../loadingicon";
import Styles from "../styles/index.css";
import Editor from "./editor";
import Updater from "./updater";
import Styles from "@styles/index.css";
import Modals from "@ui/modals";
import FloatingWindows from "@ui/floatingwindows";
export default new class Core {
async startup() {
if (this.hasStarted) return;

View File

@ -1,7 +1,11 @@
import {Config} from "data";
import fs from "fs";
import path from "path";
import Logger from "@common/logger";
const fs = require("fs");
const path = require("path");
import Config from "@data/config";
const releaseChannel = window?.DiscordNative?.app?.getReleaseChannel?.() ?? "stable";
// Schema

View File

@ -1,7 +1,9 @@
import ClassName from "@structs/classname";
import Utilities from "./utilities";
import ClassName from "../structs/classname";
import WebpackModules from "./webpackmodules";
const combineClasses = function (...props) {
return Object.assign({}, ...props.map(prop => WebpackModules.getByProps(...prop)));
};

View File

@ -8,6 +8,7 @@
import Utilities from "./utilities";
import WebpackModules, {Filters} from "./webpackmodules";
export default Utilities.memoizeObject({
get React() {return WebpackModules.getByProps("createElement", "cloneElement");},
get ReactDOM() {return WebpackModules.getByProps("render", "findDOMNode");},

View File

@ -1,4 +1,5 @@
import Logger from "../../../common/logger";
import Logger from "@common/logger";
import DOMManager from "./dommanager";
export default new class Editor {

View File

@ -1,4 +1,4 @@
const EventEmitter = require("events");
import EventEmitter from "events";
export default new class BDEvents extends EventEmitter {
constructor() {

View File

@ -1,8 +1,9 @@
import {ipcRenderer as ipc} from "electron";
import * as IPCEvents from "@common/constants/ipcevents";
import Events from "./emitter";
import * as IPCEvents from "@common/constants/ipcevents";
export default new class IPCRenderer {

View File

@ -1,4 +1,5 @@
import * as Locales from "../../../assets/locales";
import * as Locales from "@assets/locales/index";
import DiscordModules from "./discordmodules";
import Utilities from "./utilities";
import Events from "./emitter";

View File

@ -1,18 +0,0 @@
export {default as WebpackModules} from "./webpackmodules";
import DiscordModules from "./discordmodules";
export const React = DiscordModules.React;
export const ReactDOM = DiscordModules.ReactDOM;
export {DiscordModules};
export {default as Utilities} from "./utilities";
export {default as DataStore} from "./datastore";
export {default as Events} from "./emitter";
export {default as Settings} from "./settingsmanager";
export {default as DOMManager} from "./dommanager";
export {default as Patcher} from "./patcher";
export {default as LocaleManager} from "./localemanager";
export {default as Strings} from "./strings";
export {default as IPC} from "./ipc";
export {default as Logger} from "@common/logger";
export {default as DiscordClasses} from "./discordclasses";

View File

@ -4,9 +4,11 @@
*/
import Logger from "@common/logger";
import DiscordModules from "./discordmodules";
import WebpackModules from "./webpackmodules";
export default class Patcher {
static get patches() {return this._patches || (this._patches = []);}

View File

@ -1,17 +1,21 @@
import {Config} from "data";
import path from "path";
import vm from "vm";
import Logger from "@common/logger";
import Config from "@data/config";
import AddonError from "@structs/addonerror";
import AddonManager from "./addonmanager";
import AddonError from "../structs/addonerror";
import Settings from "./settingsmanager";
import Strings from "./strings";
import Events from "./emitter";
import Toasts from "../ui/toasts";
import Modals from "../ui/modals";
import SettingsRenderer from "../ui/settings";
import Toasts from "@ui/toasts";
import Modals from "@ui/modals";
import SettingsRenderer from "@ui/settings";
const path = require("path");
const vm = require("vm");
const normalizeExports = name => `
if (module.exports.default) {

View File

@ -1,10 +1,13 @@
import {SettingsConfig} from "data";
import Logger from "@common/logger";
import SettingsConfig from "@data/settings";
import DataStore from "./datastore";
import Events from "./emitter";
import DiscordModules from "./discordmodules";
import Strings from "./strings";
export default new class SettingsManager {
constructor() {

View File

@ -1,5 +1,7 @@
import FormattableString from "@structs/string";
import LocaleManager from "./localemanager";
import FormattableString from "../structs/string";
export default new Proxy(LocaleManager.strings, {
get: function(strings, category) {

View File

@ -1,15 +1,18 @@
import {Config} from "data";
import path from "path";
import Config from "@data/config";
import AddonError from "@structs/addonerror";
import AddonManager from "./addonmanager";
import AddonError from "../structs/addonerror";
import Settings from "./settingsmanager";
import DOMManager from "./dommanager";
import Strings from "./strings";
import Toasts from "../ui/toasts";
import Modals from "../ui/modals";
import SettingsRenderer from "../ui/settings";
import Toasts from "@ui/toasts";
import Modals from "@ui/modals";
import SettingsRenderer from "@ui/settings";
const path = require("path");
export default new class ThemeManager extends AddonManager {
get name() {return "ThemeManager";}

View File

@ -1,28 +1,27 @@
import request from "request";
import fileSystem from "fs";
import {Config} from "data";
import path from "path";
import Logger from "@common/logger";
import Config from "@data/config";
import {comparator as semverComparator, regex as semverRegex} from "@structs/semver";
import Events from "./emitter";
import IPC from "./ipc";
import Strings from "./strings";
import DataStore from "./datastore";
import React from "./react";
import Settings from "./settingsmanager";
import PluginManager from "./pluginmanager";
import ThemeManager from "./thememanager";
import WebpackModules from "./webpackmodules";
import Toasts from "../ui/toasts";
import Notices from "../ui/notices";
import Modals from "../ui/modals";
import UpdaterPanel from "../ui/updater";
import DiscordModules from "./discordmodules";
import {comparator as semverComparator, regex as semverRegex} from "../structs/semver";
const React = DiscordModules.React;
import Toasts from "@ui/toasts";
import Notices from "@ui/notices";
import Modals from "@ui/modals";
import UpdaterPanel from "@ui/updater";
const UserSettingsWindow = WebpackModules.getByProps("updateAccount");

View File

@ -1,5 +1,6 @@
import Logger from "@common/logger";
export default class Utilities {
/**
* Generates an automatically memoizing version of an object.

View File

@ -3,7 +3,7 @@
* @module WebpackModules
* @version 0.0.2
*/
import Logger from "../../../common/logger";
import Logger from "@common/logger";
/**
* Checks if a given module matches a set of parameters.

View File

@ -1,4 +1,4 @@
import WebpackModules from "../modules/webpackmodules";
import WebpackModules from "@modules/webpackmodules";
Object.defineProperty(window, "Buffer", {
get() {return Buffer.getBuffer().Buffer;},

View File

@ -1,5 +1,6 @@
import Remote from "./remote";
export default {
...Remote.crypto,
// Wrap it in Buffer

View File

@ -1,6 +1,6 @@
import Remote from "./remote";
export const readFileSync = function (path, options = "utf8") {
return Remote.filesystem.readFile(path, options);
};

View File

@ -1,6 +1,8 @@
import EventEmitter from "@common/events";
import Remote from "./remote";
export function get(url, options = {}, callback) {
if (typeof(options) === "function") {
callback = options;

View File

@ -1,13 +1,15 @@
import EventEmitter from "@common/events";
import Module from "./module";
import * as vm from "./vm";
import * as fs from "./fs";
import request from "./request";
import EventEmitter from "@common/events";
import * as https from "./https";
import Buffer from "./buffer";
import crypto from "./crypto";
import Remote from "./remote";
const originalFs = Object.assign({}, fs);
originalFs.writeFileSync = (path, data, options) => fs.writeFileSync(path, data, Object.assign({}, options, {originalFs: true}));
originalFs.writeFile = (path, data, options) => fs.writeFile(path, data, Object.assign({}, options, {originalFs: true}));

View File

@ -1,8 +1,10 @@
import Logger from "@common/logger";
import {compileFunction} from "./vm";
import Remote from "./remote";
import fs from "./fs";
const path = Remote.path;
export const RequireExtensions = {

View File

@ -1,5 +1,6 @@
import Remote from "./remote";
const methods = ["get", "put", "post", "delete", "head"];
const aliases = {del: "delete"};

View File

@ -1,5 +1,6 @@
import Remote from "./remote";
export const compileFunction = function(code, params = [], options = {}) {
const returned = Remote.vm.compileFunction(code, params, options);
if (typeof(returned) === "function") return returned;

View File

@ -1,7 +1,9 @@
import Logger from "@common/logger";
import Events from "../modules/emitter";
import Settings from "../modules/settingsmanager";
import Patcher from "../modules/patcher";
import Events from "@modules/emitter";
import Settings from "@modules/settingsmanager";
import Patcher from "@modules/patcher";
export default class BuiltinModule {

View File

@ -1,6 +1,7 @@
import DiscordModules from "@modules/discordmodules";
import Utilities from "@modules/utilities";
export default class SimpleMarkdownExt {
static parseToReact(str) {
if (!this._parser) this._initialize();

View File

@ -1,4 +1,5 @@
import Utilities from "../modules/utilities";
import Utilities from "@modules/utilities";
const LINK = /\[(.+?)]/;

View File

@ -3,16 +3,17 @@ import Strings from "@modules/strings";
import DiscordClasses from "@modules/discordclasses";
import WebpackModules from "@modules/webpackmodules";
import Extension from "./icons/extension";
import ThemeIcon from "./icons/theme";
import Divider from "./divider";
import Extension from "@ui/icons/extension";
import ThemeIcon from "@ui/icons/theme";
import Divider from "@ui/divider";
const Parser = Object(WebpackModules.getByProps("defaultRules", "parse")).defaultRules;
const {useState, useCallback, useMemo} = React;
const joinClassNames = (...classNames) => classNames.filter(e => e).join(" ");
function AddonError({err, index}) {
const [expanded, setExpanded] = useState(false);
const toggle = useCallback(() => setExpanded(!expanded), [expanded]);

View File

@ -1,6 +1,8 @@
import SimpleMarkdown from "@structs/markdown";
import React from "@modules/react";
import DiscordClasses from "@modules/discordclasses";
import SimpleMarkdown from "../../structs/markdown";
export default function EmptyImage(props) {
return <div className={`bd-empty-image-container ${DiscordClasses.EmptyImage.emptyContainer}` + (props.className ? ` ${props.className}` : "")}>

View File

@ -1,6 +1,8 @@
import React from "@modules/react";
import DiscordModules from "@modules/discordmodules";
import MagnifyingGlass from "../icons/magnifyingglass";
import MagnifyingGlass from "@ui/icons/magnifyingglass";
export default function NoResults(props) {
return <div className={"bd-empty-results" + (props.className ? ` ${props.className}` : "")}>

View File

@ -4,10 +4,11 @@ import Events from "@modules/emitter";
import Settings from "@modules/settingsmanager";
import Editor from "./editor";
import Refresh from "../icons/reload";
import Save from "../icons/save";
import Edit from "../icons/edit";
import Detach from "../icons/detach";
import Refresh from "@ui/icons/reload";
import Save from "@ui/icons/save";
import Edit from "@ui/icons/edit";
import Detach from "@ui/icons/detach";
const {useState, useCallback, useEffect, forwardRef, useImperativeHandle, useRef} = React;

View File

@ -1,3 +1,4 @@
import React from "@modules/react";
export default ({className}) => <div className={`bd-divider ${className || ""}`}></div>;

View File

@ -2,6 +2,7 @@ import Logger from "@common/logger";
import React from "@modules/react";
import IPC from "@modules/ipc";
export default class ErrorBoundary extends React.Component {
constructor(props) {
super(props);

View File

@ -1,10 +1,12 @@
import React from "@modules/react";
import Strings from "@modules/strings";
import Screen from "../../structs/screen";
import CloseButton from "../icons/close";
import MaximizeIcon from "../icons/fullscreen";
import Modals from "../modals";
import Screen from "@structs/screen";
import CloseButton from "@ui/icons/close";
import MaximizeIcon from "@ui/icons/fullscreen";
import Modals from "@ui/modals";
const {useState, useCallback, useEffect, useRef} = React;

View File

@ -3,10 +3,11 @@ import ReactDOM from "@modules/reactdom";
import Events from "@modules/emitter";
import DOMManager from "@modules/dommanager";
import WebpackModules from "@modules/webpackmodules";
import FloatingWindowContainer from "./floating/container";
/* eslint-disable new-cap */
/* eslint-disable new-cap */
const AppLayerProvider = WebpackModules.getByDisplayName("AppLayerProvider");
let hasInitialized = false;

View File

@ -1,9 +1,10 @@
import React from "@modules/react";
import Strings from "@modules/strings";
import Editor from "../customcss/editor";
import Save from "../icons/save";
import Edit from "../icons/edit";
import Editor from "@ui/customcss/editor";
import Save from "@ui/icons/save";
import Edit from "@ui/icons/edit";
const {useState, useCallback, forwardRef, useImperativeHandle, useRef} = React;

View File

@ -1,4 +1,7 @@
import {Config} from "data";
import Config from "@data/config";
import FormattableString from "@structs/string";
import Logger from "@common/logger";
import React from "@modules/react";
import ReactDOM from "@modules/reactdom";
@ -8,7 +11,7 @@ import DiscordModules from "@modules/discordmodules";
import WebpackModules from "@modules/webpackmodules";
import DiscordClasses from "@modules/discordclasses";
import DOMManager from "@modules/dommanager";
import FormattableString from "../structs/string";
import AddonErrorModal from "./addonerrormodal";
import ErrorBoundary from "./errorboundary";

View File

@ -1,6 +1,7 @@
import WebpackModules from "@modules/webpackmodules";
import DOMManager from "@modules/dommanager";
export default class Notices {
static get baseClass() {return this.__baseClass ??= WebpackModules.getByProps("container", "base")?.base;}
static get errorPageClass() {return this.__errorPageClass ??= WebpackModules.getByProps("errorPage")?.errorPage;}

View File

@ -3,14 +3,13 @@ import Utilities from "@modules/utilities";
import Events from "@modules/emitter";
import Settings from "@modules/settingsmanager";
import DataStore from "@modules/datastore";
import WebpackModules from "@modules/webpackmodules";
import WebpackModules, {Filters} from "@modules/webpackmodules";
import Patcher from "@modules/patcher";
import AddonList from "./settings/addonlist";
import SettingsGroup from "./settings/group";
import SettingsTitle from "./settings/title";
import Header from "./settings/sidebarheader";
import {Filters} from "../modules/webpackmodules";
export default new class SettingsRenderer {

View File

@ -1,24 +1,29 @@
import Logger from "@common/logger";
import SimpleMarkdown from "@structs/markdown";
import React from "@modules/react";
import Strings from "@modules/strings";
import WebpackModules from "@modules/webpackmodules";
import DiscordModules from "@modules/discordmodules";
import SimpleMarkdown from "../../structs/markdown";
import EditIcon from "../icons/edit";
import DeleteIcon from "../icons/delete";
import CogIcon from "../icons/cog";
import Switch from "./components/switch";
import GitHubIcon from "../icons/github";
import MoneyIcon from "../icons/dollarsign";
import WebIcon from "../icons/globe";
import PatreonIcon from "../icons/patreon";
import SupportIcon from "../icons/support";
import ExtIcon from "../icons/extension";
import ErrorIcon from "../icons/error";
import ThemeIcon from "../icons/theme";
import Modals from "../modals";
import Toasts from "../toasts";
import Modals from "@ui/modals";
import Toasts from "@ui/toasts";
import EditIcon from "@ui/icons/edit";
import DeleteIcon from "@ui/icons/delete";
import CogIcon from "@ui/icons/cog";
import GitHubIcon from "@ui/icons/github";
import MoneyIcon from "@ui/icons/dollarsign";
import WebIcon from "@ui/icons/globe";
import PatreonIcon from "@ui/icons/patreon";
import SupportIcon from "@ui/icons/support";
import ExtIcon from "@ui/icons/extension";
import ErrorIcon from "@ui/icons/error";
import ThemeIcon from "@ui/icons/theme";
const {useState, useCallback, useMemo} = React;

View File

@ -4,20 +4,23 @@ import Events from "@modules/emitter";
import DataStore from "@modules/datastore";
import DiscordModules from "@modules/discordmodules";
import Modals from "../modals";
import SettingsTitle from "./title";
import AddonCard from "./addoncard";
import Dropdown from "./components/dropdown";
import Search from "./components/search";
import ErrorBoundary from "../errorboundary";
import ListIcon from "../icons/list";
import GridIcon from "../icons/grid";
import NoResults from "../blankslates/noresults";
import EmptyImage from "../blankslates/emptyimage";
import Modals from "@ui/modals";
import ErrorBoundary from "@ui/errorboundary";
import ListIcon from "@ui/icons/list";
import GridIcon from "@ui/icons/grid";
import NoResults from "@ui/blankslates/noresults";
import EmptyImage from "@ui/blankslates/emptyimage";
const {useState, useCallback, useEffect, useReducer, useMemo} = React;
const SORT_OPTIONS = [
{label: Strings.Addons.name, value: "name"},
{label: Strings.Addons.author, value: "author"},

View File

@ -1,5 +1,6 @@
import React from "@modules/react";
import Arrow from "../../icons/downarrow";
import Arrow from "@ui/icons/downarrow";
const {useState, useCallback} = React;

View File

@ -1,5 +1,6 @@
import React from "@modules/react";
export default function SettingItem({id, name, note, inline, children}) {
return <div className={"bd-setting-item" + (inline ? " inline" : "")}>
<div className={"bd-setting-header"}>

View File

@ -1,7 +1,7 @@
import React from "@modules/react";
import Keyboard from "../../icons/keyboard";
import Close from "../../icons/close";
import Keyboard from "@ui/icons/keyboard";
import Close from "@ui/icons/close";
const {useState, useCallback, useEffect} = React;

View File

@ -1,6 +1,6 @@
import React from "@modules/react";
import RadioIcon from "../../icons/radio";
import RadioIcon from "@ui/icons/radio";
const {useState, useCallback} = React;

View File

@ -1,5 +1,5 @@
import React from "@modules/react";
import SearchIcon from "../../icons/search";
import SearchIcon from "@ui/icons/search";
const {useState, useCallback} = React;

View File

@ -1,6 +1,8 @@
import React from "@modules/react";
import Title from "./title";
import Divider from "../divider";
import Divider from "@ui/divider";
const {useState, useCallback, useRef} = React;

View File

@ -1,4 +1,5 @@
import React from "@modules/react";
import Drawer from "./drawer";
import Switch from "./components/switch";
import Dropdown from "./components/dropdown";

View File

@ -1,8 +1,11 @@
import {Changelog} from "data";
import Changelog from "@data/changelog";
import React from "@modules/react";
import DiscordModules from "@modules/discordmodules";
import HistoryIcon from "../icons/history";
import Modals from "../modals";
import HistoryIcon from "@ui/icons/history";
import Modals from "@ui/modals";
export default function SettingsTitle() {

View File

@ -4,6 +4,7 @@ import Settings from "@modules/settingsmanager";
import WebpackModules from "@modules/webpackmodules";
import DOMManager from "@modules/dommanager";
export default class Toasts {
static get ChannelsClass() {return WebpackModules.getByProps("sidebar", "hasNotice").sidebar.split(" ")[0];}

View File

@ -1,13 +1,15 @@
import {Config} from "data";
import Config from "@data/config";
import React from "@modules/react";
import Strings from "@modules/strings";
import Events from "@modules/emitter";
import Drawer from "./settings/drawer";
import SettingItem from "./settings/components/item";
import SettingsTitle from "./settings/title";
import Toasts from "./toasts";
import Checkmark from "./icons/check";
import Checkmark from "@ui/icons/check";
const {useState, useCallback, useEffect} = React;