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();