Merge remote-tracking branch 'upstream/main'

This commit is contained in:
thororen1234 2024-08-03 17:13:52 +00:00
commit 283ede5c7f
4 changed files with 20 additions and 97 deletions

View file

@ -16,9 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import ErrorBoundary from "@components/ErrorBoundary";
import { Logger } from "@utils/Logger";
import { Channel, Message } from "discord-types/general";
import type { ComponentType, MouseEventHandler, ReactElement } from "react";
import type { ComponentType, MouseEventHandler } from "react";
const logger = new Logger("MessagePopover");
@ -48,22 +49,26 @@ export function removeButton(identifier: string) {
}
export function _buildPopoverElements(
msg: Message,
PopoverButton: ComponentType<ButtonItem>,
Component: React.ComponentType<ButtonItem>,
message: Message
) {
const items = [] as ReactElement[];
const items: React.ReactNode[] = [];
for (const [identifier, getItem] of buttons.entries()) {
try {
const item = getItem(msg);
const item = getItem(message);
if (item) {
item.key ??= identifier;
items.push(<PopoverButton {...item} />);
items.push(
<ErrorBoundary noop>
<Component {...item} />
</ErrorBoundary>
);
}
} catch (err) {
logger.error(`[${identifier}]`, err);
}
}
return items;
return <>{items}</>;
}