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 = { 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 { widgetInfo, widgetAction, renderWidget, clickAction, clickActionData, } = props; const WidgetName = await AS.getItem( `widgetType/${widgetInfo.widgetId}` ).catch((e) => "JR_shikoku_train_info"); ToastAndroid.show( `Widget Action: ${JSON.stringify(widgetInfo.widgetId)}`, ToastAndroid.SHORT ); ToastAndroid.show(`Widget Name: ${WidgetName}`, ToastAndroid.SHORT); switch (widgetAction) { case "WIDGET_ADDED": case "WIDGET_UPDATE": case "WIDGET_CLICK": case "WIDGET_RESIZED": switch (WidgetName) { case "JR_shikoku_train_info": { const { time, delayString } = await getDelayData(); renderWidget( ); break; } case "Info_Widget": { const { time, text } = await getInfoString(); renderWidget(); break; } default: { const { time, delayString } = await getDelayData(); renderWidget( ); break; } } break; case "WIDGET_DELETED": AS.removeItem(`widgetType/${widgetInfo.widgetId}`); break; default: break; } }