import React from "react"; import { TraInfoEXWidget } from "./TraInfoEXWidget"; import dayjs from "dayjs"; import { ToastAndroid } from "react-native"; import { InfoWidget } from "./InfoWidget"; import { AS } from "../../storageControl"; export const nameToWidget = { // Hello will be the **name** with which we will reference our widget. JR_shikoku_train_info: TraInfoEXWidget, Info_Widget: InfoWidget, }; export const getInfoString = async () => { // Fetch data from the server const time = dayjs().format("HH:mm"); const text = await fetch( "https://script.google.com/macros/s/AKfycbz80LcaEUrhnlEsLkJy0LG2IRO3DBVQhfNmN1d_0f_HvtsujNQpxM90SrV9yKWH_JG1Ww/exec" ) .then((response) => response.text()) .then((data) => { if (data !== "") { return data.split("^"); } return null; }); ToastAndroid.show(`${text}`, ToastAndroid.SHORT); return { time, text }; }; export const getDelayData = async () => { // Fetch data from the server const time = dayjs().format("HH:mm"); const delayString = await fetch( "https://script.google.com/macros/s/AKfycbyKxch7z7l8e07LXulRHqxjVoIiB13kcgvoToLE-rqlxLmLSKdlmqz0FI1F2EuA7Zfg/exec" ) .then((response) => response.text()) .then((data) => { if (data !== "") { return data.split("^"); } return null; }); ToastAndroid.show(`${delayString}`, ToastAndroid.SHORT); return { time, delayString }; }; export async function widgetTaskHandler(props) { const WidgetName = await AS.getItem( `widgetType/${props.widgetInfo.widgetId}` ).catch((e) => "JR_shikoku_train_info"); ToastAndroid.show( `Widget Action: ${JSON.stringify(props.widgetInfo.widgetId)}`, ToastAndroid.SHORT ); ToastAndroid.show(`Widget Name: ${WidgetName}`, ToastAndroid.SHORT); switch (props.widgetAction) { case "WIDGET_ADDED": case "WIDGET_UPDATE": case "WIDGET_CLICK": case "WIDGET_RESIZED": // Not needed for now if (WidgetName === "JR_shikoku_train_info") { const Widget = nameToWidget[WidgetName]; const { time, delayString } = await getDelayData(); props.renderWidget(); } else if (WidgetName === "Info_Widget") { const Widget = nameToWidget[WidgetName]; const { time, text } = await getInfoString(); props.renderWidget(); } break; case "WIDGET_DELETED": // Not needed for now break; default: break; } }