diff --git a/components/Settings/WidgetSettings.js b/components/Settings/WidgetSettings.js
index 20077d3..c4fb501 100644
--- a/components/Settings/WidgetSettings.js
+++ b/components/Settings/WidgetSettings.js
@@ -12,25 +12,21 @@ import { ListItem } from "native-base";
export const WidgetSettings = ({ navigate }) => {
const { JR_shikoku_train_info, Info_Widget } = nameToWidget;
+ const [time, setTime] = useState();
+ const [delayString, setDelayString] = useState();
+ const [trainInfo, setTrainInfo] = useState();
const [widgetList, setWidgetList] = useState([]);
- useEffect(() => {
+ const reload = async () => {
const d = [];
- Object.keys(nameToWidget).forEach((element) => {
- const widgetInfo = getWidgetInfo(element);
- widgetInfo.then((s) => {
- if (s.length > 0) {
- s.forEach((elem) => {
- console.log(elem);
- d.push(elem);
- });
- }
- });
+ const data = await getWidgetInfo("JR_shikoku_train_info");
+ data.forEach((elem) => {
+ d.push(elem.widgetId);
});
setWidgetList(d);
- }, []);
- const [time, setTime] = useState(time);
- const [delayString, setDelayString] = useState(delayString);
- const [trainInfo, setTrainInfo] = useState();
+ };
+
+ useEffect(reload, []);
+
useEffect(() => {
getDelayData().then(({ time, delayString }) => {
setTime(time);
@@ -144,48 +140,9 @@ export const WidgetSettings = ({ navigate }) => {
名前
- {widgetList.map((widget) => {
- return (
- {
- //widget.widgetNameで定義されてないもう一つのウィジェットを選択する
- if (widget.widgetName === "Info_Widget") {
- AS.setItem(
- `widgetType/${widget.widgetId}`,
- "JR_shikoku_train_info"
- );
- } else {
- AS.setItem(`widgetType/${widget.widgetId}`, "Info_Widget");
- }
- }}
- >
-
- {widget.widgetId}
-
-
- {widget.widgetName}
-
-
- );
- })}
+ {widgetList.map((id) => (
+
+ ))}
(
/>
);
+const WidgetList = ({ id }) => {
+ const [widgetConfig, setWidgetConfig] = useState("");
+ const reload = () => {
+ AS.getItem(`widgetType/${id}`)
+ .then((widgetType) => {
+ setWidgetConfig(widgetType);
+ })
+ .catch((e) => {
+ setWidgetConfig("JR_shikoku_train_info");
+ });
+ };
+ useEffect(reload, [id]);
+ return (
+ {
+ //widget.widgetNameで定義されてないもう一つのウィジェットを選択する
+ if (widgetConfig === "Info_Widget") {
+ AS.setItem(`widgetType/${id}`, "JR_shikoku_train_info");
+ } else {
+ AS.setItem(`widgetType/${id}`, "Info_Widget");
+ }
+ reload();
+ }}
+ >
+
+ {id}
+
+
+ {widgetConfig}
+
+
+ );
+};