stuff
This commit is contained in:
parent
8271e685fa
commit
f64a2c6ec8
|
@ -1751,9 +1751,10 @@ module.exports = (_ => {
|
||||||
if (m && typeof m == "function" && filter(m)) {
|
if (m && typeof m == "function" && filter(m)) {
|
||||||
if (req.c[i]) return getExport ? req.c[i].exports : req.c[i];
|
if (req.c[i]) return getExport ? req.c[i].exports : req.c[i];
|
||||||
else {
|
else {
|
||||||
let resolved = {};
|
let resolved = {}, resolved2 = {};
|
||||||
req.m[i](resolved, null, req);
|
m(resolved, resolved2, req);
|
||||||
return getExport ? resolved.exports : resolved;
|
let trueResolved = resolved2 && BDFDB.ObjectUtils.isEmpty(resolved2) ? resolved : resolved2;
|
||||||
|
return getExport ? trueResolved.exports : trueResolved;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6817,7 +6818,7 @@ module.exports = (_ => {
|
||||||
BOTTOM: "M4.08643 11.0903L5.67742 9.49929L9.4485 13.2704L7.85751 14.8614L4.08643 11.0903Z"
|
BOTTOM: "M4.08643 11.0903L5.67742 9.49929L9.4485 13.2704L7.85751 14.8614L4.08643 11.0903Z"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const SwitchInner = function(props) {
|
const SwitchInner = function (props) {
|
||||||
let reducedMotion = BDFDB.ReactUtils.useContext(LibraryModules.PreferencesContext.AccessibilityPreferencesContext).reducedMotion;
|
let reducedMotion = BDFDB.ReactUtils.useContext(LibraryModules.PreferencesContext.AccessibilityPreferencesContext).reducedMotion;
|
||||||
let ref = BDFDB.ReactUtils.useRef(null);
|
let ref = BDFDB.ReactUtils.useRef(null);
|
||||||
let state = BDFDB.ReactUtils.useState(false);
|
let state = BDFDB.ReactUtils.useState(false);
|
||||||
|
@ -7271,6 +7272,35 @@ module.exports = (_ => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const VideoInner = function (props) {
|
||||||
|
let ref = BDFDB.ReactUtils.useRef(null);
|
||||||
|
BDFDB.ReactUtils.useEffect(_ => {
|
||||||
|
if (ref.current) props.play ? ref.current.play() : ref.current.pause();
|
||||||
|
}, [props.play]);
|
||||||
|
return props.naturalWidth <= BDFDB.DiscordConstants.MAX_VIDEO_WIDTH && props.naturalHeight <= BDFDB.DiscordConstants.MAX_VIDEO_HEIGHT || props.naturalWidth <= BDFDB.DiscordConstants.MAX_VIDEO_HEIGHT && props.naturalHeight <= BDFDB.DiscordConstants.MAX_VIDEO_WIDTH ? BDFDB.ReactUtils.createElement(InternalComponents.LibraryComponents.VideoForwardRef, {
|
||||||
|
ref: ref,
|
||||||
|
className: props.className,
|
||||||
|
poster: props.poster,
|
||||||
|
src: props.src,
|
||||||
|
width: props.width,
|
||||||
|
height: props.height,
|
||||||
|
muted: true,
|
||||||
|
loop: true,
|
||||||
|
autoPlay: props.play,
|
||||||
|
preload: "none"
|
||||||
|
}) : BDFDB.ReactUtils.createElement("img", {
|
||||||
|
alt: "",
|
||||||
|
src: props.poster,
|
||||||
|
width: props.width,
|
||||||
|
height: props.height
|
||||||
|
});
|
||||||
|
};
|
||||||
|
InternalComponents.LibraryComponents.Video = reactInitialized && class BDFDB_Video extends LibraryModules.React.Component {
|
||||||
|
render() {
|
||||||
|
return BDFDB.ReactUtils.createElement(VideoInner, this.props);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
for (let type in InternalComponents.NativeSubComponents) if (InternalComponents.LibraryComponents[type]) for (let key in InternalComponents.NativeSubComponents[type]) if (key != "displayName" && key != "name" && (typeof InternalComponents.NativeSubComponents[type][key] != "function" || key.charAt(0) == key.charAt(0).toUpperCase())) {
|
for (let type in InternalComponents.NativeSubComponents) if (InternalComponents.LibraryComponents[type]) for (let key in InternalComponents.NativeSubComponents[type]) if (key != "displayName" && key != "name" && (typeof InternalComponents.NativeSubComponents[type][key] != "function" || key.charAt(0) == key.charAt(0).toUpperCase())) {
|
||||||
if (key == "defaultProps") InternalComponents.LibraryComponents[type][key] = Object.assign({}, InternalComponents.LibraryComponents[type][key], InternalComponents.NativeSubComponents[type][key]);
|
if (key == "defaultProps") InternalComponents.LibraryComponents[type][key] = Object.assign({}, InternalComponents.LibraryComponents[type][key], InternalComponents.NativeSubComponents[type][key]);
|
||||||
else InternalComponents.LibraryComponents[type][key] = InternalComponents.NativeSubComponents[type][key];
|
else InternalComponents.LibraryComponents[type][key] = InternalComponents.NativeSubComponents[type][key];
|
||||||
|
|
|
@ -523,7 +523,7 @@ module.exports = (_ => {
|
||||||
else if (BDFDB.DOMUtils.containsClass(e.instance.props.target, BDFDB.disCN.emojiold, "emote", false) && settings.addEmojiEntry) this.injectItem(e, e.instance.props.target.src);
|
else if (BDFDB.DOMUtils.containsClass(e.instance.props.target, BDFDB.disCN.emojiold, "emote", false) && settings.addEmojiEntry) this.injectItem(e, e.instance.props.target.src);
|
||||||
}
|
}
|
||||||
else if (e.instance.props.target.tagName == "VIDEO") {
|
else if (e.instance.props.target.tagName == "VIDEO") {
|
||||||
if (BDFDB.DOMUtils.getParent(BDFDB.dotCN.attachmentvideo, e.instance.props.target)) this.injectItem(e, e.instance.props.target.src);
|
if (BDFDB.DOMUtils.containsClass(e.instance.props.target, BDFDB.disCN.embedvideo) || BDFDB.DOMUtils.getParent(BDFDB.dotCN.attachmentvideo, e.instance.props.target)) this.injectItem(e, e.instance.props.target.src);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let reaction = BDFDB.DOMUtils.getParent(BDFDB.dotCN.messagereaction, e.instance.props.target);
|
let reaction = BDFDB.DOMUtils.getParent(BDFDB.dotCN.messagereaction, e.instance.props.target);
|
||||||
|
@ -535,15 +535,15 @@ module.exports = (_ => {
|
||||||
injectItem (e, ...urls) {
|
injectItem (e, ...urls) {
|
||||||
let fileTypes = [];
|
let fileTypes = [];
|
||||||
let validUrls = urls.filter(n => this.isValid(n)).map(n => {
|
let validUrls = urls.filter(n => this.isValid(n)).map(n => {
|
||||||
let originalUrl = n.replace(/^url\(|\)$|"|'/g, "").replace(/\?size\=\d+$/, "?size=4096");
|
let srcUrl = n.replace(/^url\(|\)$|"|'/g, "").replace(/\?size\=\d+$/, "?size=4096");
|
||||||
let url = originalUrl.replace(/[\?\&](height|width)=\d+/g, "").split("%3A")[0];
|
let url = srcUrl.replace(/[\?\&](height|width)=\d+/g, "").split("%3A")[0];
|
||||||
if (url.indexOf("https://images-ext-1.discordapp.net/external/") > -1 || url.indexOf("https://images-ext-2.discordapp.net/external/") > -1) {
|
if (url.indexOf("https://images-ext-1.discordapp.net/external/") > -1 || url.indexOf("https://images-ext-2.discordapp.net/external/") > -1) {
|
||||||
if (url.split("/https/").length > 1) url = "https://" + url.split("/https/").pop();
|
if (url.split("/https/").length > 1) url = "https://" + url.split("/https/").pop();
|
||||||
else if (url.split("/http/").length > 1) url = "http://" + url.split("/http/").pop();
|
else if (url.split("/http/").length > 1) url = "http://" + url.split("/http/").pop();
|
||||||
}
|
}
|
||||||
const file = url && (BDFDB.LibraryModules.URLParser.parse(url).pathname || "").toLowerCase();
|
const file = url && (BDFDB.LibraryModules.URLParser.parse(url).pathname || "").toLowerCase();
|
||||||
const fileType = file && (file.split(".").pop() || "");
|
const fileType = file && (file.split(".").pop() || "");
|
||||||
return url && fileType && !fileTypes.includes(fileType) && fileTypes.push(fileType) && {url, originalUrl, fileType};
|
return url && fileType && !fileTypes.includes(fileType) && fileTypes.push(fileType) && {url, srcUrl, fileType};
|
||||||
}).filter(n => n);
|
}).filter(n => n);
|
||||||
if (!validUrls.length) return;
|
if (!validUrls.length) return;
|
||||||
|
|
||||||
|
@ -557,10 +557,10 @@ module.exports = (_ => {
|
||||||
|
|
||||||
let type = this.isValid(validUrls[0].url, "video") ? BDFDB.LanguageUtils.LanguageStrings.VIDEO : BDFDB.LanguageUtils.LanguageStrings.IMAGE;
|
let type = this.isValid(validUrls[0].url, "video") ? BDFDB.LanguageUtils.LanguageStrings.VIDEO : BDFDB.LanguageUtils.LanguageStrings.IMAGE;
|
||||||
let isNative = validUrls.length == 1 && removeIndex > -1;
|
let isNative = validUrls.length == 1 && removeIndex > -1;
|
||||||
let subMenu = validUrls.length == 1 ? this.createUrlMenu(e, validUrls[0].url, validUrls[0].originalUrl) : validUrls.map((urlData, i) => BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
let subMenu = validUrls.length == 1 ? this.createUrlMenu(e, validUrls[0].url, validUrls[0].srcUrl) : validUrls.map((urlData, i) => BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||||
label: urlData.fileType.toUpperCase(),
|
label: urlData.fileType.toUpperCase(),
|
||||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "subitem", i),
|
id: BDFDB.ContextMenuUtils.createItemId(this.name, "subitem", i),
|
||||||
children: this.createUrlMenu(e, urlData.url, urlData.originalUrl)
|
children: this.createUrlMenu(e, urlData.url, urlData.srcUrl)
|
||||||
}));
|
}));
|
||||||
|
|
||||||
let [children, index] = isNative ? [removeParent, removeIndex] : BDFDB.ContextMenuUtils.findItem(e.returnvalue, {id: "devmode-copy-id", group: true});
|
let [children, index] = isNative ? [removeParent, removeIndex] : BDFDB.ContextMenuUtils.findItem(e.returnvalue, {id: "devmode-copy-id", group: true});
|
||||||
|
@ -573,7 +573,7 @@ module.exports = (_ => {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
createUrlMenu (e, url, originalUrl) {
|
createUrlMenu (e, url, srcUrl) {
|
||||||
let enginesWithoutAll = BDFDB.ObjectUtils.filter(enabledEngines, n => n != "_all", true);
|
let enginesWithoutAll = BDFDB.ObjectUtils.filter(enabledEngines, n => n != "_all", true);
|
||||||
let engineKeys = Object.keys(enginesWithoutAll);
|
let engineKeys = Object.keys(enginesWithoutAll);
|
||||||
let locations = Object.keys(ownLocations).filter(n => ownLocations[n].enabled);
|
let locations = Object.keys(ownLocations).filter(n => ownLocations[n].enabled);
|
||||||
|
@ -594,12 +594,12 @@ module.exports = (_ => {
|
||||||
BDFDB.NotificationUtils.toast(BDFDB.LanguageUtils.LanguageStrings.LINK_COPIED, {type: "success"});
|
BDFDB.NotificationUtils.toast(BDFDB.LanguageUtils.LanguageStrings.LINK_COPIED, {type: "success"});
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
!isVideo && BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||||
label: this.labels.context_view.replace("{{var0}}", type),
|
label: this.labels.context_view.replace("{{var0}}", type),
|
||||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "view-file"),
|
id: BDFDB.ContextMenuUtils.createItemId(this.name, "view-file"),
|
||||||
action: _ => {
|
action: _ => {
|
||||||
let img = new Image();
|
let img = document.createElement(isVideo ? "video" : "img");
|
||||||
img.onload = function() {
|
img.addEventListener(isVideo ? "loadedmetadata" : "load", function() {
|
||||||
BDFDB.LibraryModules.ModalUtils.openModal(modalData => {
|
BDFDB.LibraryModules.ModalUtils.openModal(modalData => {
|
||||||
return BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ModalComponents.ModalRoot, Object.assign({
|
return BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ModalComponents.ModalRoot, Object.assign({
|
||||||
className: BDFDB.disCN.imagemodal
|
className: BDFDB.disCN.imagemodal
|
||||||
|
@ -607,17 +607,26 @@ module.exports = (_ => {
|
||||||
size: BDFDB.LibraryComponents.ModalComponents.ModalSize.DYNAMIC,
|
size: BDFDB.LibraryComponents.ModalComponents.ModalSize.DYNAMIC,
|
||||||
"aria-label": BDFDB.LanguageUtils.LanguageStrings.IMAGE,
|
"aria-label": BDFDB.LanguageUtils.LanguageStrings.IMAGE,
|
||||||
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ImageModal, {
|
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ImageModal, {
|
||||||
src: originalUrl || url,
|
animated: !!isVideo,
|
||||||
original: originalUrl || url,
|
src: srcUrl || url,
|
||||||
width: this.width,
|
original: url,
|
||||||
height: this.height,
|
width: isVideo ? this.videoWidth : this.width,
|
||||||
|
height: isVideo ? this.videoHeight : this.height,
|
||||||
className: BDFDB.disCN.imagemodalimage,
|
className: BDFDB.disCN.imagemodalimage,
|
||||||
shouldAnimate: true,
|
shouldAnimate: true,
|
||||||
renderLinkComponent: props => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Anchor, props)
|
renderLinkComponent: props => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Anchor, props),
|
||||||
|
children: isVideo && (videoData => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Video, {
|
||||||
|
src: srcUrl || url,
|
||||||
|
width: videoData.size.width,
|
||||||
|
height: videoData.size.height,
|
||||||
|
naturalWidth: this.videoWidth,
|
||||||
|
naturalHeight: this.videoHeight,
|
||||||
|
play: true
|
||||||
|
}))
|
||||||
})
|
})
|
||||||
}), true);
|
}), true);
|
||||||
});
|
});
|
||||||
};
|
});
|
||||||
img.src = url;
|
img.src = url;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
@ -684,8 +693,8 @@ module.exports = (_ => {
|
||||||
processImageModal (e) {
|
processImageModal (e) {
|
||||||
if (clickedImage) e.instance.props.cachedImage = clickedImage;
|
if (clickedImage) e.instance.props.cachedImage = clickedImage;
|
||||||
let url = this.getImageSrc(e.instance.props.cachedImage && e.instance.props.cachedImage.src ? e.instance.props.cachedImage : e.instance.props.src);
|
let url = this.getImageSrc(e.instance.props.cachedImage && e.instance.props.cachedImage.src ? e.instance.props.cachedImage : e.instance.props.src);
|
||||||
let isVideo = (typeof e.instance.props.children == "function" && e.instance.props.children(Object.assign({}, e.instance.props, {size: e.instance.props})) || {type: {}}).type.displayName == "Video";
|
url = this.getImageSrc((typeof e.instance.props.children == "function" && e.instance.props.children(Object.assign({}, e.instance.props, {size: e.instance.props})) || {type: {}}).props.src) || url;
|
||||||
url = isVideo ? (typeof e.instance.props.children == "function" && e.instance.props.children(Object.assign({}, e.instance.props, {size: e.instance.props})) || {type: {}}).props.src : url;
|
let isVideo = this.isValid(url, "video");
|
||||||
let messages = this.getMessageGroupOfImage(url);
|
let messages = this.getMessageGroupOfImage(url);
|
||||||
if (e.returnvalue) {
|
if (e.returnvalue) {
|
||||||
let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {props: [["className", BDFDB.disCN.downloadlink]]});
|
let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {props: [["className", BDFDB.disCN.downloadlink]]});
|
||||||
|
|
Loading…
Reference in New Issue