From cdff1ae79e23869ce0576382af1508fec445c7da Mon Sep 17 00:00:00 2001 From: Nuckyz <61953774+Nuckyz@users.noreply.github.com> Date: Sat, 24 Jan 2026 12:43:09 -0300 Subject: [PATCH 1/3] ReviewDB: Fix viewing reviews with new CSS mangling --- .../reviewDB/components/ReviewComponent.tsx | 285 +++++++++--------- 1 file changed, 136 insertions(+), 149 deletions(-) diff --git a/src/plugins/reviewDB/components/ReviewComponent.tsx b/src/plugins/reviewDB/components/ReviewComponent.tsx index effd5c4ee..20bd2e029 100644 --- a/src/plugins/reviewDB/components/ReviewComponent.tsx +++ b/src/plugins/reviewDB/components/ReviewComponent.tsx @@ -23,175 +23,162 @@ import { settings } from "@plugins/reviewDB/settings"; import { canBlockReviewAuthor, canDeleteReview, canReportReview, cl, showToast } from "@plugins/reviewDB/utils"; import { openUserProfile } from "@utils/discord"; import { classes } from "@utils/misc"; -import { LazyComponent } from "@utils/react"; -import { filters, findBulk } from "@webpack"; +import { findCssClassesLazy } from "@webpack"; import { Alerts, Parser, Timestamp, useState } from "@webpack/common"; import { openBlockModal } from "./BlockedUserModal"; import { BlockButton, DeleteButton, ReportButton } from "./MessageButton"; import ReviewBadge from "./ReviewBadge"; -export default LazyComponent(() => { - // this is terrible, blame mantika - const p = filters.byProps; - const [ - { cozyMessage, buttons, message, buttonsInner, groupStart }, - { container, isHeader }, - { avatar, clickable, username, wrapper, cozy }, - buttonClasses, - botTag - ] = findBulk( - p("cozyMessage"), - p("container", "isHeader"), - p("avatar", "zalgo"), - p("button", "wrapper", "selected"), - p("botTagRegular") - ); +const MessageClasses = findCssClassesLazy("cozyMessage", "message", "groupStart", "buttons", "buttonsInner"); +const ContainerClasses = findCssClassesLazy("container", "isHeader"); +const AvatarClasses = findCssClassesLazy("avatar", "wrapper", "cozy", "clickable", "username"); +const ButtonClasses = findCssClassesLazy("button", "wrapper", "selected"); +const BotTagClasses = findCssClassesLazy("botTagVerified", "botTagRegular", "botText", "px", "rem"); - const dateFormat = new Intl.DateTimeFormat(); +const dateFormat = new Intl.DateTimeFormat(); - return function ReviewComponent({ review, refetch, profileId }: { review: Review; refetch(): void; profileId: string; }) { - const [showAll, setShowAll] = useState(false); +export default function ReviewComponent({ review, refetch, profileId }: { review: Review; refetch(): void; profileId: string; }) { + const [showAll, setShowAll] = useState(false); - function openModal() { - openUserProfile(review.sender.discordID); - } + function openModal() { + openUserProfile(review.sender.discordID); + } - function delReview() { - Alerts.show({ - title: "Are you sure?", - body: "Do you really want to delete this review?", - confirmText: "Delete", - cancelText: "Nevermind", - onConfirm: async () => { - if (!(await getToken())) { - return showToast("You must be logged in to delete reviews."); - } else { - deleteReview(review.id).then(res => { - if (res) { - refetch(); - } - }); - } + function delReview() { + Alerts.show({ + title: "Are you sure?", + body: "Do you really want to delete this review?", + confirmText: "Delete", + cancelText: "Nevermind", + onConfirm: async () => { + if (!(await getToken())) { + return showToast("You must be logged in to delete reviews."); + } else { + deleteReview(review.id).then(res => { + if (res) { + refetch(); + } + }); } - }); - } + } + }); + } - function reportRev() { - Alerts.show({ - title: "Are you sure?", - body: "Do you really you want to report this review?", - confirmText: "Report", - cancelText: "Nevermind", - // confirmColor: "red", this just adds a class name and breaks the submit button guh - onConfirm: async () => { - if (!(await getToken())) { - return showToast("You must be logged in to report reviews."); - } else { - reportReview(review.id); - } + function reportRev() { + Alerts.show({ + title: "Are you sure?", + body: "Do you really you want to report this review?", + confirmText: "Report", + cancelText: "Nevermind", + // confirmColor: "red", this just adds a class name and breaks the submit button guh + onConfirm: async () => { + if (!(await getToken())) { + return showToast("You must be logged in to report reviews."); + } else { + reportReview(review.id); } - }); - } + } + }); + } - const isAuthorBlocked = Auth?.user?.blockedUsers?.includes(review.sender.discordID) ?? false; + const isAuthorBlocked = Auth?.user?.blockedUsers?.includes(review.sender.discordID) ?? false; - function blockReviewSender() { - if (isAuthorBlocked) - return unblockUser(review.sender.discordID); + function blockReviewSender() { + if (isAuthorBlocked) + return unblockUser(review.sender.discordID); - Alerts.show({ - title: "Are you sure?", - body: "Do you really you want to block this user? They will be unable to leave further reviews on your profile. You can unblock users in the plugin settings.", - confirmText: "Block", - cancelText: "Nevermind", - // confirmColor: "red", this just adds a class name and breaks the submit button guh - onConfirm: async () => { - if (!(await getToken())) { - return showToast("You must be logged in to block users."); - } else { - blockUser(review.sender.discordID); - } + Alerts.show({ + title: "Are you sure?", + body: "Do you really you want to block this user? They will be unable to leave further reviews on your profile. You can unblock users in the plugin settings.", + confirmText: "Block", + cancelText: "Nevermind", + // confirmColor: "red", this just adds a class name and breaks the submit button guh + onConfirm: async () => { + if (!(await getToken())) { + return showToast("You must be logged in to block users."); + } else { + blockUser(review.sender.discordID); } - }); - } + } + }); + } - return ( -