diff --git a/src/Components/Modal/index.js b/src/Components/Modal/index.js
index 38aa2bb..deef790 100644
--- a/src/Components/Modal/index.js
+++ b/src/Components/Modal/index.js
@@ -47,7 +47,9 @@ export default function MyModal({
closeModal()}
transparent
>
@@ -72,7 +74,7 @@ export default function MyModal({
);
}
-export function MyPickerDefaultHeader({ title, closeModal }) {
+export function MyDefaultModalHeader({ title, closeModal }) {
const appContext = useContext(AppContext);
return (
diff --git a/src/Screens/Device/modals/AddSceneAction/LayerSelection/index.js b/src/Screens/Device/modals/AddSceneAction/LayerSelection/index.js
index 6930f20..980a3be 100644
--- a/src/Screens/Device/modals/AddSceneAction/LayerSelection/index.js
+++ b/src/Screens/Device/modals/AddSceneAction/LayerSelection/index.js
@@ -75,7 +75,7 @@ export default function LayerSelectionModalContent({
title={"Hinzufügen"}
style={{ marginTop: 20, width: 180 }}
disabled={selectedLayer.length === 0}
- onPress={() => openLayersActionEditModal()}
+ onPress={openLayersActionEditModal}
/>
>
diff --git a/src/Screens/Device/scene.js b/src/Screens/Device/scene.js
index 7916ab9..bfc475a 100644
--- a/src/Screens/Device/scene.js
+++ b/src/Screens/Device/scene.js
@@ -1,11 +1,16 @@
-import { FlatList, Text, TouchableOpacity, View } from "react-native";
+import {
+ FlatList,
+ Text,
+ TouchableHighlight,
+ TouchableOpacity,
+ View,
+} from "react-native";
import Card from "../../Components/Card";
-import { AppContext, AppStyles, DevDeviceId } from "../../utils";
+import { AppContext, AppStyles, DevDeviceId, IsPlatformIos } from "../../utils";
import { useContext, useState } from "react";
-import { useTranslation } from "react-i18next";
import MyDropdown from "../../Components/Dropdown";
import MyIcon from "../../Components/Icon";
-import MyModal, { MyPickerDefaultHeader } from "../../Components/Modal";
+import MyModal, { MyDefaultModalHeader } from "../../Components/Modal";
import CreateSceneModalContent from "./modals/ChooseScene/CreateScene";
import ChooseSceneModalContent from "./modals/ChooseScene";
import AddSceneActionModalContent from "./modals/AddSceneAction";
@@ -46,14 +51,11 @@ export default function SceneView() {
modalLayersActionEditIsOpen: false,
});
- const setModalOpen = (modalName, open) => {
- console.log("setModalOpen", modalName, open);
-
+ const setModalOpen = (modalName, open) =>
setModalOpenStates((prevState) => ({
...prevState,
[modalName]: open,
}));
- };
const device = appContext.devices.find((device) => device.id === DevDeviceId);
@@ -61,12 +63,36 @@ export default function SceneView() {
(scene) => scene.id === device.selectedScene
);
- const closeChooseSceneModals = () => {
+ const closeChooseSceneModals = () =>
setModalOpenStates((prevState) => ({
...prevState,
modalChooseSceneIsOpen: false,
modalCreateSceneIsOpen: false,
}));
+
+ const openLayersActionEditModal = () => {
+ setModalOpenStates((prevState) => ({
+ ...prevState,
+ modalChooseSceneIsOpen: false,
+ modalCreateSceneIsOpen: false,
+ modalAddSceneActionIsOpen: false,
+ modalLayerSectionIsOpen: false,
+ }));
+
+ // setTimeout is needed, otherwise the modal would not open on iOS
+ IsPlatformIos()
+ ? setTimeout(
+ () =>
+ setModalOpenStates((prevState) => ({
+ ...prevState,
+ modalLayersActionEditIsOpen: true,
+ })),
+ 600
+ )
+ : setModalOpenStates((prevState) => ({
+ ...prevState,
+ modalLayersActionEditIsOpen: true,
+ }));
};
const actionColor =
@@ -79,10 +105,7 @@ export default function SceneView() {
{
- console.log("pressed");
- setModalOpen("modalChooseSceneIsOpen", true);
- }}
+ onPress={() => setModalOpen("modalChooseSceneIsOpen", true)}
selectedItemLabel={
device.selectedScene === 0
? "Keine Szene ausgewählt"
@@ -91,6 +114,7 @@ export default function SceneView() {
}
/>
+
{device.selectedScene === 0 ? (
) : (
@@ -104,7 +128,24 @@ export default function SceneView() {
keyExtractor={(item) => item.id}
renderItem={({ item }) => (
- {item.name}
+
+ {item.name}
+
+ setModalOpenStates((prevState) => ({
+ ...prevState,
+ modalLayersActionEditIsOpen: true,
+ }))
+ }
+ >
+
+
+
)}
/>
@@ -138,7 +179,7 @@ export default function SceneView() {
isOpen={modalOpenStates.modalChooseSceneIsOpen}
closeModal={() => setModalOpen("modalChooseSceneIsOpen", false)}
header={
- setModalOpen("modalChooseSceneIsOpen", false)}
/>
@@ -155,7 +196,7 @@ export default function SceneView() {
isOpen={modalOpenStates.modalCreateSceneIsOpen}
closeModal={() => setModalOpen("modalCreateSceneIsOpen", false)}
header={
- setModalOpen("modalCreateSceneIsOpen", false)}
/>
@@ -173,7 +214,7 @@ export default function SceneView() {
isOpen={modalOpenStates.modalAddSceneActionIsOpen}
closeModal={() => setModalOpen("modalAddSceneActionIsOpen", false)}
header={
- setModalOpen("modalAddSceneActionIsOpen", false)}
/>
@@ -191,37 +232,33 @@ export default function SceneView() {
isOpen={modalOpenStates.modalLayerSectionIsOpen}
closeModal={() => setModalOpen("modalLayerSectionIsOpen", false)}
header={
- setModalOpen("modalLayerSectionIsOpen", false)}
/>
}
content={
- setModalOpen("modalLayersActionEditIsOpen", true)
- }
+ openLayersActionEditModal={() => openLayersActionEditModal()}
/>
}
- >
-
+
+
+ setModalOpen("modalLayersActionEditIsOpen", false)}
+ header={
+
setModalOpen("modalLayersActionEditIsOpen", false)
}
- header={
-
- setModalOpen("modalLayersActionEditIsOpen", false)
- }
- />
- }
- content={}
/>
-
-
+ }
+ content={}
+ />
>
);
}