diff --git a/Library/0BDFDB.plugin.js b/Library/0BDFDB.plugin.js index 224fbf917f..da9ecc131d 100644 --- a/Library/0BDFDB.plugin.js +++ b/Library/0BDFDB.plugin.js @@ -2,7 +2,7 @@ * @name BDFDB * @author DevilBro * @authorId 278543574059057154 - * @version 1.4.6 + * @version 1.4.7 * @description Required Library for DevilBro's Plugins * @invite Jx3TjNS * @donate https://www.paypal.me/MircoWittrien @@ -22,7 +22,7 @@ module.exports = (_ => { "info": { "name": "BDFDB", "author": "DevilBro", - "version": "1.4.6", + "version": "1.4.7", "description": "Required Library for DevilBro's Plugins" }, "rawUrl": `https://mwittrien.github.io/BetterDiscordAddons/Library/0BDFDB.plugin.js`, @@ -3919,67 +3919,6 @@ module.exports = (_ => { } else return original; }; - BDFDB.StringUtils.formatTime = function (time, config = {}) { - let timeObj = time || new Date(); - if (typeof time == "string" || typeof time == "number") timeObj = new Date(time); - if (timeObj.toString() == "Invalid Date") timeObj = new Date(parseInt(time)); - if (timeObj.toString() == "Invalid Date" || typeof timeObj.toLocaleDateString != "function") return ""; - - let languageId = config.language && BDFDB.LanguageUtils.languages[config.language] ? config.language : BDFDB.LanguageUtils.getLanguage().id, timeString = ""; - if (!config.formatString || typeof config.formatString != "string") { - const cutOffSeconds = string => { - return string.replace(/(.{1,2}:.{1,2}):.{1,2}(.*)/, "$1$2").replace(/(.{1,2}\..{1,2})\..{1,2}(.*)/, "$1$2").replace(/(.{1,2} h .{1,2} min) .{1,2} s(.*)/, "$1$2"); - }; - const addLeadingZeros = string => { - let charArray = string.split(""); - let numReg = /[0-9]/; - for (let i = 0; i < charArray.length; i++) if (!numReg.test(charArray[i-1]) && numReg.test(charArray[i]) && !numReg.test(charArray[i+1])) charArray[i] = "0" + charArray[i]; - return charArray.join(""); - }; - let timestamp = []; - if (config.displayDate) timestamp.push(timeObj.toLocaleDateString(languageId)); - if (config.displayTime) timestamp.push(config.cutSeconds ? cutOffSeconds(timeObj.toLocaleTimeString(languageId)) : timeObj.toLocaleTimeString(languageId)); - if (config.otherOrder) timestamp.reverse(); - timeString = timestamp.length > 1 ? timestamp.join(", ") : (timestamp.length > 0 ? timestamp[0] : ""); - if (timeString && config.forceZeros) timeString = addLeadingZeros(timeString); - } - else { - let hours = timeObj.getHours(); - let minutes = timeObj.getMinutes(); - let seconds = timeObj.getSeconds(); - let milliSeconds = timeObj.getMilliseconds(); - - let day = timeObj.getDate(); - let month = timeObj.getMonth()+1; - - let timeMode = ""; - let now = new Date(); - let daysAgo = Math.round((Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()) - Date.UTC(timeObj.getFullYear(), timeObj.getMonth(), timeObj.getDate()))/(1000*60*60*24)); - - if (config.formatString.indexOf("$timemode") > -1) { - timeMode = hours >= 12 ? "PM" : "AM"; - hours = hours % 12; - hours = hours ? hours : 12; - } - timeString = BDFDB.LibraryModules.StringUtils.upperCaseFirstChar(config.formatString - .replace(/\$hour/g, config.forceZeros && hours < 10 ? "0" + hours : hours) - .replace(/\$minute/g, minutes < 10 ? "0" + minutes : minutes) - .replace(/\$second/g, seconds < 10 ? "0" + seconds : seconds) - .replace(/\$msecond/g, config.forceZeros ? (milliSeconds < 10 ? "00" + milliSeconds : (milliSeconds < 100 ? "0" + milliSeconds : milliSeconds)) : milliSeconds) - .replace(/\$timemode/g, timeMode) - .replace(/\$weekdayL/g, timeObj.toLocaleDateString(languageId, {weekday: "long"})) - .replace(/\$weekdayS/g, timeObj.toLocaleDateString(languageId, {weekday: "short"})) - .replace(/\$monthnameL/g, timeObj.toLocaleDateString(languageId, {month: "long"})) - .replace(/\$monthnameS/g, timeObj.toLocaleDateString(languageId, {month: "short"})) - .replace(/\$daysago/g, config.maxDaysAgo == 0 || config.maxDaysAgo >= daysAgo ? (daysAgo > 1 ? (config.useDateInDaysAgo ? timeObj.toLocaleDateString(languageId) : BDFDB.LanguageUtils.LanguageStringsFormat("ACTIVITY_FEED_USER_PLAYED_DAYS_AGO", daysAgo)) : BDFDB.LanguageUtils.LanguageStrings[`SEARCH_SHORTCUT_${daysAgo == 1 ? "YESTERDAY" : "TODAY"}`]) : "") - .replace(/\$day/g, config.forceZeros && day < 10 ? "0" + day : day) - .replace(/\$month/g, config.forceZeros && month < 10 ? "0" + month : month) - .replace(/\$yearS/g, parseInt(timeObj.getFullYear().toString().slice(-2))) - .replace(/\$year/g, timeObj.getFullYear()) - .trim().split(" ").filter(n => n).join(" ")); - } - return timeString; - }; BDFDB.SlateUtils = {}; BDFDB.SlateUtils.isRichValue = function (richValue) { @@ -5669,7 +5608,7 @@ module.exports = (_ => { }); } handleChange() { - if (typeof this.props.onChange == "function") this.props.onChange(BDFDB.ObjectUtils.extract(this.props, "customString", "dateString", "timeString")); + if (typeof this.props.onChange == "function") this.props.onChange(BDFDB.ObjectUtils.extract(this.props, "formatString", "dateString", "timeString")); } render() { let input = this, preview; @@ -5688,9 +5627,9 @@ module.exports = (_ => { BDFDB.ReactUtils.createElement(InternalComponents.LibraryComponents.TextInput, { className: BDFDB.disCN.dateinputfield, placeholder: InternalComponents.LibraryComponents.DateInput.getDefaultString(), - value: this.props.customString, + value: this.props.formatString, onChange: value => { - this.props.customString = value; + this.props.formatString = value; this.handleChange.apply(this, []); BDFDB.ReactUtils.forceUpdate(preview); } @@ -5749,7 +5688,7 @@ module.exports = (_ => { BDFDB.ReactUtils.createElement(class DateInputPreview extends LibraryModules.React.Component { componentDidMount() {preview = this;} render() { - return BDFDB.ReactUtils.createElement("div", { + return !input.props.noPreview && BDFDB.ReactUtils.createElement("div", { className: BDFDB.disCN.dateinputpreview, children: [ input.props.prefix && BDFDB.ReactUtils.createElement("div", { @@ -5758,7 +5697,7 @@ module.exports = (_ => { }), BDFDB.ReactUtils.createElement(InternalComponents.LibraryComponents.TextScroller, { children: InternalComponents.LibraryComponents.DateInput.format({ - formatString: input.props.customString, + formatString: input.props.formatString, dateString: input.props.dateString, timeString: input.props.timeString }, new Date((new Date()) - (1000*60*60*24*2))) @@ -5770,7 +5709,7 @@ module.exports = (_ => { ] }) ] - }), "onChange", "label", "customString", "dateString", "timeString", "prefix")); + }), "onChange", "label", "formatString", "dateString", "timeString", "noPreview", "prefix")); } }; InternalComponents.LibraryComponents.DateInput.getDefaultString = function () { @@ -5786,6 +5725,7 @@ module.exports = (_ => { }; InternalComponents.LibraryComponents.DateInput.format = function (strings, time) { if (typeof strings == "string") strings = {formatString: strings}; + if (strings && typeof strings.formatString != "string") strings.formatString = ""; if (!strings || typeof strings.formatString != "string" || !time) return ""; const timeObj = InternalComponents.LibraryComponents.DateInput.parseDate(time); const language = BDFDB.LanguageUtils.getLanguage().id; diff --git a/Library/_res/BDFDB.raw.css b/Library/_res/BDFDB.raw.css index 0365931504..2780243b29 100644 --- a/Library/_res/BDFDB.raw.css +++ b/Library/_res/BDFDB.raw.css @@ -660,12 +660,12 @@ img:not([src]), img[src=""], img[src="null"] { [REPLACE_CLASS_dateinputcontrols] { display: flex; align-items: center; - margin-bottom: 8px; } [REPLACE_CLASS_dateinputpreview] { display: flex; align-items: center; color: var(--header-primary); + margin-top: 8px; font-weight: normal; } [REPLACE_CLASS_dateinputpreviewprefix] {