From 0018b8e9576373fbae2c39e3bd8fdebbbf9e6654 Mon Sep 17 00:00:00 2001
From: AAGaming <aa@mail.catvibers.me>
Date: Wed, 17 Aug 2022 20:03:45 -0400
Subject: bump lib and add temporary shims for webpack v5

---
 frontend/src/index.tsx | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

(limited to 'frontend/src/index.tsx')

diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx
index b6c4e3aa..96c3306c 100644
--- a/frontend/src/index.tsx
+++ b/frontend/src/index.tsx
@@ -1,3 +1,6 @@
+import { ButtonItem, CommonUIModule, webpackCache } from 'decky-frontend-lib';
+import { forwardRef } from 'react';
+
 import PluginLoader from './plugin-loader';
 import { DeckyUpdater } from './updater';
 
@@ -9,8 +12,31 @@ declare global {
     syncDeckyPlugins: Function;
     deckyHasLoaded: boolean;
     deckyAuthToken: string;
+    webpackJsonp: any;
   }
 }
+
+// HACK to fix plugins using webpack v4 push
+
+const v4Cache = {};
+for (let m of Object.keys(webpackCache)) {
+  v4Cache[m] = { exports: webpackCache[m] };
+}
+
+if (!window.webpackJsonp || window.webpackJsonp.deckyShimmed) {
+  window.webpackJsonp = {
+    deckyShimmed: true,
+    push: (mod: any): any => {
+      if (mod[1].get_require) return { c: v4Cache };
+    },
+  };
+}
+CommonUIModule.__deckyButtonItemShim = forwardRef((props: any, ref: any) => {
+  // tricks the old filter into working
+  const dummy = `childrenContainerWidth:"min"`;
+  return <ButtonItem ref={ref} _shim={dummy} {...props} />;
+});
+
 (async () => {
   window.deckyHasLoaded = true;
   window.deckyAuthToken = await fetch('http://127.0.0.1:1337/auth/token').then((r) => r.text());
-- 
cgit v1.2.3

