import { Component } from 'solid-js'; import { MatrixCapabilities, WidgetApi, WidgetApiToWidgetAction, CustomEvent, IVisibilityActionRequest } from 'matrix-widget-api'; import { HopeProvider } from "@hope-ui/solid"; import { BusinessDataProvider } from './businessData'; import { SearchProvider } from './search'; import { PassagesDisplay } from './passagesDisplay'; import { StopsManager } from './stopsManager'; import styles from './App.module.css'; function parseFragment() { const fragmentString = (window.location.hash || "?"); return new URLSearchParams(fragmentString.substring(Math.max(fragmentString.indexOf('?'), 0))); } const App: Component = () => { console.log('App: New'); const qs = parseFragment(); const widgetId = qs.get('widgetId'); const userId = qs.get('userId'); console.log("App: widgetId:" + widgetId); console.log("App: userId:" + userId); const api = new WidgetApi(widgetId); api.requestCapability(MatrixCapabilities.AlwaysOnScreen); api.start(); api.on("ready", function() { console.log("App: widget API is READY !!!!"); }); // Seems to don“t be used... api.on(`action:${WidgetApiToWidgetAction.UpdateVisibility}`, (ev: CustomEvent) => { console.log("App: Visibility change"); ev.preventDefault(); // we're handling it, so stop the widget API from doing something. console.log("App: ", ev.detail); // custom handling here /* api.transport.reply(ev.detail, {}); */ api.transport.reply(ev.detail, {}); }); return (
); }; export default App;