Changed getModule to be fetch-from-cache non-async by default

pull/2/head
BakedPVP 4 years ago
parent 53a5173ead
commit 4e609ac114

@ -1,6 +1,4 @@
{
"eslint.format.enable": true,
"editor.codeActionsOnSave": { "source.fixAll.eslint": true },
"editor.tabSize": 2,
"editor.wordWrap": "on",
"todo-tree.tree.showScanModeButton": false,

@ -13,7 +13,7 @@ module.exports = class I18nAPI extends API {
}
startAPI () {
getModule([ 'locale', 'theme' ]).then(module => {
getModule([ 'locale', 'theme' ], true).then(module => {
this.locale = module.locale;
module.addChangeListener(() => {
if (module.locale !== this.locale) {

@ -29,7 +29,7 @@ class RouterAPI extends API {
async restorePrevious () {
const oldRoute = await DiscordNative.settings.get('_VIZALITY_ROUTE');
if (oldRoute && this.routes.find(c => c.path === oldRoute.split('/_vizality')[1])) {
const router = await getModule([ 'replaceWith' ]);
const router = await getModule([ 'replaceWith' ], true);
router.replaceWith(oldRoute);
}
return DiscordNative.settings.set('_VIZALITY_ROUTE', void 0);

@ -1,6 +1,7 @@
const { getModuleByPrototypes, _init } = require('vizality/webpack');
const { sleep, logger: { log, warn, error } } = require('vizality/util');
const { WEBSITE_IMAGES } = require('vizality/constants');
const { IMAGES } = require('vizality/constants');
const { Updatable } = require('vizality/entities');
const { join } = require('path');
@ -92,9 +93,10 @@ class Vizality extends Updatable {
// Vizality startup
async startup () {
console.clear();
// Startup banner
console.log('%c ',
`background: url(${WEBSITE_IMAGES}/console-startup-banner.png) no-repeat center / contain; padding: 63px 242px; font-size: 1px; margin: 10px 0;`
`background: url(${IMAGES}/console-startup-banner.png) no-repeat center / contain; padding: 63px 242px; font-size: 1px; margin: 10px 0;`
);
// APIs
@ -102,6 +104,73 @@ class Vizality extends Updatable {
this.settings = vizality.api.settings.buildCategoryObject('vz-general');
this.emit('settingsReady');
this.modules = {
webpack: {
modules: {}
},
classes: {},
constants: {},
discord: {}
};
/*
* Setting up the modules for the global vizality object
* =====================================================
*
* Webpack
* -------
*/
const WEBPACK_MODULE = require('vizality/webpack');
Object.getOwnPropertyNames(WEBPACK_MODULE)
.filter(prop => prop.indexOf('_'))
.forEach(e => {
if (!e.indexOf('get') && e.includes('Module')) {
this.modules.webpack[e] = WEBPACK_MODULE[e];
} else {
this.modules.webpack.modules[e] = WEBPACK_MODULE[e];
}
});
/*
* Classes
* -------
*/
const CLASSES_MODULE = require('vizality/classes');
Object.getOwnPropertyNames(CLASSES_MODULE)
.forEach(e => this.modules.classes[e] = CLASSES_MODULE[e]);
/*
* Constants
* ---------
*/
const CONSTANTS_MODULE = require('vizality/constants');
Object.getOwnPropertyNames(CONSTANTS_MODULE)
.forEach(e => this.modules.constants[e] = CONSTANTS_MODULE[e]);
/*
* Discord
* -------
*/
const DISCORD_MODULE = require('vizality/discord');
Object.getOwnPropertyNames(DISCORD_MODULE)
.filter(prop => prop.indexOf('_'))
.forEach(e => this.modules.discord[e] = DISCORD_MODULE[e]);
/*
* Discord:settings
* ----------------
*/
const DISCORD_SETTINGS_MODULE = require('vizality/discord/settings');
Object.getOwnPropertyNames(DISCORD_SETTINGS_MODULE)
.filter(prop => prop.indexOf('_'))
.forEach(e => this.modules.discord.settings[e] = DISCORD_SETTINGS_MODULE[e]);
/**
* @warning: Turn this off by default on release.
* @todo: Make this a 'Developer Mode' settings toggle
*/
for (const mdl in this.modules) {
global[mdl] = this.modules[mdl];
}
// Style Manager
this.styleManager.loadThemes();
@ -119,7 +188,7 @@ class Vizality extends Updatable {
document.documentElement.setAttribute('vz-route', getCurrentRoute());
});
const Log = await getModuleByPrototypes([ '_log' ]);
const Log = getModuleByPrototypes([ '_log' ]);
const insteadObj = {};
function _logInstead (module, orig, replace) {

@ -1,11 +1,9 @@
const { resolve } = require('path');
const { readdirSync } = require('fs');
const { rmdirRf, logger } = require('vizality/util');
const { rmdirRf } = require('vizality/util');
module.exports = class PluginManager {
constructor () {
this.MODULE = 'PluginManager';
this.pluginDir = resolve(__dirname, '..', 'plugins');
this.plugins = new Map();
@ -31,7 +29,6 @@ module.exports = class PluginManager {
// Mount/load/enable/install shit
mount (pluginID) {
const plugin = this.get(pluginID);
let manifest;
try {
manifest = Object.assign({
@ -40,11 +37,11 @@ module.exports = class PluginManager {
optionalDependencies: []
}, require(resolve(this.pluginDir, pluginID, 'manifest.json')));
} catch (e) {
return this.error(plugin, `Plugin does not have a valid manifest... Skipping.`);
return this.error(`Plugin ${pluginID} doesn't have a valid manifest - Skipping`);
}
if (!this.manifestKeys.every(key => manifest.hasOwnProperty(key))) {
return this.error(plugin, `Plugin does not have a valid manifest... Skipping.`);
return this.error(`Plugin ${pluginID} doesn't have a valid manifest - Skipping`);
}
try {
@ -53,20 +50,20 @@ module.exports = class PluginManager {
entityID: {
get: () => pluginID,
set: () => {
throw new Error(`Attempted to update its ID at runtime.`);
throw new Error('Plugins cannot update their ID at runtime!');
}
},
manifest: {
get: () => manifest,
set: () => {
throw new Error(`Attempted to update its ID at runtime.`);
throw new Error('Plugins cannot update manifest at runtime!');
}
}
});
this.plugins.set(pluginID, new PluginClass());
} catch (e) {
this.error(plugin, `An error occurred while initializing.`, e);
this.error(`An error occurred while initializing "${pluginID}"!`, e);
}
}
@ -83,7 +80,7 @@ module.exports = class PluginManager {
async unmount (pluginID) {
const plugin = this.get(pluginID);
if (!plugin) {
throw new Error(`Attempted to unmount a non-installed plugin.`);
throw new Error(`Tried to unmount a non installed plugin (${plugin})`);
}
if (plugin.ready) {
await plugin._unload();
@ -104,7 +101,7 @@ module.exports = class PluginManager {
throw new Error(`Tried to load a non-installed plugin: (${plugin})`);
}
if (plugin.ready) {
return this.error(plugin, `Tried to load an already-loaded plugin: (${pluginID})`);
return this.error(`Tried to load an already-loaded plugin: (${pluginID})`);
}
plugin._load();
@ -113,10 +110,10 @@ module.exports = class PluginManager {
unload (pluginID) {
const plugin = this.get(pluginID);
if (!plugin) {
throw new Error(`Tried to unload a non-installed plugin: (${pluginID})`);
throw new Error(`Tried to unload a non-installed plugin: (${plugin})`);
}
if (!plugin.ready) {
return this.error(pluginID, `Tried to unload a non-loaded plugin: (${pluginID})`);
return this.error(`Tried to unload a non-loaded plugin: (${plugin})`);
}
plugin._unload();
@ -124,8 +121,7 @@ module.exports = class PluginManager {
// Enable
enable (pluginID) {
const plugin = this.get(pluginID);
if (!plugin) {
if (!this.get(pluginID)) {
throw new Error(`Tried to enable a non-installed plugin: (${pluginID})`);
}
@ -223,15 +219,15 @@ module.exports = class PluginManager {
}
}
log (submodule, submoduleColor, ...data) {
logger.log(this.MODULE, submodule, submoduleColor, ...data);
log (...data) {
}
error (submodule, submoduleColor, ...data) {
logger.error(this.MODULE, submodule, submoduleColor, ...data);
warn (...data) {
}
warn (submodule, submoduleColor, ...data) {
logger.warn(this.MODULE, submodule, submoduleColor, ...data);
error (...data) {
}
};

@ -1,10 +1,11 @@
const { getModule } = require('vizality/webpack');
module.exports = async () => {
const Flux = await getModule([ 'Store', 'PersistedStore' ]);
const Flux = await getModule([ 'Store', 'PersistedStore' ], true);
Flux.connectStoresAsync = (stores, fn) => (Component) =>
require('vizality/components').AsyncComponent.from((async () => {
const awaitedStores = await Promise.all(stores);
console.log('Remember to add these to settings (darkSiderbar, etc.)', awaitedStores);
return Flux.connectStores(awaitedStores, (props) => fn(awaitedStores, props))(Component);
})());
};

@ -13,17 +13,17 @@ const badgesStore = {};
const badges = {
developer: () => openExternal(`${WEBSITE}/contributors`),
staff: async () => {
const store = await getModule([ 'getGuilds' ]);
const store = await getModule([ 'getGuilds' ], true);
if (store.getGuilds()[GUILD_ID]) {
const router = await getModule([ 'transitionTo' ]);
const channel = await getModule([ 'getLastSelectedChannelId' ]);
const userProfileModal = await getModule([ 'fetchProfile' ]);
const router = await getModule([ 'transitionTo' ], true);
const channel = await getModule([ 'getLastSelectedChannelId' ], true);
const userProfileModal = await getModule([ 'fetchProfile' ], true);
// eslint-disable-next-line new-cap
router.transitionTo(Routes.CHANNEL(GUILD_ID, channel.getChannelId(GUILD_ID)));
userProfileModal.close();
} else {
const windowManager = await getModule([ 'flashFrame', 'minimize' ]);
const { INVITE_BROWSER: { handler: popInvite } } = await getModule([ 'INVITE_BROWSER' ]);
const windowManager = await getModule([ 'flashFrame', 'minimize' ], true);
const { INVITE_BROWSER: { handler: popInvite } } = await getModule([ 'INVITE_BROWSER' ], true);
const oldMinimize = windowManager.minimize;
windowManager.minimize = () => void 0;
popInvite({ args: { code: INVITE_CODE } });

@ -3,7 +3,7 @@ const { AsyncComponent, Icons: { VizalityCutie } } = require('vizality/component
const { close: closeModal } = require('vizality/modal');
module.exports = AsyncComponent.from((async () => {
const PremiumGuildModalHeader = await getModuleByDisplayName('PremiumGuildModalHeader');
const PremiumGuildModalHeader = await getModuleByDisplayName('PremiumGuildModalHeader', true);
return () => {
const res = React.createElement(PremiumGuildModalHeader, { onClose: closeModal });

@ -5,7 +5,7 @@ const { open: openModal } = require('vizality/modal');
const { Clickable, Tooltip } = require('vizality/components');
const { inject, uninject } = require('vizality/injector');
const { React, getModule, getAllModules, getModuleByDisplayName } = require('vizality/webpack');
const { forceUpdateElement, getOwnerInstance, waitFor } = require('vizality/util');
const { waitFor, react: { forceUpdateElement, getOwnerInstance } } = require('vizality/util');
const DonateModal = require('./DonateModal');
const BadgesComponent = require('./Badges');
@ -18,9 +18,9 @@ module.exports = class Badges extends Plugin {
async startPlugin () {
this.classes = {
...await getModule([ 'headerInfo', 'nameTag' ]),
...await getModule([ 'headerInfo', 'nameTag' ], true),
...await getAllModules([ 'modal', 'inner' ])[1],
header: (await getModule([ 'iconBackgroundTierNone', 'container' ])).header
header: (await getModule([ 'iconBackgroundTierNone', 'container' ], true)).header
};
Object.keys(this.classes).forEach(
@ -44,7 +44,7 @@ module.exports = class Badges extends Plugin {
async _patchGuildTooltips () {
const _this = this;
const GuildBadge = await getModuleByDisplayName('GuildBadge');
const GuildBadge = await getModuleByDisplayName('GuildBadge', true);
inject('vz-badges-guilds-tooltip', GuildBadge.prototype, 'render', function (_, res) {
const { guild } = this.props;
// GuildBadges is used in different places, size prop seems GuildTooltip "exclusive"
@ -58,7 +58,7 @@ module.exports = class Badges extends Plugin {
async _patchGuildHeaders () {
const _this = this;
const GuildHeader = await getModuleByDisplayName('GuildHeader');
const GuildHeader = await getModuleByDisplayName('GuildHeader', true);
inject('vz-badges-guilds-header', GuildHeader.prototype, 'renderHeader', function (_, res) {
if (_this.guildBadges[this.props.guild.id]) {
res.props.children.unshift(

@ -14,9 +14,9 @@ module.exports = class ChannelHistory extends Plugin {
if (cmd !== 'browser-backward' && cmd !== 'browser-forward') return;
if (cmd === 'browser-backward' && webContents.canGoBack()) {
(await getModule([ 'history' ])).history.back();
(await getModule([ 'history' ], true)).history.back();
} else if (cmd === 'browser-forward' && webContents.canGoForward()) {
(await getModule([ 'history' ])).history.forward();
(await getModule([ 'history' ], true)).history.forward();
}
}

@ -1,7 +1,7 @@
const { Plugin } = require('vizality/entities');
const { React, getModule, hljs } = require('vizality/webpack');
const { inject, uninject } = require('vizality/injector');
const { findInReactTree } = require('vizality/util');
const { react: { findInReactTree } } = require('vizality/util');
const { clipboard } = require('electron');
module.exports = class Codeblocks extends Plugin {
@ -16,7 +16,7 @@ module.exports = class Codeblocks extends Plugin {
}
async patchCodeblocks () {
const parser = await getModule([ 'parse', 'parseTopic' ]);
const parser = await getModule([ 'parse', 'parseTopic' ], true);
inject('vz-codeblocks-inline', parser.defaultRules.codeBlock, 'react', (args, res) => {
this.injectCodeblock(args, res);

@ -1,7 +1,7 @@
const { React, getModuleByDisplayName } = require('vizality/webpack');
const { Text } = require('vizality/components');
const Autocomplete = getModuleByDisplayName('Autocomplete', false);
const Autocomplete = getModuleByDisplayName('Autocomplete');
module.exports = class Command extends Autocomplete.Command {
renderContent () {

@ -1,6 +1,6 @@
const { getModuleByDisplayName } = require('vizality/webpack');
const Autocomplete = getModuleByDisplayName('Autocomplete', false);
const Autocomplete = getModuleByDisplayName('Autocomplete');
module.exports = class Title extends Autocomplete.Title {
render () {

@ -5,7 +5,7 @@ const Title = require('./components/Title');
const Command = require('./components/Command');
module.exports = async function injectAutocomplete () {
const ChannelAutocomplete = await getModuleByDisplayName('ChannelAutocomplete');
const ChannelAutocomplete = await getModuleByDisplayName('ChannelAutocomplete', true);
function renderCommandResults (query, selected, commands, onClick, onHover, formatCommand, formatHeader, customHeader) {
const renderHeader = function (query, formatHeader) {

@ -1,13 +1,13 @@
const { getModule, messages, channels: { getChannelId } } = require('vizality/webpack');
const { WEBSITE_IMAGES } = require('vizality/constants');
const { IMAGES } = require('vizality/constants');
const { receiveMessage } = messages;
module.exports = async function monkeypatchMessages () {
const { BOT_AVATARS } = await getModule([ 'BOT_AVATARS' ]);
const { createBotMessage } = await getModule([ 'createBotMessage' ]);
const { BOT_AVATARS } = await getModule([ 'BOT_AVATARS' ], true);
const { createBotMessage } = await getModule([ 'createBotMessage' ], true);
// create a new `BOT_AVATARS` key called 'vizality' which we'll later use to replace Clyde.
BOT_AVATARS.vizality = `${WEBSITE_IMAGES}/logo.png`;
// Create a new `BOT_AVATARS` key called 'vizality' which we'll later use to replace Clyde.
BOT_AVATARS.vizality = `${IMAGES}/logo.png`;
messages.sendMessage = (sendMessage => async (id, message, ...params) => {
if (!message.content.startsWith(vizality.api.commands.prefix)) {
@ -31,14 +31,11 @@ module.exports = async function monkeypatchMessages () {
const receivedMessage = createBotMessage(getChannelId(), '');
if (vizality.settings.get('replaceClyde', true)) {
// noinspection JSPrimitiveTypeWrapperUsage
receivedMessage.author.username = result.username || 'Vizality';
// noinspection JSPrimitiveTypeWrapperUsage
receivedMessage.author.avatar = 'vizality';
if (result.avatar_url) {
BOT_AVATARS[result.username] = result.avatar_url;
// noinspection JSPrimitiveTypeWrapperUsage
receivedMessage.author.avatar = result.username;
}
}
@ -49,7 +46,6 @@ module.exports = async function monkeypatchMessages () {
receivedMessage.embeds.push(result.result);
}
// noinspection CommaExpressionJS
return (receiveMessage(receivedMessage.channel_id, receivedMessage), delete BOT_AVATARS[result.avatar_url]);
}

@ -14,7 +14,7 @@ module.exports = class UtilityClasses extends Plugin {
}
async _injectContextMenuItems () {
const MenuItem = await getModule(m => m.default && m.default.displayName === 'MenuItem');
const MenuItem = await getModule(m => m.default && m.default.displayName === 'MenuItem', true);
inject('vz-contextMenuIcons', MenuItem, 'default', (originalArgs, returnValue) => {
if (!returnValue.props || !returnValue.props.id) return returnValue;
@ -67,7 +67,7 @@ module.exports = class UtilityClasses extends Plugin {
}
async _injectContextMenuCheckboxItems () {
const MenuCheckboxItem = await getModule(m => m.default && m.default.displayName === 'MenuCheckboxItem');
const MenuCheckboxItem = await getModule(m => m.default && m.default.displayName === 'MenuCheckboxItem', true);
inject('vz-contextMenuCheckboxIcons', MenuCheckboxItem, 'default', (originalArgs, returnValue) => {
if (!returnValue.props || !returnValue.props.id) return returnValue;
@ -97,7 +97,7 @@ module.exports = class UtilityClasses extends Plugin {
}
async _injectContextMenuControlItems () {
const MenuControlItem = await getModule(m => m.default && m.default.displayName === 'MenuControlItem');
const MenuControlItem = await getModule(m => m.default && m.default.displayName === 'MenuControlItem', true);
inject('vz-contextMenuControlIcons', MenuControlItem, 'default', (originalArgs, returnValue) => {
if (!returnValue.props || !returnValue.props.id || !returnValue.props.children || !returnValue.props.children[0].props) return returnValue;

@ -13,7 +13,7 @@ module.exports = class CopyRawMessage extends Plugin {
}
async _patchContextMenu () {
const MessageContextMenu = await getModule(m => m.default && m.default.displayName === 'MessageContextMenu');
const MessageContextMenu = await getModule(m => m.default && m.default.displayName === 'MessageContextMenu', true);
inject('copy-raw-message', MessageContextMenu, 'default', ([ props ], returnValue) => {
const { message } = props;

@ -7,9 +7,9 @@ const { joinClassNames } = require('vizality/util');
*/
module.exports = async () => {
const MenuItem = await getModule(m => m.default && m.default.displayName === 'MenuItem');
const MenuItem = await getModule(m => m.default && m.default.displayName === 'MenuItem', true);
const originalMenuItem = MenuItem.default;
const GuildStore = await getModule([ 'getGuild' ]);
const GuildStore = await getModule([ 'getGuild' ], true);
inject('vz-cde-contextServerInviteIcons', MenuItem, 'default', ([ props ], returnValue) => {
if (!returnValue.props || !returnValue.props.id || returnValue.props.id.indexOf('user-context-invite-to-server--')) return returnValue;

@ -2,7 +2,7 @@
const { Plugin } = require('vizality/entities');
const { React, getModuleByDisplayName, getModule, i18n } = require('vizality/webpack');
const { inject, uninject } = require('vizality/injector');
const { findInReactTree, forceUpdateElement } = require('vizality/util');
const { react: { findInReactTree, forceUpdateElement } } = require('vizality/util');
module.exports = class CustomBanners extends Plugin {
startPlugin () {
@ -12,7 +12,7 @@ module.exports = class CustomBanners extends Plugin {
}
async _patchPrivateChannelEmptyMessage () {
const PrivateChannelEmptyMessage = await getModuleByDisplayName('PrivateChannelEmptyMessage');
const PrivateChannelEmptyMessage = await getModuleByDisplayName('PrivateChannelEmptyMessage', true);
inject('pc-impChannelTitlebar-privateChannelsEmptyMessage', PrivateChannelEmptyMessage.prototype, 'render', (_, res) => {
console.log(res);

@ -3,11 +3,11 @@ const { getModule } = require('vizality/webpack');
module.exports = class DoNotTrack extends Plugin {
async startPlugin () {
const Analytics = await getModule([ 'getSuperPropertiesBase64' ]);
const Analytics = await getModule([ 'getSuperPropertiesBase64' ], true);
Analytics.__oldTrack = Analytics.track;
Analytics.track = () => void 0;
const Reporter = await getModule([ 'submitLiveCrashReport' ]);
const Reporter = await getModule([ 'submitLiveCrashReport' ], true);
Reporter.__oldSubmitLiveCrashReport = Reporter.submitLiveCrashReport;
Reporter.submitLiveCrashReport = () => void 0;
@ -42,10 +42,10 @@ module.exports = class DoNotTrack extends Plugin {
async pluginWillUnload () {
EventTarget.prototype.removeEventListener = this.__rel;
const Analytics = getModule([ 'getSuperPropertiesBase64' ], false);
const Analytics = getModule([ 'getSuperPropertiesBase64' ]);
Analytics.track = Analytics.__oldTrack;
const Reporter = getModule([ 'submitLiveCrashReport' ], false);
const Reporter = getModule([ 'submitLiveCrashReport' ]);
Reporter.submitLiveCrashReport = Reporter.__oldSubmitLiveCrashReport;
const Sentry = {

@ -4,7 +4,7 @@ const { Spinner, FormNotice, AsyncComponent } = require('vizality/components');
const { WEBSITE } = require('vizality/constants');
const { get } = require('vizality/http');
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle'));
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle', true));
const documentCache = {};
@ -151,9 +151,9 @@ module.exports = (props) => <AsyncComponent
_provider={async () => {
if (!modules) {
modules = {
hljs: await getModule([ 'highlight' ]),
markdown: await getModule([ 'markdownToHtml' ]),
markup: (await getModule([ 'markup' ])).markup
hljs: await getModule([ 'highlight' ], true),
markdown: await getModule([ 'markdownToHtml' ], true),
markup: (await getModule([ 'markup' ], true)).markup
};
}
return () => <DocPage modules={modules} {...props}/>;

@ -1,6 +1,6 @@
const { React, Flux, getModule } = require('vizality/webpack');
const { PopoutWindow, Spinner } = require('vizality/components');
const { getOwnerInstance } = require('vizality/util');
const { react: { getOwnerInstance } } = require('vizality/util');
const { WEBSITE } = require('vizality/constants');
const { get } = require('vizality/http');
const DocPage = require('./DocPage');
@ -75,7 +75,7 @@ class DocsLayer extends React.PureComponent {
windowOnTop={this.props.windowOnTop}
popout={this.props.popout}
onPopout={() => this.openPopout()}
onClose={() => getModule([ 'popLayer' ], false).popLayer()}
onClose={() => getModule([ 'popLayer' ]).popLayer()}
onSetSection={section => {
if (section.startsWith('_part/')) {
this.scrollTo(section.split('/').pop());
@ -100,8 +100,8 @@ class DocsLayer extends React.PureComponent {
}
openPopout () {
getModule([ 'popLayer' ], false).popLayer();
getModule([ 'setAlwaysOnTop', 'open' ], false).open('DISCORD_VIZALITY_DOCUMENTATION', (key) => (
getModule([ 'popLayer' ]).popLayer();
getModule([ 'setAlwaysOnTop', 'open' ]).open('DISCORD_VIZALITY_DOCUMENTATION', (key) => (
<PopoutWindow windowKey={key}>
<ConnectedDocsLayer popout={true}/>
</PopoutWindow>
@ -110,7 +110,7 @@ class DocsLayer extends React.PureComponent {
}
const ConnectedDocsLayer = Flux.connectStoresAsync(
[ getModule([ 'theme' ]), getModule([ 'darkSidebar' ]), getModule([ 'getWindow' ]) ],
[ getModule([ 'theme' ], true), getModule([ 'darkSidebar' ], true), getModule([ 'getWindow' ], true) ],
([ themeStore, sidebarStore, windowStore ]) => ({
guestWindow: windowStore.getWindow('DISCORD_VIZALITY_DOCUMENTATION'),
windowOnTop: windowStore.getIsAlwaysOnTop('DISCORD_VIZALITY_DOCUMENTATION'),

@ -2,8 +2,8 @@ const { React, getModule, getModuleByDisplayName, i18n: { Messages } } = require
const { AsyncComponent, Clickable, Tooltip, Icons: { ExternalLink, Pin, Unpin, Close } } = require('vizality/components');
module.exports = AsyncComponent.from((async () => {
const StandardSidebarView = await getModuleByDisplayName('StandardSidebarView');
const SettingsView = await getModuleByDisplayName('SettingsView');
const StandardSidebarView = await getModuleByDisplayName('StandardSidebarView', true);
const SettingsView = await getModuleByDisplayName('SettingsView', true);
class DocsSidebarView extends StandardSidebarView {
render () {
@ -50,7 +50,7 @@ module.exports = AsyncComponent.from((async () => {
position='left'
>
<Clickable
onClick={() => getModule([ 'setAlwaysOnTop', 'open' ], false)
onClick={() => getModule([ 'setAlwaysOnTop', 'open' ])
.setAlwaysOnTop('DISCORD_VIZALITY_DOCUMENTATION', !this.props.windowOnTop)}
className='button'
>
@ -60,7 +60,7 @@ module.exports = AsyncComponent.from((async () => {
<Tooltip text={Messages.CLOSE_WINDOW} position='left'>
<Clickable
className='button'
onClick={() => getModule([ 'setAlwaysOnTop', 'open' ], false).close('DISCORD_VIZALITY_DOCUMENTATION')}
onClick={() => getModule([ 'setAlwaysOnTop', 'open' ]).close('DISCORD_VIZALITY_DOCUMENTATION')}
>
<Close/>
</Clickable>

@ -32,8 +32,8 @@ module.exports = class Documentation extends Plugin {
}
async addDocsItems () {
const { pushLayer } = await getModule([ 'pushLayer' ]);
const SettingsView = await getModuleByDisplayName('SettingsView');
const { pushLayer } = await getModule([ 'pushLayer' ], true);
const SettingsView = await getModuleByDisplayName('SettingsView', true);
inject('vz-docs-tab', SettingsView.prototype, 'getPredicateSections', (args, sections) => {
const changelog = sections.find(c => c.section === 'changelog');
if (changelog) {
@ -55,13 +55,13 @@ module.exports = class Documentation extends Plugin {
}
async _ensureHighlight () {
const module = await getModule([ 'highlight' ]);
const module = await getModule([ 'highlight' ], true);
if (typeof module.highlight !== 'function') {
const currentChannel = (await getModule([ 'getChannelId' ])).getChannelId();
const currentChannel = (await getModule([ 'getChannelId' ], true)).getChannelId();
if (!currentChannel) {
const router = await getModule([ 'replaceWith' ]);
const channels = await getModule([ 'getChannels' ]);
const permissions = await getModule([ 'can' ]);
const router = await getModule([ 'replaceWith' ], true);
const channels = await getModule([ 'getChannels' ], true);
const permissions = await getModule([ 'can' ], true);
const currentLocation = window.location.pathname;
const channel = channels.getChannels().find(c => c.type === 0 && permissions.can(discordConsts.Permissions.VIEW_CHANNEL, c));
const route = discordConsts.Routes.CHANNEL(channel.guild_id, channel.id); // eslint-disable-line new-cap
@ -76,7 +76,7 @@ module.exports = class Documentation extends Plugin {
}
async _loadModule (channel) {
const module = await getModule([ 'createBotMessage' ]);
const module = await getModule([ 'createBotMessage' ], true);
const message = module.createBotMessage(channel, '```js\nconsole.log("yeet")\n```');
messages.receiveMessage(channel, message);
messages.deleteMessage(channel, message.id, true);

@ -11,11 +11,11 @@ const totalStrCount = Object.keys(strings['en-US']).length;
module.exports = class I18n extends Plugin {
async startPlugin () {
const FluxSettingsLocale = await getModuleByDisplayName('FluxContainer(UserSettingsLocale)');
const FluxSettingsLocale = await getModuleByDisplayName('FluxContainer(UserSettingsLocale)', true);
// noinspection JSPotentiallyInvalidConstructorUsage
const SettingsLocale = React.createElement(FluxSettingsLocale)
.type.prototype.render.call({ memoizedGetStateFromStores: () => ({}) });
const { codeRedemptionRedirect } = await getModule([ 'codeRedemptionRedirect' ]);
const { codeRedemptionRedirect } = await getModule([ 'codeRedemptionRedirect' ], true);
inject('vz-i18n-psst', SettingsLocale.type.prototype, 'render', (_, res) => {
if (!Messages.VIZALITY_I18N_CONTRIBUTE) {
return res;

@ -2,7 +2,7 @@
const { Plugin } = require('vizality/entities');
const { React, getModuleByDisplayName, getModule, i18n } = require('vizality/webpack');
const { inject, uninject } = require('vizality/injector');
const { findInReactTree } = require('vizality/util');
const { react : { findInReactTree } } = require('vizality/util');
module.exports = class ChannelTitlebar extends Plugin {
constructor () {
@ -23,7 +23,7 @@ module.exports = class ChannelTitlebar extends Plugin {
}
async _getGuildChannelHeader () {
const GuildHeader = await getModuleByDisplayName('GuildHeader');
const GuildHeader = await getModuleByDisplayName('GuildHeader', true);
inject('pc-impChannelTitlebar-guildChannelHeader', GuildHeader.prototype, 'renderHeader', (_, res) => {
this.guildHeader = res;
@ -35,7 +35,7 @@ module.exports = class ChannelTitlebar extends Plugin {
}
async improvedChannelHeader () {
const ChannelHeader = await getModuleByDisplayName('HeaderBarContainer');
const ChannelHeader = await getModuleByDisplayName('HeaderBarContainer', true);
inject('pc-impChannelTitlebar-channelHeader', ChannelHeader.prototype, 'render', (_, res) => {
const found = findInReactTree(res, n => n.channel);
@ -66,7 +66,7 @@ module.exports = class ChannelTitlebar extends Plugin {
iconType = 'avatars';
noIconURL = document.querySelector('.channel-2QD9_O.selected-aXhQR6 .avatar-VxgULZ') ? document.querySelector('.channel-2QD9_O.selected-aXhQR6 .avatar-VxgULZ').src : '';
activity = (getModule([ 'getPrimaryActivity' ], false)).getPrimaryActivity(iconId);
activity = (getModule([ 'getPrimaryActivity' ])).getPrimaryActivity(iconId);
if (activity) {
if (activity.type === 0) {

@ -1,9 +1,8 @@
const { React, getModuleByDisplayName, getModule } = require('vizality/webpack');
const { forceUpdateElement } = require('vizality/util');
const { routes: { goTo } } = require('vizality/discord');
const { AsyncComponent, Icon, Button, Tooltip, Clickable } = require('vizality/components');
const { AsyncComponent, Icon } = require('vizality/components');
const AccountPanel = AsyncComponent.from(getModuleByDisplayName('AccountConnected'));
const AccountPanel = AsyncComponent.from(getModuleByDisplayName('AccountConnected', true));
module.exports = class MainNav extends React.Component {
render () {
@ -37,7 +36,7 @@ module.exports = class MainNav extends React.Component {
</div>
</div>
<div className='vizality-main-nav__section-right'>
<div className='vizality-main-nav__inbox' onClick={async () => (await getModule([ 'TOGGLE_INBOX' ])).TOGGLE_INBOX.action()}>
<div className='vizality-main-nav__inbox' onClick={async () => (await getModule([ 'TOGGLE_INBOX' ], true)).TOGGLE_INBOX.action()}>
<Icon wrapperClassName='vizality-main-nav__inbox-icon-wrapper' type='notification-bell'></Icon>
</div>
<div className='vizality-main-nav__account-panel'>

@ -1,7 +1,7 @@
const { Plugin } = require('vizality/entities');
const { inject, uninject } = require('vizality/injector');
const { React, getModule, getModuleByDisplayName } = require('vizality/webpack');
const { forceUpdateElement } = require('vizality/util');
const { react: { forceUpdateElement } } = require('vizality/util');
const Settings = require('./components/Settings');
const MainNav = require('./components/MainNav');
@ -27,9 +27,9 @@ module.exports = class MainNavigation extends Plugin {
document.documentElement.setAttribute('vz-main-nav-position', this.settings.get('position', 'top'));
document.documentElement.setAttribute('vz-main-nav-link-style', this.settings.get('link-style', 'text'));
const { app } = await getModule([ 'app', 'layers' ]);
const { app } = await getModule([ 'app', 'layers' ], true);
const Shakeable = await getModuleByDisplayName('Shakeable');
const Shakeable = await getModuleByDisplayName('Shakeable', true);
const navBar = React.createElement(MainNav, { position, linkStyle });
inject('vz-mainNav', Shakeable.prototype, 'render', (originalArgs, returnValue) => [ navBar, returnValue ]);

@ -2,16 +2,16 @@ const { Plugin } = require('vizality/entities');
const { getModule, React, i18n: { Messages } } = require('vizality/webpack');
const { inject, uninject } = require('vizality/injector');
const PersonPlay = getModule(m => m.id && m.keys().includes('./Activity'), false)('./PersonPlay').default;
const PersonPlay = getModule(m => m.id && m.keys().includes('./Activity'))('./PersonPlay').default;
module.exports = class GameActivityToggle extends Plugin {
async startPlugin () {
const classes = await getModule([ 'status', 'description' ]);
const settings = await getModule([ 'updateRemoteSettings' ]);
const classes = await getModule([ 'status', 'description' ], true);
const settings = await getModule([ 'updateRemoteSettings' ], true);
let { showCurrentGame } = await getModule([ 'showCurrentGame' ]);
const Menu = await getModule(m => m.default && m.default.displayName === 'Menu');
const Menu = await getModule(m => m.default && m.default.displayName === 'Menu', true);
inject('game-activity-toggle', Menu, 'default', (originalArgs) => {
if (originalArgs[0].navId !== 'status-picker') {
return originalArgs;

@ -1,5 +1,4 @@
const { React, getModule, getModuleByDisplayName } = require('vizality/webpack');
const { sleep, forceUpdateElement } = require('vizality/util');
const { TextInput, SwitchItem, Category, RadioGroup, SelectInput, ColorPickerInput, CopyInput, TextArea, RegionSelector, SliderInput, PermissionOverrideItem } = require('vizality/components/settings');
const { clipboard } = require('electron');
@ -17,7 +16,7 @@ module.exports = class Settings extends React.Component {
super(props);
this.state = {
copyInput: {
mode: getModule(m => m.default && m.default.Modes, false).default.Modes.DEFAULT,
mode: getModule(m => m.default && m.default.Modes).default.Modes.DEFAULT,
text: 'Copy'
},
classes
@ -30,7 +29,7 @@ module.exports = class Settings extends React.Component {
return;
}
const Flex = await getModuleByDisplayName('Flex');
const Flex = await getModuleByDisplayName('Flex', true);
classes = {
initialized: true,

@ -30,7 +30,7 @@ module.exports = class Titlebar extends React.Component {
className={`vizality-titlebar__button-container back small ${!webContents.canGoBack() ? 'disabled' : ''}`}
title='Back'
onClick={() => {
getModule([ 'history' ], false).history.back();
getModule([ 'history' ]).history.back();
}}
>
<Icon wrapperClassName='vizality-titlebar__icon-wrapper' type='caret-left'></Icon>
@ -40,7 +40,7 @@ module.exports = class Titlebar extends React.Component {
className={`vizality-titlebar__button-container forward small ${!webContents.canGoForward() ? 'disabled' : ''}`}
title='Forward'
onClick={() => {
getModule([ 'history' ], false).history.forward();
getModule([ 'history' ]).history.forward();
}}
>
<Icon wrapperClassName='vizality-titlebar__icon-wrapper' type='caret-right'></Icon>

@ -1,7 +1,7 @@
const { Plugin } = require('vizality/entities');
const { inject, uninject } = require('vizality/injector');
const { React, getModule, getModuleByDisplayName } = require('vizality/webpack');
const { forceUpdateElement } = require('vizality/util');
const { react: { forceUpdateElement } } = require('vizality/util');
const Settings = require('./components/Settings');
const Titlebar = require('./components/Titlebar');
@ -24,9 +24,9 @@ module.exports = class ImprovedTitlebar extends Plugin {
}
async _injectTitlebar (type, showHeader, headerText, showExtras) {
const { app } = getModule([ 'app', 'layers' ]);
const { app } = getModule([ 'app', 'layers' ], true);
document.documentElement.setAttribute('titlebar-type', this.settings.get('type', 'windows'));
const Shakeable = await getModuleByDisplayName('Shakeable');
const Shakeable = await getModuleByDisplayName('Shakeable', true);
const titlebar = React.createElement(Titlebar, { type, showHeader, headerText, showExtras });
inject('advancedTitlebar-titlebar', Shakeable.prototype, 'render', (originalArgs, returnValue) => [ titlebar, returnValue ]);

@ -12,7 +12,7 @@ module.exports = class MembersActivityIcons extends Plugin {
}
async _injectActivityIcons () {
const MemberListItem = await getModuleByDisplayName('MemberListItem');
const MemberListItem = await getModuleByDisplayName('MemberListItem', true);
inject('vz-members-activity-icons', MemberListItem.prototype, 'render', (originalArgs, returnValue) => {
const { activities } = returnValue.props.subText.props;

@ -2,7 +2,7 @@ const { React, getModuleByDisplayName, i18n: { Messages } } = require('vizality/
const { Card, AsyncComponent } = require('vizality/components');
const { Modal } = require('vizality/components/modal');
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle'));
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle', true));
module.exports = ({ spdx, license: { name, url, permissions, conditions, limitations } }) => {
const data = {

@ -8,7 +8,7 @@ const Tags = require('./parts/Product/Tags');
const Footer = require('./parts/Product/Footer');
let classes = null;
setImmediate(async () => classes = await getModule([ 'card', 'loaded' ]));
setImmediate(async () => classes = await getModule([ 'card', 'loaded' ], true));
module.exports = class Product extends React.Component {
render () {

@ -4,15 +4,6 @@ const { Button, Spinner } = require('vizality/components');
// @todo: merge with Product/
module.exports = ({ id, installing, onUninstall }) =>
<div className='vizality-plugin-footer'>
{/* <Button
onClick={() => openExternal(`https://github.com/${REPO_URL}`)}
look={Button.Looks.LINK}
size={Button.Sizes.SMALL}
color={Button.Colors.TRANSPARENT}
>
Repository
</Button> */}
<div className='btn-group'>
{!id.startsWith('vz-') && <Button
disabled={installing}

@ -1,9 +1,9 @@
const { React, getModuleByDisplayName } = require('vizality/webpack');
const { AsyncComponent } = require('vizality/components');
const Mask = AsyncComponent.from(getModuleByDisplayName('Mask'));
const Mask = AsyncComponent.from(getModuleByDisplayName('Mask', true));
const CarouselWithSlide = AsyncComponent.from((async () => {
const CarouselWithSlide = await getModuleByDisplayName('CarouselWithSlide');
const CarouselWithSlide = await getModuleByDisplayName('CarouselWithSlide', true);
return class Carousel extends CarouselWithSlide {
render () {
const res = super.render();

@ -52,7 +52,7 @@ class Base extends React.Component {
{this.renderSearch()}
{items.length === 0
? <div className='empty'>
<div className={getModule([ 'emptyStateImage' ], false).emptyStateImage}/>
<div className={getModule([ 'emptyStateImage' ]).emptyStateImage}/>
<p>{Messages.GIFT_CONFIRMATION_HEADER_FAIL}</p>
<p>{Messages.SEARCH_NO_RESULTS}</p>
</div>
@ -104,8 +104,8 @@ class Base extends React.Component {
}
async goToStore () {
const { popLayer } = await getModule([ 'popLayer' ]);
const { transitionTo } = await getModule([ 'transitionTo' ]);
const { popLayer } = await getModule([ 'popLayer' ], true);
const { transitionTo } = await getModule([ 'transitionTo' ], true);
popLayer();
transitionTo(`/_vizality/store/${this.constructor.name.toLowerCase()}`);
}

@ -49,7 +49,7 @@ class QuickCSS extends React.PureComponent {
>
<Clickable
onClick={async () => {
const popoutModule = await getModule([ 'setAlwaysOnTop', 'open' ]);
const popoutModule = await getModule([ 'setAlwaysOnTop', 'open' ], true);
popoutModule.setAlwaysOnTop('DISCORD_VIZALITY_QUICKCSS', !this.props.windowOnTop);
}}
className='button'
@ -60,7 +60,7 @@ class QuickCSS extends React.PureComponent {
<Tooltip text={this.props.popout ? Messages.CLOSE_WINDOW : Messages.POPOUT_PLAYER} position='left'>
<Clickable
onClick={() => this.props.popout
? getModule([ 'setAlwaysOnTop', 'open' ], false).close('DISCORD_VIZALITY_QUICKCSS')
? getModule([ 'setAlwaysOnTop', 'open' ]).close('DISCORD_VIZALITY_QUICKCSS')
: this.props.openPopout()}
className='button'
>
@ -217,7 +217,7 @@ class QuickCSS extends React.PureComponent {
}
module.exports = AsyncComponent.from((async () => {
const windowStore = await getModule([ 'getWindow' ]);
const windowStore = await getModule([ 'getWindow' ], true);
return Flux.connectStores([ windowStore, vizality.api.settings.store ], () => ({
guestWindow: windowStore.getWindow('DISCORD_VIZALITY_QUICKCSS'),
windowOnTop: windowStore.getIsAlwaysOnTop('DISCORD_VIZALITY_QUICKCSS'),

@ -3,7 +3,7 @@ const { TabBar, Divider, Button, AsyncComponent } = require('vizality/components
const InstalledProduct = require('../parts/InstalledProduct');
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle'));
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle', true));
class ThemeSettings extends React.PureComponent {
constructor (props) {
@ -48,7 +48,7 @@ class ThemeSettings extends React.PureComponent {
}
renderTopPills () {
const { topPill, item } = getModule([ 'topPill' ], false);
const { topPill, item } = getModule([ 'topPill' ]);
return (
<div className='vizality-entities-manage-tabs'>
<TabBar

@ -18,7 +18,7 @@ class Themes extends Base {
);
}
const { topPill, item } = getModule([ 'topPill' ], false);
const { topPill, item } = getModule([ 'topPill' ]);
return (
<>
<div className='vizality-entities-manage-tabs'>

@ -86,9 +86,9 @@ class BaseProduct extends React.PureComponent {
}
async goToDiscord (code) {
const inviteStore = await getModule([ 'acceptInviteAndTransitionToInviteChannel' ]);
const inviteStore = await getModule([ 'acceptInviteAndTransitionToInviteChannel' ], true);
inviteStore.acceptInviteAndTransitionToInviteChannel(code);
(await getModule([ 'popLayer' ])).popAllLayers();
(await getModule([ 'popLayer' ], true)).popAllLayers();
}
}

@ -5,8 +5,8 @@ const Product = require('../brrrrr/items/Products/Product');
const VerticalScroller = AsyncComponent.from(getModuleByDisplayName('VerticalScroller'));
const SearchBox = AsyncComponent.from((async () => {
/*
* const { searchHelpTextVisible } = await getModule([ 'searchHelpTextVisible' ]);
* const GuildDiscoverySearch = await getModuleByDisplayName('GuildDiscoverySearchWithResults');
* const { searchHelpTextVisible } = await getModule([ 'searchHelpTextVisible' ], true);
* const GuildDiscoverySearch = await getModuleByDisplayName('GuildDiscoverySearchWithResults', true);
* const instance = new GuildDiscoverySearch({});
* return (props) => {
* const res = instance.renderSearch().props.children({});
@ -25,11 +25,11 @@ const classes = null;
setImmediate(async () => {
/*
* classes = {
* background: (await getModule([ 'bg', 'body' ])).bg,
* quickSelectArrow: (await getModule([ 'quickSelectArrow' ])).quickSelectArrow,
* topic: (await getModule([ 'topic', 'expandable' ])).topic,
* headerBar: await getModule([ 'iconWrapper', 'clickable' ]),
* store: await getModule([ 'storeHomeWidth', 'container' ])
* background: (await getModule([ 'bg', 'body' ], true)).bg,
* quickSelectArrow: (await getModule([ 'quickSelectArrow' ], true)).quickSelectArrow,
* topic: (await getModule([ 'topic', 'expandable' ], true)).topic,
* headerBar: await getModule([ 'iconWrapper', 'clickable' ], true),
* store: await getModule([ 'storeHomeWidth', 'container' ], true)
* };
*/
});
@ -181,4 +181,4 @@ const images = {
}
};
module.exports = Flux.connectStoresAsync([ getModule([ 'theme' ]) ], ([ settingsStore ]) => ({ images: images[settingsStore.theme] }))(Store);
module.exports = Flux.connectStoresAsync([ getModule([ 'theme' ], true) ], ([ settingsStore ]) => ({ images: images[settingsStore.theme] }))(Store);

@ -3,7 +3,7 @@ const { writeFile, readFile } = require('fs').promises;
const { React, constants: { Permissions }, getModule, getModuleByDisplayName, i18n: { Messages } } = require('vizality/webpack');
const { PopoutWindow, Icons: { Plugin: PluginIcon, Theme } } = require('vizality/components');
const { inject, uninject } = require('vizality/injector');
const { findInReactTree, forceUpdateElement } = require('vizality/util');
const { react : { findInReactTree, forceUpdateElement } } = require('vizality/util');
const { Plugin } = require('vizality/entities');
const { MAGIC_CHANNELS: { CSS_SNIPPETS, STORE_PLUGINS, STORE_THEMES } } = require('vizality/constants');
const { join } = require('path');
@ -100,7 +100,7 @@ module.exports = class ModuleManager extends Plugin {
}
async _injectCommunityContent () {
const permissionsModule = await getModule([ 'can' ]);
const permissionsModule = await getModule([ 'can' ], true);
inject('vz-module-manager-channelItem', permissionsModule, 'can', (originalArgs, returnValue) => {
const id = originalArgs[1].channelId || originalArgs[1].id;
if (id === STORE_PLUGINS || id === STORE_THEMES) {
@ -109,8 +109,8 @@ module.exports = class ModuleManager extends Plugin {
return returnValue;
});
const { transitionTo } = await getModule([ 'transitionTo' ]);
const ChannelItem = await getModuleByDisplayName('ChannelItem');
const { transitionTo } = await getModule([ 'transitionTo' ], true);
const ChannelItem = await getModuleByDisplayName('ChannelItem', true);
inject('vz-module-manager-channelProps', ChannelItem.prototype, 'render', function (originalArgs, returnValue) {
const data = {
[STORE_PLUGINS]: {
@ -139,12 +139,12 @@ module.exports = class ModuleManager extends Plugin {
return returnValue;
});
const { containerDefault } = await getModule([ 'containerDefault' ]);
const { containerDefault } = await getModule([ 'containerDefault' ], true);
forceUpdateElement(`.${containerDefault}`, true);
}
async _injectSnippets () {
const MiniPopover = await getModule(m => m.default && m.default.displayName === 'MiniPopover');
const MiniPopover = await getModule(m => m.default && m.default.displayName === 'MiniPopover', true);
inject('vz-module-manager-snippets', MiniPopover, 'default', (originalArgs, returnValue) => {
const props = findInReactTree(returnValue, r => r && r.canReact && r.message);
@ -244,7 +244,7 @@ module.exports = class ModuleManager extends Plugin {
}
async _openQuickCSSPopout () {
const popoutModule = await getModule([ 'setAlwaysOnTop', 'open' ]);
const popoutModule = await getModule([ 'setAlwaysOnTop', 'open' ], true);
popoutModule.open('DISCORD_VIZALITY_QUICKCSS', (key) => (
React.createElement(PopoutWindow, {
windowKey: key,

@ -16,7 +16,7 @@ class Announcement extends React.PureComponent {
async componentDidMount () {
if (!classesCache) {
const classes = await getModule([ 'noticeBrand' ]);
const classes = await getModule([ 'noticeBrand' ], true);
classesCache = {
types: {
blurple: classes.noticeBrand,

@ -1,7 +1,7 @@
const { React, getModuleByDisplayName } = require('vizality/webpack');
const { AsyncComponent, Button, Tooltip, Clickable, Icons: { FontAwesome } } = require('vizality/components');
const Progress = AsyncComponent.from(getModuleByDisplayName('Progress'));
const Progress = AsyncComponent.from(getModuleByDisplayName('Progress', true));
class Toast extends React.PureComponent {
constructor (props) {

@ -2,8 +2,8 @@ const { resolve } = require('path');
const { existsSync } = require('fs');
const { unlink } = require('fs').promises;
const { Plugin } = require('vizality/entities');
const { React, getModule, getModuleByDisplayName, constants: { Routes } } = require('vizality/webpack');
const { forceUpdateElement, getOwnerInstance, waitFor } = require('vizality/util');
const { React, getModule, getModuleByDisplayName } = require('vizality/webpack');
const { react: { forceUpdateElement, getOwnerInstance }, waitFor } = require('vizality/util');
const { inject, uninject } = require('vizality/injector');
const { GUILD_ID, INVITE_CODE } = require('vizality/constants');
@ -33,7 +33,7 @@ module.exports = class Notices extends Plugin {
}
async _patchAnnouncements () {
const { base } = await getModule([ 'base', 'container' ]);
const { base } = await getModule([ 'base', 'container' ], true);
const instance = getOwnerInstance(await waitFor(`.${base.split(' ')[0]}`));
inject('vz-notices-announcements', instance.__proto__, 'render', (_, res) => {
res.props.children[1].props.children.unshift(React.createElement(AnnouncementContainer));
@ -44,8 +44,8 @@ module.exports = class Notices extends Plugin {
}
async _patchToasts () {
const { app } = await getModule([ 'app', 'layers' ]);
const Shakeable = await getModuleByDisplayName('Shakeable');
const { app } = await getModule([ 'app', 'layers' ], true);
const Shakeable = await getModuleByDisplayName('Shakeable', true);
inject('vz-notices-toast', Shakeable.prototype, 'render', (_, res) => {
if (!res.props.children.find(child => child.type && child.type.name === 'ToastContainer')) {
res.props.children.push(React.createElement(ToastContainer));
@ -56,7 +56,7 @@ module.exports = class Notices extends Plugin {
}
async _welcomeNewUser () {
const store = await getModule([ 'getGuilds' ]);
const store = await getModule([ 'getGuilds' ], true);
vizality.api.notices.sendAnnouncement('vz-first-welcome', {
color: 'green',
@ -64,9 +64,9 @@ module.exports = class Notices extends Plugin {
button: {
text: store.getGuilds(GUILD_ID) ? 'Go to Server' : 'Join Server',
onClick: async () => {
const inviteStore = await getModule([ 'acceptInviteAndTransitionToInviteChannel' ]);
const inviteStore = await getModule([ 'acceptInviteAndTransitionToInviteChannel' ], true);
inviteStore.acceptInviteAndTransitionToInviteChannel(INVITE_CODE);
(await getModule([ 'popLayer' ])).popAllLayers();
(await getModule([ 'popLayer' ], true)).popAllLayers();
}
}
});

@ -1,17 +1,17 @@
const { Plugin } = require('vizality/entities');
const { inject, uninject } = require('vizality/injector');
const { React, getModule } = require('vizality/webpack');
const { findInReactTree } = require('vizality/util');
const { react : { findInReactTree } } = require('vizality/util');
const { Tooltip, Icon } = require('vizality/components');
module.exports = class QuickDelete extends Plugin {
async startPlugin () {
const deleteMessage = await getModule([ 'deleteMessage', 'sendMessage' ]);
const MiniPopover = await getModule(m => m.default && m.default.displayName === 'MiniPopover');
const deleteMessage = await getModule([ 'deleteMessage', 'sendMessage' ], true);
const MiniPopover = await getModule(m => m.default && m.default.displayName === 'MiniPopover', true);
const classes = {
...getModule([ 'button', 'wrapper', 'disabled' ], false),
...getModule([ 'icon', 'isHeader' ], false)
...getModule([ 'button', 'wrapper', 'disabled' ]),
...getModule([ 'icon', 'isHeader' ])
};
inject('quick-delete-button', MiniPopover, 'default', (originalArgs, returnValue) => {

@ -1,7 +1,7 @@
const { Plugin } = require('vizality/entities');
const { inject, uninject } = require('vizality/injector');
const { React, getModule, getAllModules, getModuleByDisplayName } = require('vizality/webpack');
const { findInTree, findInReactTree, getOwnerInstance, waitFor } = require('vizality/util');
const { react : { findInReactTree, findInTree, getOwnerInstance }, waitFor } = require('vizality/util');
module.exports = class Router extends Plugin {
async startPlugin () {
@ -21,10 +21,10 @@ module.exports = class Router extends Plugin {
}
async _injectRouter () {
const FluxViewsWithMainInterface = await getModuleByDisplayName('FluxContainer(ViewsWithMainInterface)');
const FluxViewsWithMainInterface = await getModuleByDisplayName('FluxContainer(ViewsWithMainInterface)', true);
const ViewsWithMainInterface = FluxViewsWithMainInterface
.prototype.render.call({ memoizedGetStateFromStores: () => ({}) }).type;
const { container } = await getModule([ 'container', 'downloadProgressCircle' ]);
const { container } = await getModule([ 'container', 'downloadProgressCircle' ], true);
const RouteRenderer = getOwnerInstance(await waitFor(`.${container.split(' ')[0]}`));
inject('vz-router-route', RouteRenderer.__proto__, 'render', (args, res) => {
const { children: routes } = findInReactTree(res, m => Array.isArray(m.children) && m.children.length > 5);

@ -5,7 +5,7 @@ const { inject, uninject } = require('vizality/injector');
module.exports = class RPC extends Plugin {
async startPlugin () {
this.handlers = await getModule([ 'INVITE_BROWSER' ]);
this.handlers = await getModule([ 'INVITE_BROWSER' ], true);
this._patchHTTPServer();
this._patchWebSocketServer();
@ -55,7 +55,7 @@ module.exports = class RPC extends Plugin {
}
async _patchWebSocketServer () {
const websocketHandler = await getModule([ 'validateSocketClient' ]);
const websocketHandler = await getModule([ 'validateSocketClient' ], true);
inject('vz-rpc-ws', websocketHandler, 'validateSocketClient', args => {
if (args[2] === 'vizality') {

@ -31,8 +31,8 @@ class ForceUI extends React.PureComponent {
// Handlers
forceMentionEveryone () {
const { applyChatRestrictions } = getModule([ 'applyChatRestrictions' ], false);
const everyoneMdl = getModule([ 'extractEveryoneRole' ], false);
const { applyChatRestrictions } = getModule([ 'applyChatRestrictions' ]);
const everyoneMdl = getModule([ 'extractEveryoneRole' ]);
const ogExtractEveryoneRole = everyoneMdl.extractEveryoneRole;
const ogShouldShowEveryoneGuard = everyoneMdl.shouldShowEveryoneGuard;
const discordTextarea = document.querySelector('form > div > div');

@ -6,7 +6,7 @@ const SplashScreen = require('./SplashScreen');
const Settings = require('./Settings');
const TitleBar = require('./TitleBar');
const VerticalScroller = AsyncComponent.from(getModuleByDisplayName('VerticalScroller'));
const VerticalScroller = AsyncComponent.from(getModuleByDisplayName('VerticalScroller', true));
class SdkWindow extends React.PureComponent {
constructor (props) {
@ -33,7 +33,7 @@ class SdkWindow extends React.PureComponent {
}
renderHeaderBar () {
const { title } = getModule([ 'title', 'chatContent' ], false);
const { title } = getModule([ 'title', 'chatContent' ]);
return (
<HeaderBar transparent={false} className={joinClassNames(title, 'vizality-sdk-header')}>
{this.renderIcon('Force UI', 'Arch', 'force-ui', 'right')}
@ -47,7 +47,7 @@ class SdkWindow extends React.PureComponent {
}
renderIcon (tooltip, icon, id, placement = 'bottom') {
const headerBarClasses = getModule([ 'iconWrapper', 'clickable' ], false);
const headerBarClasses = getModule([ 'iconWrapper', 'clickable' ]);
const Icon = Icons[icon];
return (
<Tooltip text={tooltip} position={placement}>
@ -56,7 +56,7 @@ class SdkWindow extends React.PureComponent {
onClick={async () => {
if (!id) {
// Consider this is the always on top thing
const popoutModule = await getModule([ 'setAlwaysOnTop', 'open' ]);
const popoutModule = await getModule([ 'setAlwaysOnTop', 'open' ], true);
return popoutModule.setAlwaysOnTop('DISCORD_VIZALITY_SANDBOX', !this.props.windowOnTop);
}
const el = this.props.guestWindow.document.getElementById(id);
@ -71,7 +71,7 @@ class SdkWindow extends React.PureComponent {
}
module.exports = Flux.connectStoresAsync(
[ getModule([ 'theme', 'locale' ]), getModule([ 'getWindow' ]) ],
[ getModule([ 'theme', 'locale' ], true), getModule([ 'getWindow' ], true) ],
([ { theme }, windowStore ]) => ({
guestWindow: windowStore.getWindow('DISCORD_VIZALITY_SANDBOX'),
windowOnTop: windowStore.getIsAlwaysOnTop('DISCORD_VIZALITY_SANDBOX'),

@ -2,7 +2,7 @@ const { React, getModule } = require('vizality/webpack');
const { Icons: { SdkWordmark }, AsyncComponent } = require('vizality/components');
module.exports = AsyncComponent.from((async () => {
const titleBar = await getModule(m => typeof m === 'function' && m.toString().includes('PlatformTypes.WINDOWS') && m.toString().includes('PlatformTypes.OSX'));
const titleBar = await getModule(m => typeof m === 'function' && m.toString().includes('PlatformTypes.WINDOWS') && m.toString().includes('PlatformTypes.OSX'), true);
const windows = titleBar({ type: 'WINDOWS' }).type;
return (props) => {
const res = windows(props);

@ -1,7 +1,7 @@
const { React, getModule, getModuleByDisplayName, contextMenu } = require('vizality/webpack');
const { PopoutWindow, Tooltip, ContextMenu, Icons: { CodeBraces } } = require('vizality/components');
const { inject, uninject } = require('vizality/injector');
const { getOwnerInstance, waitFor, joinClassNames } = require('vizality/util');
const { waitFor, joinClassNames, react: { getOwnerInstance } } = require('vizality/util');
const { Plugin } = require('vizality/entities');
const SdkWindow = require('./components/SdkWindow');
@ -33,8 +33,8 @@ module.exports = class SDK extends Plugin {
}
async _addPopoutIcon () {
const classes = await getModule([ 'iconWrapper', 'clickable' ]);
const HeaderBarContainer = await getModuleByDisplayName('HeaderBarContainer');
const classes = await getModule([ 'iconWrapper', 'clickable' ], true);
const HeaderBarContainer = await getModuleByDisplayName('HeaderBarContainer', true);
inject('vz-sdk-icon', HeaderBarContainer.prototype, 'renderLoggedIn', (originalArgs, returnValue) => {
if (vizality.api.labs.isExperimentEnabled('vz-sdk') && this.sdkEnabled) {
const Switcher = React.createElement(Tooltip, {
@ -80,12 +80,12 @@ module.exports = class SDK extends Plugin {
return returnValue;
});
const { title } = getModule([ 'title', 'chatContent' ], false);
const { title } = getModule([ 'title', 'chatContent' ]);
getOwnerInstance(await waitFor(`.${title}`)).forceUpdate();
}
async _openSdk () {
const popoutModule = await getModule([ 'setAlwaysOnTop', 'open' ]);
const popoutModule = await getModule([ 'setAlwaysOnTop', 'open' ], true);
popoutModule.open('DISCORD_VIZALITY_SANDBOX', (key) =>
React.createElement(PopoutWindow, {
windowKey: key,
@ -98,7 +98,7 @@ module.exports = class SDK extends Plugin {
_storeListener () {
if (this.sdkEnabled !== vizality.settings.get('sdkEnabled')) {
this.sdkEnabled = vizality.settings.get('sdkEnabled');
const { title } = getModule([ 'title', 'chatContent' ], false);
const { title } = getModule([ 'title', 'chatContent' ]);
getOwnerInstance(document.querySelector(`.${title}`)).forceUpdate();
}
}

@ -89,7 +89,7 @@ module.exports = class GeneralSettings extends React.Component {
onChange={async () => {
toggleSetting('experiments');
// Update modules
const experimentsModule = await getModule(r => r.isDeveloper !== void 0);
const experimentsModule = await getModule(r => r.isDeveloper !== void 0, true);
experimentsModule._changeCallbacks.forEach(cb => cb());
}}
>

@ -8,8 +8,8 @@ const ErrorBoundary = require('./components/ErrorBoundary');
const GeneralSettings = require('./components/GeneralSettings');
const Labs = require('./components/Labs');
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle'));
const FormSection = AsyncComponent.from(getModuleByDisplayName('FormSection'));
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle', true));
const FormSection = AsyncComponent.from(getModuleByDisplayName('FormSection', true));
module.exports = class Settings extends Plugin {
startPlugin () {
@ -39,7 +39,7 @@ module.exports = class Settings extends Plugin {
async patchExperiments () {
try {
const experimentsModule = await getModule(r => r.isDeveloper !== void 0);
const experimentsModule = await getModule(r => r.isDeveloper !== void 0, true);
Object.defineProperty(experimentsModule, 'isDeveloper', {
get: () => vizality.settings.get('experiments', false)
});
@ -52,7 +52,7 @@ module.exports = class Settings extends Plugin {
}
async patchSettingsComponent () {
const SettingsView = await getModuleByDisplayName('SettingsView');
const SettingsView = await getModuleByDisplayName('SettingsView', true);
inject('vz-settings-items', SettingsView.prototype, 'getPredicateSections', (args, sections) => {
const changelog = sections.find(c => c.section === 'changelog');
if (changelog) {
@ -142,16 +142,16 @@ module.exports = class Settings extends Plugin {
}
async patchSettingsContextMenu () {
const SubMenuItem = await getModuleByDisplayName('FluxContainer(SubMenuItem)');
const ImageMenuItem = await getModuleByDisplayName('ImageMenuItem');
const SettingsContextMenu = await getModuleByDisplayName('UserSettingsCogContextMenu');
const SubMenuItem = await getModuleByDisplayName('FluxContainer(SubMenuItem)', true);
const ImageMenuItem = await getModuleByDisplayName('ImageMenuItem', true);
const SettingsContextMenu = await getModuleByDisplayName('UserSettingsCogContextMenu', true);
inject('vz-settings-actions', SettingsContextMenu.prototype, 'render', (args, res) => {
const parent = React.createElement(SubMenuItem, {
label: 'Vizality',
render: () => vizality.api.settings.tabs.map(tab => React.createElement(ImageMenuItem, {
label: tab.label,
action: async () => {
const settingsModule = await getModule([ 'open', 'saveAccountChanges' ]);
const settingsModule = await getModule([ 'open', 'saveAccountChanges' ], true);
settingsModule.open(tab.section);
}
}))

@ -14,7 +14,7 @@ module.exports = class HeaderIcon extends React.PureComponent {
}
async componentDidMount () {
const classes = await getModule([ 'iconWrapper', 'selected' ]);
const classes = await getModule([ 'iconWrapper', 'selected' ], true);
this.setState({ classes });
}

@ -1,7 +1,7 @@
const { React, getModule, getModuleByDisplayName } = require('vizality/webpack');
const { AsyncComponent } = require('vizality/components');
const ChannelTextAreaButton = AsyncComponent.from(getModuleByDisplayName('ChannelTextAreaButton'));
const ChannelTextAreaButton = AsyncComponent.from(getModuleByDisplayName('ChannelTextAreaButton', true));
module.exports = class ResetButton extends React.PureComponent {
constructor () {
@ -13,7 +13,7 @@ module.exports = class ResetButton extends React.PureComponent {
}
async componentDidMount () {
const buttonClass = (await getModule([ 'channelTextArea', 'inner' ])).button;
const buttonClass = (await getModule([ 'channelTextArea', 'inner' ], true)).button;
this.setState({ buttonClass });
}

@ -2,10 +2,10 @@ const { React, getModule, getModuleByDisplayName, i18n: { Messages } } = require
const { SwitchItem } = require('vizality/components/settings');
const { AsyncComponent } = require('vizality/components');
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle'));
const FormText = AsyncComponent.from(getModuleByDisplayName('FormText'));
const Checkbox = AsyncComponent.from(getModuleByDisplayName('Checkbox'));
const Clickable = AsyncComponent.from(getModuleByDisplayName('Clickable'));
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle', true));
const FormText = AsyncComponent.from(getModuleByDisplayName('FormText', true));
const Checkbox = AsyncComponent.from(getModuleByDisplayName('Checkbox', true));
const Clickable = AsyncComponent.from(getModuleByDisplayName('Clickable', true));
const translate = require('google-translate-api');
@ -23,9 +23,9 @@ module.exports = class Settings extends React.Component {
this.setState({
Flex: await getModuleByDisplayName('Flex'),
classes: {
...await getModule([ 'checkboxGroup' ]),
...await getModule([ 'formText', 'description' ]),
...await getModule([ 'marginBottom20' ])
...await getModule([ 'checkboxGroup' ], true),
...await getModule([ 'formText', 'description' ], true),
...await getModule([ 'marginBottom20' ], true)
}
});
}

@ -1,7 +1,7 @@
const { Plugin } = require('vizality/entities');
const { inject, uninject } = require('vizality/injector');
const { ReactDOM, React, getModule, getModuleByDisplayName } = require('vizality/webpack');
const { sleep, createElement, forceUpdateElement, getOwnerInstance, waitFor } = require('vizality/util');
const { sleep, waitFor, dom: { createElement }, react: { forceUpdateElement, getOwnerInstance } } = require('vizality/util');
const { ContextMenu: { Submenu } } = require('vizality/components');
const Settings = require('./components/Settings');
@ -17,8 +17,8 @@ module.exports = class Translate extends Plugin {
this.state = {};
this.translations = {};
this.messageClasses = {
...await getModule([ 'container', 'messageCompact' ]),
...await getModule([ 'markup' ])
...await getModule([ 'container', 'messageCompact' ], true),
...await getModule([ 'markup' ], true)
};
Object.keys(this.messageClasses)
@ -56,7 +56,7 @@ module.exports = class Translate extends Plugin {
/*
* const HeaderIcon = require('./components/HeaderIcon');
* const HeaderBarContainer = await getModuleByDisplayName('HeaderBarContainer');
* const HeaderBarContainer = await getModuleByDisplayName('HeaderBarContainer', true);
* inject('vz-translate-icon', HeaderBarContainer.prototype, 'renderLoggedIn', function (_, res) {
* if (this.props.toolbar && !this.props.toolbar.props) {
* this.props.toolbar.unshift(
@ -71,7 +71,7 @@ module.exports = class Translate extends Plugin {
* });
*/
const MessageContent = await getModuleByDisplayName('MessageContent');
const MessageContent = await getModuleByDisplayName('MessageContent', true);
inject('vz-translate-contentRemove', MessageContent.prototype, 'componentWillUnmount', function () {
const { message, message: { embeds } } = this.props;
const embed = embeds.length > 0 ? embeds[0] : null;
@ -133,7 +133,7 @@ module.exports = class Translate extends Plugin {
return args;
}, true);
const ChannelEditorContainer = await getModuleByDisplayName('ChannelEditorContainer');
const ChannelEditorContainer = await getModuleByDisplayName('ChannelEditorContainer', true);
inject('vz-translate-clearRestore', ChannelEditorContainer.prototype, 'componentDidUpdate', (args, res) => {
if (args[0].textValue.length <= 1 || args[1].submitting) {
this.removeResetButton();
@ -142,7 +142,7 @@ module.exports = class Translate extends Plugin {
return res;
});
const SlateContextMenu = await getModule(m => m.default && m.default.displayName === 'SlateContextMenu');
const SlateContextMenu = await getModule(m => m.default && m.default.displayName === 'SlateContextMenu', true);
inject('vz-translate-slateContext', SlateContextMenu, 'default', (args, res) => {
const channelEditorContainer = args[0].editor._reactInternalFiber.return;
const { memoizedProps: { textValue } } = channelEditorContainer;
@ -151,12 +151,12 @@ module.exports = class Translate extends Plugin {
const setText = async (opts) => {
const classes = {
...await getModule([ 'uploadModal' ]),
...await getModule([ 'messagesWrapper' ]),
...await getModule([ 'channelTextArea', 'inner' ])
...await getModule([ 'uploadModal' ], true),
...await getModule([ 'messagesWrapper' ], true),
...await getModule([ 'channelTextArea', 'inner' ], true)
};
const { deserialize } = await getModule([ 'deserialize' ]);
const { deserialize } = await getModule([ 'deserialize' ], true);
const textArea = getOwnerInstance(await waitFor(`.${classes.messagesWrapper.split(' ')[0]} + form .${classes.channelTextArea.split(' ')[0]}`));
const selectedText = args[0].editor.getSelectedText();
const uploadModal = document.querySelector(`.${classes.uploadModal.split(' ')[0]}`)
@ -212,7 +212,7 @@ module.exports = class Translate extends Plugin {
return res;
});
const MessageContextMenu = await getModuleByDisplayName('MessageContextMenu');
const MessageContextMenu = await getModuleByDisplayName('MessageContextMenu', true);
inject('vz-translate-context', MessageContextMenu.prototype, 'render', function (_, res) {
const { containerCozyBounded, timestampCozy, markup } = _this.messageClasses;
const setText = async (opts) => {

@ -23,7 +23,7 @@ module.exports = class UpdaterSettings extends React.PureComponent {
render () {
const isUnsupported = window.GLOBAL_ENV.RELEASE_CHANNEL !== 'stable';
const moment = getModule([ 'momentProperties' ], false);
const moment = getModule([ 'momentProperties' ]);
// @todo: Make this be in its own store
const awaitingReload = this.props.getSetting('awaiting_reload', false);
const updating = this.props.getSetting('updating', false);
@ -302,9 +302,9 @@ module.exports = class UpdaterSettings extends React.PureComponent {
// --- DEBUG STUFF (Intentionally left english-only)
renderDebugInfo (moment) {
const { getRegisteredExperiments, getExperimentOverrides } = getModule([ 'initialize', 'getExperimentOverrides' ], false);
const { getRegisteredExperiments, getExperimentOverrides } = getModule([ 'initialize', 'getExperimentOverrides' ]);
const { apiManager: { apis }, api: { commands: { commands }, settings: { store: settingsStore } } } = vizality;
const superProperties = getModule([ 'getSuperPropertiesBase64' ], false).getSuperProperties();
const superProperties = getModule([ 'getSuperPropertiesBase64' ]).getSuperProperties();
const plugins = vizality.pluginManager.getPlugins().filter(plugin =>
!vizality.pluginManager.get(plugin).isInternal && vizality.pluginManager.isEnabled(plugin)
);

@ -124,7 +124,7 @@ module.exports = class Updater extends Plugin {
color: 'blue',
look: 'ghost',
onClick: async () => {
const settingsModule = await getModule([ 'open', 'saveAccountChanges' ]);
const settingsModule = await getModule([ 'open', 'saveAccountChanges' ], true);
settingsModule.open('vz-updater');
}
} ]
@ -176,7 +176,7 @@ module.exports = class Updater extends Plugin {
color: 'blue',
look: 'ghost',
onClick: async () => {
const settingsModule = await getModule([ 'open', 'saveAccountChanges' ]);
const settingsModule = await getModule([ 'open', 'saveAccountChanges' ], true);
settingsModule.open('vz-updater');
}
} ]
@ -276,7 +276,7 @@ module.exports = class Updater extends Plugin {
async _getChangeLogsComponent () {
if (!this._ChangeLog) {
const _this = this;
const { video } = await getModule([ 'video', 'added' ]);
const { video } = await getModule([ 'video', 'added' ], true);
const DiscordChangeLog = await this._getMainChangeLogComponent();
class ChangeLog extends DiscordChangeLog {
@ -350,7 +350,7 @@ module.exports = class Updater extends Plugin {
}
async _getMainChangeLogComponent () {
const mdl = await getModule([ 'changeLog', 'isOpen' ]);
const mdl = await getModule([ 'changeLog', 'isOpen' ], true);
const ogFunction = mdl.isOpen;
mdl.isOpen = () => {
mdl.isOpen = ogFunction;
@ -364,7 +364,7 @@ module.exports = class Updater extends Plugin {
owo.useRef = () => ({ current: null });
owo.useState = () => [ null, () => void 0 ];
owo.useLayoutEffect = () => void 0;
const Component = await getModule(m => m.type && m.type.displayName && m.type.displayName === 'ConnectedChangeLog');
const Component = await getModule(m => m.type && m.type.displayName && m.type.displayName === 'ConnectedChangeLog', true);
const ChangeLog = Component.type().type;
owo.useRef = ogUseRef;
owo.useState = ogUseState;

@ -1,9 +1,9 @@
const { inject, uninject } = require('vizality/injector');
const { React, getModule } = require('vizality/webpack');
const { forceUpdateElement } = require('vizality/util');
const { react: { forceUpdateElement } } = require('vizality/util');
module.exports = async () => {
const Avatar = await getModule([ 'AnimatedAvatar' ]);
const Avatar = await getModule([ 'AnimatedAvatar' ], true);
inject('vz-utility-classes-avatar', Avatar, 'default', (originalArgs, returnValue) => {
const avatar = originalArgs[0].src || void 0;
@ -20,7 +20,7 @@ module.exports = async () => {
Avatar.default.Sizes = Avatar.Sizes;
const className = (await getModule([ 'wrapper', 'avatar' ])).wrapper.split(' ')[0];
const className = (await getModule([ 'wrapper', 'avatar' ], true)).wrapper.split(' ')[0];
setImmediate(() => forceUpdateElement(`.${className}`));
return () => {
uninject('vz-utility-classes-avatar');

@ -1,9 +1,9 @@
const { inject, uninject } = require('vizality/injector');
const { getModule, i18n } = require('vizality/webpack');
const { getOwnerInstance, waitFor, forceUpdateElement, string, joinClassNames } = require('vizality/util');
const { waitFor, joinClassNames, react: { forceUpdateElement, getOwnerInstance }, string: { toCamelCase } } = require('vizality/util');
module.exports = async () => {
const channelHeaderButtonClasses = await getModule([ 'iconWrapper', 'toolbar' ]);
const channelHeaderButtonClasses = await getModule([ 'iconWrapper', 'toolbar' ], true);
const instance = getOwnerInstance(await waitFor(`.${channelHeaderButtonClasses.iconWrapper}`));
if (!instance) return;
@ -37,7 +37,7 @@ module.exports = async () => {
* return returnValue;
* }
*/
returnValue.props.className = joinClassNames(returnValue.props.className, `vz-${string.toCamelCase(key)}Button`);
returnValue.props.className = joinClassNames(returnValue.props.className, `vz-${toCamelCase(key)}Button`);
}
}

@ -1,9 +1,9 @@
const { inject, uninject } = require('vizality/injector');
const { getModuleByDisplayName, getModule } = require('vizality/webpack');
const { forceUpdateElement, joinClassNames } = require('vizality/util');
const { react: { forceUpdateElement }, joinClassNames } = require('vizality/util');
module.exports = async () => {
const MemberListItem = await getModuleByDisplayName('MemberListItem');
const MemberListItem = await getModuleByDisplayName('MemberListItem', true);
inject('vz-utility-classes-members', MemberListItem.prototype, 'render', function (originalArgs, returnValue) {
if (!this || !this.props || !this.props.user) return returnValue;
@ -22,8 +22,8 @@ module.exports = async () => {
return returnValue;
});
const MembersGroup = await getModule(m => m.default && m.default.displayName === 'ListSectionItem');
const membersGroupClasses = (await getModule([ 'membersGroup' ])).membersGroup;
const MembersGroup = await getModule(m => m.default && m.default.displayName === 'ListSectionItem', true);
const membersGroupClasses = (await getModule([ 'membersGroup' ], true)).membersGroup;
inject('vz-utility-classes-member-groups', MembersGroup, 'default', (originalArgs, returnValue) => {
if (!returnValue.props ||

@ -1,10 +1,10 @@
/* eslint-disable no-unused-expressions */
const { inject, uninject } = require('vizality/injector');
const { getModule } = require('vizality/webpack');
const { getOwnerInstance, waitFor, joinClassNames } = require('vizality/util');
const { waitFor, joinClassNames, react: { getOwnerInstance } } = require('vizality/util');
module.exports = async () => {
const { chat } = await getModule([ 'chat' ]);
const { chat } = await getModule([ 'chat' ], true);
const instance = getOwnerInstance(await waitFor(`.${chat.split(' ')[0]}`));
inject('vz-utility-classes-chat', instance.__proto__, 'render', function (originalArgs, returnValue) {

@ -2,7 +2,7 @@ const { inject, uninject } = require('vizality/injector');
const { getModuleByDisplayName } = require('vizality/webpack');
module.exports = async () => {
const ContextMenu = await getModuleByDisplayName('FluxContainer(ContextMenus)');
const ContextMenu = await getModuleByDisplayName('FluxContainer(ContextMenus)', true);
inject('vz-utility-classes-contextMenu', ContextMenu.prototype, 'render', (originalArgs, returnValue) => {
if (!returnValue.props) return returnValue;

@ -12,9 +12,9 @@ module.exports = async () => {
return () => void 0;
/* eslint-disable no-unreachable */
const MenuItem = await getModule(m => m.default && m.default.displayName === 'MenuItem');
const MenuItem = await getModule(m => m.default && m.default.displayName === 'MenuItem', true);
const originalMenuItem = MenuItem.default;
const GuildStore = await getModule([ 'getGuild' ]);
const GuildStore = await getModule([ 'getGuild' ], true);
inject('vz-utility-classes-contextMenuItems', MenuItem, 'default', ([ props ], returnValue) => {
return returnValue;

@ -3,7 +3,7 @@ const { getModuleByDisplayName } = require('vizality/webpack');
const { joinClassNames } = require('vizality/util');
module.exports = async () => {
const PrivateChannel = await getModuleByDisplayName('PrivateChannel');
const PrivateChannel = await getModuleByDisplayName('PrivateChannel', true);
inject('vz-utility-classes-dmChannels', PrivateChannel.prototype, 'render', (originalArgs, returnValue) => {
const { props } = returnValue;

@ -1,6 +1,6 @@
const { inject, uninject } = require('vizality/injector');
const { getModule } = require('vizality/webpack');
const { forceUpdateElement, getOwnerInstance, waitFor, joinClassNames } = require('vizality/util');
const { waitFor, joinClassNames, react: { forceUpdateElement, getOwnerInstance } } = require('vizality/util');
module.exports = async () => {
/*
@ -11,9 +11,9 @@ module.exports = async () => {
return () => void 0;
/* eslint-disable no-unreachable */
const folderClasses = await getModule([ 'wrapper', 'folder' ]);
const folderClasses = await getModule([ 'wrapper', 'folder' ], true);
const instance = getOwnerInstance(await waitFor(`.${folderClasses.wrapper.split(' ')[0]}`));
await getModule([ 'wrapper', 'folder' ]);
await getModule([ 'wrapper', 'folder' ], true);
inject('vz-utility-classes-folders', instance.__proto__, 'render', (originalArgs, returnValue) => {
if (!returnValue.props) return returnValue;

@ -3,7 +3,7 @@ const { getModule } = require('vizality/webpack');
const { joinClassNames } = require('vizality/util');
module.exports = async () => {
const GameIcon = await getModule(m => m.default && m.default.displayName === 'GameIcon');
const GameIcon = await getModule(m => m.default && m.default.displayName === 'GameIcon', true);
inject('vz-utility-classes-gameIcon', GameIcon, 'default', ([ props ], returnValue) => {
if (!props) return returnValue;

@ -1,6 +1,6 @@
const { inject, uninject } = require('vizality/injector');
const { getModule, getModuleByDisplayName } = require('vizality/webpack');
const { forceUpdateElement } = require('vizality/util');
const { react: { forceUpdateElement } } = require('vizality/util');
/*
* This module does nothing currently. It is just here for future reference in the event context
@ -11,12 +11,12 @@ module.exports = async () => {
return () => void 0;
/* eslint-disable no-unreachable */
const GuildHeader = await getModuleByDisplayName('GuildHeader');
const GuildHeader = await getModuleByDisplayName('GuildHeader', true);
inject('vz-utility-classes-guildHeader', GuildHeader.prototype, 'renderHeader', (originalArgs, returnValue) => {
return returnValue;
});
const className = (await getModule([ 'iconBackgroundTierNone', 'container' ])).header.split(' ')[0];
const className = (await getModule([ 'iconBackgroundTierNone', 'container' ], true)).header.split(' ')[0];
setImmediate(() => forceUpdateElement(`.${className}`));
return () => uninject('vz-utility-classes-guildHeader');
};

@ -1,9 +1,9 @@
const { inject, uninject } = require('vizality/injector');
const { getModule } = require('vizality/webpack');
const { forceUpdateElement, getOwnerInstance, waitFor, joinClassNames } = require('vizality/util');
const { waitFor, joinClassNames, react: { forceUpdateElement, getOwnerInstance } } = require('vizality/util');
module.exports = async () => {
const guildClasses = await getModule([ 'blobContainer' ]);
const guildClasses = await getModule([ 'blobContainer' ], true);
const guildElement = (await waitFor(`.${guildClasses.blobContainer.split(' ')[0]}`)).parentElement;
const instance = getOwnerInstance(guildElement);

@ -1,11 +1,11 @@
const { inject, uninject } = require('vizality/injector');
const { getModule, getModuleByDisplayName } = require('vizality/webpack');
const { findInReactTree, joinClassNames, forceUpdateElement } = require('vizality/util');
const { joinClassNames, react : { findInReactTree, forceUpdateElement } } = require('vizality/util');
module.exports = async () => {
return () => void 0;
const List = await getModuleByDisplayName('List');
const List = await getModuleByDisplayName('List', true);
inject('vz-improved-navigation-dmChannels', List.prototype, 'renderRow', (originalArgs, returnValue) => {
// const props = findInReactTree(returnValue, n => n.id);
@ -32,7 +32,7 @@ module.exports = async () => {
/*
* return async () => uninject('vz-improved-navigation-dmChannels');
* const ConnectedPrivateChannelsList = await getModule(m => m.default && m.default.displayName === 'ConnectedPrivateChannelsList');
* const ConnectedPrivateChannelsList = await getModule(m => m.default && m.default.displayName === 'ConnectedPrivateChannelsList', true);
*/
/*

@ -1,12 +1,12 @@
const { inject, uninject } = require('vizality/injector');
const { getModule } = require('vizality/webpack');
const { findInReactTree, joinClassNames } = require('vizality/util');
const { react : { findInReactTree }, joinClassNames } = require('vizality/util');
module.exports = async () => {
const Message = await getModule(m => m.default && m.default.displayName === 'Message');
const guildModule = await getModule([ 'getGuild' ]);
const memberModule = await getModule([ 'getMember' ]);
const currentUserId = (await getModule([ 'getId' ])).getId();
const Message = await getModule(m => m.default && m.default.displayName === 'Message', true);
const guildModule = await getModule([ 'getGuild' ], true);
const memberModule = await getModule([ 'getMember' ], true);
const currentUserId = (await getModule([ 'getId' ], true)).getId();
inject('vz-utility-classes-messages', Message, 'default', (originalArgs, returnValue) => {
const msg = findInReactTree(returnValue, n => n.message);

@ -2,7 +2,7 @@ const { inject, uninject } = require('vizality/injector');
const { getModuleByDisplayName } = require('vizality/webpack');
module.exports = async () => {
const Popout = await getModuleByDisplayName('Popout');
const Popout = await getModuleByDisplayName('Popout', true);
inject('vz-utility-classes-popout', Popout.prototype, 'render', (originalArgs, returnValue) => {
if (!returnValue.props) return returnValue;

@ -3,7 +3,7 @@ const { getModule } = require('vizality/webpack');
const { joinClassNames } = require('vizality/util');
module.exports = async () => {
const CallTile = await getModule(m => m.default && m.default.displayName === 'CallTile');
const CallTile = await getModule(m => m.default && m.default.displayName === 'CallTile', true);
inject('vz-utility-classes-privateCall', CallTile, 'default', ([ props ], returnValue) => {
if (!props | !props.participant || !returnValue.props) return returnValue;

@ -1,9 +1,9 @@
const { inject, uninject } = require('vizality/injector');
const { getModule } = require('vizality/webpack');
const { getOwnerInstance, waitFor, joinClassNames } = require('vizality/util');
const { waitFor, joinClassNames, react: { getOwnerInstance } } = require('vizality/util');
module.exports = async () => {
const { role } = await getModule([ 'role', 'roleCircle', 'roleName', 'root' ]);
const { role } = await getModule([ 'role', 'roleCircle', 'roleName', 'root' ], true);
const instance = getOwnerInstance(await waitFor(`.${role.split(' ')[0]}`));
inject('vz-utility-classes-roles', instance.__proto__, 'render', function (originalArgs, returnValue) {

@ -9,7 +9,7 @@ const { string, joinClassNames } = require('vizality/util');
*/
module.exports = async () => {
const TabBar = await getModuleByDisplayName('TabBar');
const TabBar = await getModuleByDisplayName('TabBar', true);
inject('vz-utility-classes-tabBar', TabBar.prototype, 'render', function (originalArgs, returnValue) {
if (!returnValue.props || !returnValue.props.children) return returnValue;

@ -2,7 +2,7 @@ const { getModule } = require('vizality/webpack');
module.exports = {
components: {
...getModule([ 'attachment' ], false),
...getModule([ 'members' ], false)
...getModule([ 'attachment' ]),
...getModule([ 'members' ])
}
};

@ -1,39 +1,15 @@
/* eslint-disable no-eval */
const { getModule, getAllModules } = require('vizality/webpack');
const { logger: { warn } } = require('vizality/util');
const { components } = require('./components');
const { layout } = require('./layout');
const { views } = require('./views');
const { plugins } = require('./plugins');
const { vizality } = require('./vizality');
module.exports = {
classes: {
components,
layout,
views,
plugins,
vizality
},
performModulesCheck () {
const MODULE = 'Module';
const SUBMODULE = 'Classes';
const modules = require('./modules');
for (const mdl in modules) {
switch (mdl) {
case 'getModule_array':
return modules[mdl].forEach(e => getModule([ e ], false) || warn(MODULE, SUBMODULE, null, `Module not found: getModule([ '${e}' ])`));
case 'getModule_function':
return modules[mdl].forEach(e => getModule(eval(e), false) || warn(MODULE, SUBMODULE, null, `Module not found: getModule(${e})`));
case 'getAllModules_array':
return modules[mdl].forEach(e => getAllModules([ e ], false).length || warn(MODULE, SUBMODULE, null, `Module not found: getAllModules([ '${e}' ])`));
case 'getAllModules_function':
return modules[mdl].forEach(e => getAllModules(eval(e), false).length || warn(MODULE, SUBMODULE, null, `Module not found: getAllModules('${e}')`));
}
}
}
const classes = {
components,
layout,
views,
plugins,
vizality
};
module.exports = classes;

@ -2,7 +2,7 @@ const { getModule } = require('vizality/webpack');
module.exports = {
attachments: {
...getModule([ 'attachment' ], false),
...getModule([ 'members' ], false)
...getModule([ 'attachment' ]),
...getModule([ 'members' ])
}
};

@ -3,9 +3,9 @@ const { attachments } = require('./attachments');
module.exports = {
chat: {
...getModule([ 'pie' ], false),
...getModule([ 'poop' ], false),
...getModule([ 'chat' ], false),
...getModule([ 'pie' ]),
...getModule([ 'poop' ]),
...getModule([ 'chat' ]),
attachments
}
};

@ -1,19 +0,0 @@
{
"getModule_array": [
"alpha",
"omega",
"chat",
"apple"
],
"getModule_function": [
"m => m && m.default && m.default === 'Message'",
"m => m && m.default && m.default === 'GameIcon'"
],
"getAllModules_array": [
"app",
"modal"
],
"getAllModules_function": [
"m => m && m.default && m.default === 'hmm'"
]
}

@ -2,7 +2,7 @@ const { getModule } = require('vizality/webpack');
module.exports = {
plugins: {
...getModule([ 'attachment' ], false),
...getModule([ 'members' ], false)
...getModule([ 'attachment' ]),
...getModule([ 'members' ])
}
};

@ -2,7 +2,7 @@ const { getModule } = require('vizality/webpack');
module.exports = {
views: {
...getModule([ 'attachment' ], false),
...getModule([ 'members' ], false)
...getModule([ 'attachment' ]),
...getModule([ 'members' ])
}
};

@ -1,5 +1,5 @@
const { React, getModule, contextMenu: { closeContextMenu } } = require('vizality/webpack');
const { getOwnerInstance, waitFor } = require('vizality/util');
const { waitFor, react: { getOwnerInstance } } = require('vizality/util');
class ContextMenu extends React.PureComponent {
constructor (props) {
@ -27,7 +27,7 @@ class ContextMenu extends React.PureComponent {
});
}
const { default: Menu, MenuGroup } = getModule([ 'MenuGroup' ], false);
const { default: Menu, MenuGroup } = getModule([ 'MenuGroup' ]);
return (
<Menu
navId={this.props.navId || `vz-${Math.random().toString(32).slice(2)}`}
@ -69,7 +69,7 @@ class ContextMenu extends React.PureComponent {
}
renderButton (item, ctx) {
const { MenuItem } = getModule([ 'MenuGroup' ], false);
const { MenuItem } = getModule([ 'MenuGroup' ]);
return (
<MenuItem
id={item.id || `item-${ctx.group}-${ctx.depth}-${ctx.i}`}
@ -90,7 +90,7 @@ class ContextMenu extends React.PureComponent {
}
renderCheckbox (item, ctx) {
const { MenuCheckboxItem } = getModule([ 'MenuGroup' ], false);
const { MenuCheckboxItem } = getModule([ 'MenuGroup' ]);
const elementKey = `active-${ctx.group}-${ctx.depth}-${ctx.i}`;
const isStandalone = !!ctx.standalone;
const active = this.state[elementKey] !== void 0
@ -122,8 +122,8 @@ class ContextMenu extends React.PureComponent {
}
renderSlider (item, ctx) {
const { MenuControlItem } = getModule([ 'MenuGroup' ], false);
const Slider = getModule(m => m.render && m.render.toString().includes('sliderContainer'), false);
const { MenuControlItem } = getModule([ 'MenuGroup' ]);
const Slider = getModule(m => m.render && m.render.toString().includes('sliderContainer'));
return (
<MenuControlItem
id={item.id || `item-${ctx.group}-${ctx.depth}-${ctx.i}`}
@ -144,7 +144,7 @@ class ContextMenu extends React.PureComponent {
}
renderSubMenu (item, ctx) {
const { MenuItem } = getModule([ 'MenuGroup' ], false);
const { MenuItem } = getModule([ 'MenuGroup' ]);
const elementKey = `items-${ctx.group}-${ctx.depth}-${ctx.i}`;
let items = this.state[elementKey];
if (items === void 0) {

@ -2,7 +2,7 @@ const { React, getModule } = require('vizality/webpack');
const AsyncComponent = require('./AsyncComponent');
module.exports = AsyncComponent.from((async () => {
const { dividerDefault } = await getModule([ 'dividerDefault' ]);
const { divider } = await getModule(m => m.divider && Object.keys(m).length === 1);
const { dividerDefault } = await getModule([ 'dividerDefault' ], true);
const { divider } = await getModule(m => m.divider && Object.keys(m).length === 1, true);
return () => <div className={`${divider} ${dividerDefault}`}/>;
})());

@ -1,8 +1,15 @@
/* eslint-disable no-unreachable */
const { getModuleByDisplayName } = require('vizality/webpack');
const AsyncComponent = require('./AsyncComponent');
module.exports = AsyncComponent.from((async () => {
const DiscordPopoutWindow = await getModuleByDisplayName('FluxContainer(PopoutWindow)');
/**
* @todo: Needs fixing.
*/
return void 0;
const DiscordPopoutWindow = await getModuleByDisplayName('FluxContainer(PopoutWindow)', true);
class PopoutWindow extends DiscordPopoutWindow {
constructor (props) {
if (!props.withTitleBar) {

@ -2,6 +2,6 @@ const { getModule } = require('vizality/webpack');
const AsyncComponent = require('./AsyncComponent');
module.exports = {
Helmet: AsyncComponent.from((async () => (await getModule([ 'HelmetProvider' ])).Helmet)()),
HelmetProvider: AsyncComponent.from((async () => (await getModule([ 'HelmetProvider' ])).HelmetProvider)())
Helmet: AsyncComponent.from((async () => (await getModule([ 'HelmetProvider' ], true)).Helmet)()),
HelmetProvider: AsyncComponent.from((async () => (await getModule([ 'HelmetProvider' ], true)).HelmetProvider)())
};

@ -11,22 +11,22 @@ require('fs')
// Add some util components
Object.assign(exports, {
Button: AsyncComponent.from(getModule(m => m.DropdownSizes)),
FormNotice: AsyncComponent.from(getModuleByDisplayName('FormNotice')),
Card: AsyncComponent.from(getModuleByDisplayName('Card')),
Clickable: AsyncComponent.from(getModuleByDisplayName('Clickable')),
Switch: AsyncComponent.from(getModuleByDisplayName('Switch')),
Spinner: AsyncComponent.from(getModuleByDisplayName('Spinner')),
FormTitle: AsyncComponent.from(getModuleByDisplayName('FormTitle')),
HeaderBar: AsyncComponent.from(getModuleByDisplayName('HeaderBar')),
TabBar: AsyncComponent.from(getModuleByDisplayName('TabBar')),
Text: AsyncComponent.from(getModuleByDisplayName('Text')),
Flex: AsyncComponent.from(getModuleByDisplayName('Flex')),
Tooltip: AsyncComponent.from((async () => (await getModule([ 'TooltipContainer' ])).TooltipContainer)()),
Helmet: AsyncComponent.from((async () => (await getModule([ 'HelmetProvider' ])).Helmet)()),
HelmetProvider: AsyncComponent.from((async () => (await getModule([ 'HelmetProvider' ])).HelmetProvider)()),
ConfirmationModal: AsyncComponent.from(getModuleByDisplayName('Confirm')),
Modal: AsyncComponent.from(getModuleByDisplayName('DeprecatedModal')),
Button: AsyncComponent.from(getModule(m => m.DropdownSizes, true)),
FormNotice: AsyncComponent.from(getModuleByDisplayName('FormNotice', true)),
Card: AsyncComponent.from(getModuleByDisplayName('Card', true)),
Clickable: AsyncComponent.from(getModuleByDisplayName('Clickable', true)),
Switch: AsyncComponent.from(getModuleByDisplayName('Switch', true)),
Spinner: AsyncComponent.from(getModuleByDisplayName('Spinner', true)),
FormTitle: AsyncComponent.from(getModuleByDisplayName('FormTitle', true)),
HeaderBar: AsyncComponent.from(getModuleByDisplayName('HeaderBar', true)),
TabBar: AsyncComponent.from(getModuleByDisplayName('TabBar', true)),
Text: AsyncComponent.from(getModuleByDisplayName('Text', true)),
Flex: AsyncComponent.from(getModuleByDisplayName('Flex', true)),
Tooltip: AsyncComponent.from((async () => (await getModule([ 'TooltipContainer' ], true)).TooltipContainer)()),
Helmet: AsyncComponent.from((async () => (await getModule([ 'HelmetProvider' ], true)).Helmet)()),
HelmetProvider: AsyncComponent.from((async () => (await getModule([ 'HelmetProvider' ], true)).HelmetProvider)()),
ConfirmationModal: AsyncComponent.from(getModuleByDisplayName('Confirm', true)),
Modal: AsyncComponent.from(getModuleByDisplayName('DeprecatedModal', true)),
Menu: () => null
});
@ -52,7 +52,7 @@ getModuleByDisplayName('Text', true, true).then(Text => {
getModuleByDisplayName('Flex', true, true).then(Flex => {
[ 'Direction', 'Justify', 'Align', 'Wrap', 'Child' ].forEach(prop => exports.Flex[prop] = Flex[prop]);
});
getModule([ 'MenuGroup' ]).then(Menu => {
getModule([ 'MenuGroup' ], true, true).then(Menu => {
[ 'MenuCheckboxItem', 'MenuControlItem', 'MenuGroup', 'MenuItem', 'MenuRadioItem', 'MenuSeparator', 'MenuStyle' ]
.forEach(prop => exports.Menu[prop] = Menu[prop]);
exports.Menu.Menu = Menu.default;

@ -19,8 +19,8 @@ require('fs')
});
Object.assign(exports, {
Confirm: AsyncComponent.from(getModuleByDisplayName('Confirm')),
Modal: AsyncComponent.from(getModuleByDisplayName('DeprecatedModal'))
Confirm: AsyncComponent.from(getModuleByDisplayName('Confirm', true)),
Modal: AsyncComponent.from(getModuleByDisplayName('DeprecatedModal', true))
});
// Re-export module properties

@ -1,9 +1,9 @@
const { getModule, getModuleByDisplayName, React } = require('vizality/webpack');
const AsyncComponent = require('../AsyncComponent');
const DFormItem = AsyncComponent.from(getModuleByDisplayName('FormItem'));
const FormText = AsyncComponent.from(getModuleByDisplayName('FormText'));
const Tooltip = AsyncComponent.from(getModuleByDisplayName('Tooltip'));
const DFormItem = AsyncComponent.from(getModuleByDisplayName('FormItem', true));
const FormText = AsyncComponent.from(getModuleByDisplayName('FormText', true));
const Tooltip = AsyncComponent.from(getModuleByDisplayName('Tooltip', true));
let classes = {
initialized: false,
@ -25,16 +25,16 @@ module.exports = class ButtonItem extends React.PureComponent {
async componentDidMount () {
if (classes.initialized) return;
const Flex = await getModuleByDisplayName('Flex');
const Flex = await getModuleByDisplayName('Flex', true);
classes = {
initialized: true,
flexClassName: `${Flex.Direction.VERTICAL} ${Flex.Justify.START} ${Flex.Align.STRETCH} ${Flex.Wrap.NO_WRAP}`,
classMargins: await getModule([ 'marginTop20' ]),
classTitle: (await getModule([ 'titleDefault' ])).titleDefault,
classDivider: (await getModule(m => Object.keys(m).join('') === 'divider')).divider,
classDividerDef: (await getModule([ 'dividerDefault' ])).dividerDefault,
classDescription: (await getModule([ 'formText', 'description' ])).description
classMargins: await getModule([ 'marginTop20' ], true),
classTitle: (await getModule([ 'titleDefault' ], true)).titleDefault,
classDivider: (await getModule(m => Object.keys(m).join('') === 'divider', true)).divider,
classDividerDef: (await getModule([ 'dividerDefault' ], true)).dividerDefault,
classDescription: (await getModule([ 'formText', 'description' ], true)).description
};
this.setState({ classes });

@ -1,8 +1,8 @@
const { getModule, getModuleByDisplayName, React } = require('vizality/webpack');
const AsyncComponent = require('../AsyncComponent');
const DFormItem = AsyncComponent.from(getModuleByDisplayName('FormItem'));
const FormText = AsyncComponent.from(getModuleByDisplayName('FormText'));
const DFormItem = AsyncComponent.from(getModuleByDisplayName('FormItem', true));
const FormText = AsyncComponent.from(getModuleByDisplayName('FormText', true));
let classes = {
initialized: false,

@ -2,9 +2,9 @@ const { React, getModule, getModuleByDisplayName, constants: { DEFAULT_ROLE_COLO
const AsyncComponent = require('../AsyncComponent');
const FormItem = require('./FormItem');
const ColorPicker = AsyncComponent.from(getModuleByDisplayName('ColorPicker'));
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle'));
const Slider = AsyncComponent.from(getModuleByDisplayName('Slider'));
const ColorPicker = AsyncComponent.from(getModuleByDisplayName('ColorPicker', true));
const FormTitle = AsyncComponent.from(getModuleByDisplayName('FormTitle', true));
const Slider = AsyncComponent.from(getModuleByDisplayName('Slider', true));
class ColorPickerInput extends React.PureComponent {
constructor (props) {
@ -36,7 +36,7 @@ class ColorPickerInput extends React.PureComponent {
}
renderOpacity () {
const { marginTop8, marginTop20 } = getModule([ 'marginTop20' ], false);
const { marginTop8, marginTop20 } = getModule([ 'marginTop20' ]);
return (
<>
<FormTitle className={marginTop8}>Opacity</FormTitle>

@ -2,7 +2,7 @@ const { getModuleByDisplayName, React } = require('vizality/webpack');
const AsyncComponent = require('../AsyncComponent');
const FormItem = require('./FormItem');
const Copy = AsyncComponent.from(getModuleByDisplayName('CopyInput'));
const Copy = AsyncComponent.from(getModuleByDisplayName('CopyInput', true));
module.exports = class CopyInput extends React.PureComponent {
render () {

@ -2,14 +2,14 @@ const { getModule, getModuleByDisplayName, React } = require('vizality/webpack')
const AsyncComponent = require('../AsyncComponent');
const Divider = require('../Divider');
const DFormItem = AsyncComponent.from(getModuleByDisplayName('FormItem'));
const FormText = AsyncComponent.from(getModuleByDisplayName('FormText'));
const DFormItem = AsyncComponent.from(getModuleByDisplayName('FormItem', true));
const FormText = AsyncComponent.from(getModuleByDisplayName('FormText', true));
module.exports = class FormItem extends React.PureComponent {
render () {
const Flex = getModuleByDisplayName('Flex', false);
const margins = getModule([ 'marginTop20' ], false);
const { description } = getModule([ 'formText', 'description' ], false);
const Flex = getModuleByDisplayName('Flex');
const margins = getModule([ 'marginTop20' ]);
const { description } = getModule([ 'formText', 'description' ]);
return (
<DFormItem
title={this.props.title}

@ -2,7 +2,7 @@ const { getModule, getModuleByDisplayName, React } = require('vizality/webpack')
const AsyncComponent = require('../AsyncComponent');
const FormItem = require('./FormItem');
const DRadioGroup = AsyncComponent.from(getModuleByDisplayName('RadioGroup'));
const DRadioGroup = AsyncComponent.from(getModuleByDisplayName('RadioGroup', true));
let margin = '';
module.exports = class RadioGroup extends React.PureComponent {
@ -16,7 +16,7 @@ module.exports = class RadioGroup extends React.PureComponent {
return;
}
margin = (await getModule([ 'marginTop20' ])).marginTop20;
margin = (await getModule([ 'marginTop20' ], true)).marginTop20;
this.setState({ margin });
}

@ -2,7 +2,7 @@ const { React, getModuleByDisplayName } = require('vizality/webpack');
const AsyncComponent = require('../AsyncComponent');
const FormItem = require('./FormItem');
const DRegionSelector = AsyncComponent.from(getModuleByDisplayName('RegionSelector'));
const DRegionSelector = AsyncComponent.from(getModuleByDisplayName('RegionSelector', true));
module.exports = class RegionSelector extends React.PureComponent {

@ -2,7 +2,7 @@ const { getModuleByDisplayName, React } = require('vizality/webpack');
const AsyncComponent = require('../AsyncComponent');
const FormItem = require('./FormItem');
const SelectTempWrapper = AsyncComponent.from(getModuleByDisplayName('SelectTempWrapper'));
const SelectTempWrapper = AsyncComponent.from(getModuleByDisplayName('SelectTempWrapper', true));
class SelectInput extends React.PureComponent {
render () {

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save