From 007860f8f771a7ee62b1c384fbe4f741528a75d5 Mon Sep 17 00:00:00 2001
From: AAGaming <aagaming00@protonmail.com>
Date: Mon, 30 May 2022 14:26:54 -0400
Subject: react: Add Router hook & fix typescript issues (#68)

* add rollup watch command, add pnpm lockfile

* wait for react

* add WIP patcher, window hook, and webpack

* fix typescript, fix React, lint, add pnpm to gitignore

* actually fix react

* show frontend JS errors in console

* cleanup

* Add Router hook

* Remove console.log

* Expose routerHook in createPluginAPI

Co-authored-by: Jonas Dellinger <jonas@dellinger.dev>
---
 frontend/src/plugin-loader.tsx | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'frontend/src/plugin-loader.tsx')

diff --git a/frontend/src/plugin-loader.tsx b/frontend/src/plugin-loader.tsx
index ddb92542..fc1f57e9 100644
--- a/frontend/src/plugin-loader.tsx
+++ b/frontend/src/plugin-loader.tsx
@@ -6,6 +6,7 @@ import PluginView from './components/PluginView';
 import TitleView from './components/TitleView';
 import Logger from './logger';
 import { Plugin } from './plugin';
+import RouterHook from './router-hook';
 import TabsHook from './tabs-hook';
 
 declare global {
@@ -15,6 +16,8 @@ declare global {
 class PluginLoader extends Logger {
   private plugins: Plugin[] = [];
   private tabsHook: TabsHook = new TabsHook();
+  // private windowHook: WindowHook = new WindowHook();
+  private routerHook: RouterHook = new RouterHook();
   private deckyState: DeckyState = new DeckyState();
 
   constructor() {
@@ -81,6 +84,7 @@ class PluginLoader extends Logger {
 
   static createPluginAPI(pluginName: string) {
     return {
+      routerHook: this.routerHook,
       async callServerMethod(methodName: string, args = {}) {
         const response = await fetch(`http://127.0.0.1:1337/methods/${methodName}`, {
           method: 'POST',
-- 
cgit v1.2.3

