matrix-moderation-widget

A widget for moderating with mjolnir. Highly WIP. Use at your own risk!
git clone git://archive.git.mtrnord.blog/MTRNord/matrix-moderation-widget.git
Log | Files | Refs | README | LICENSE

index.tsx (2400B)


      1 import React from 'react';
      2 import { createRoot } from 'react-dom/client';
      3 import './index.css';
      4 import App from './components/App';
      5 import reportWebVitals from './reportWebVitals';
      6 import { WidgetApi } from 'matrix-widget-api';
      7 import {
      8   CANONICAL_ALIAS,
      9   DEV_NORDGEDANKEN_MJOLNIR_BANLISTS,
     10   M_POLICY_RULE_ROOM,
     11   M_POLICY_RULE_ROOM_ALT,
     12   M_POLICY_RULE_ROOM_OLD,
     13   M_POLICY_RULE_SERVER,
     14   M_POLICY_RULE_SERVER_ALT,
     15   M_POLICY_RULE_SERVER_OLD,
     16   M_POLICY_RULE_USER,
     17   M_POLICY_RULE_USER_ALT,
     18   M_POLICY_RULE_USER_OLD,
     19   M_ROOM_MEMBER,
     20   M_TEXT,
     21   ORG_MATRIX_MJOLNIR_SHORTCODE,
     22 } from './windowExt';
     23 
     24 const urlParams = (new URL(window.location.href)).searchParams;
     25 const widgetId = urlParams.get("widgetId") ?? undefined;
     26 window.widget_api = new WidgetApi(widgetId);
     27 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_USER);
     28 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_SERVER);
     29 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_ROOM);
     30 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_USER_OLD);
     31 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_SERVER_OLD);
     32 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_ROOM_OLD);
     33 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_USER_ALT);
     34 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_SERVER_ALT);
     35 window.widget_api.requestCapabilityToReceiveState(M_POLICY_RULE_ROOM_ALT);
     36 window.widget_api.requestCapabilityToReceiveState(CANONICAL_ALIAS);
     37 window.widget_api.requestCapabilityToReceiveState(ORG_MATRIX_MJOLNIR_SHORTCODE);
     38 window.widget_api.requestCapabilityToSendMessage(M_TEXT);
     39 window.widget_api.requestCapabilityToReceiveState(M_ROOM_MEMBER);
     40 window.widget_api.requestCapabilityToReceiveState(DEV_NORDGEDANKEN_MJOLNIR_BANLISTS);
     41 // TODO maybe figure out the proper way later
     42 window.widget_api.requestCapabilityForRoomTimeline("*");
     43 
     44 window.widget_api.on(`ready`, () => {
     45   const container = document.querySelector('#root');
     46   const root = createRoot(container!);
     47   root.render(
     48     <React.StrictMode>
     49       <App />
     50     </React.StrictMode>,
     51   );
     52 });
     53 
     54 // Start the messaging
     55 window.widget_api.start();
     56 
     57 // If you want to start measuring performance in your app, pass a function
     58 // to log results (for example: reportWebVitals(console.log))
     59 // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
     60 reportWebVitals();