opening bug on ios
parent
d96311c3d6
commit
e1e784fb0a
|
@ -47,7 +47,9 @@ export default function MyModal({
|
||||||
<View>
|
<View>
|
||||||
<Modal
|
<Modal
|
||||||
visible={isOpen}
|
visible={isOpen}
|
||||||
animationType={disableAnimationForIos ? "none" : "slide"}
|
animationType={
|
||||||
|
disableAnimationForIos && IsPlatformIos() ? "none" : "slide"
|
||||||
|
}
|
||||||
onRequestClose={() => closeModal()}
|
onRequestClose={() => closeModal()}
|
||||||
transparent
|
transparent
|
||||||
>
|
>
|
||||||
|
@ -72,7 +74,7 @@ export default function MyModal({
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function MyPickerDefaultHeader({ title, closeModal }) {
|
export function MyDefaultModalHeader({ title, closeModal }) {
|
||||||
const appContext = useContext(AppContext);
|
const appContext = useContext(AppContext);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -75,7 +75,7 @@ export default function LayerSelectionModalContent({
|
||||||
title={"Hinzufügen"}
|
title={"Hinzufügen"}
|
||||||
style={{ marginTop: 20, width: 180 }}
|
style={{ marginTop: 20, width: 180 }}
|
||||||
disabled={selectedLayer.length === 0}
|
disabled={selectedLayer.length === 0}
|
||||||
onPress={() => openLayersActionEditModal()}
|
onPress={openLayersActionEditModal}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
</>
|
</>
|
||||||
|
|
|
@ -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 Card from "../../Components/Card";
|
||||||
import { AppContext, AppStyles, DevDeviceId } from "../../utils";
|
import { AppContext, AppStyles, DevDeviceId, IsPlatformIos } from "../../utils";
|
||||||
import { useContext, useState } from "react";
|
import { useContext, useState } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
|
||||||
import MyDropdown from "../../Components/Dropdown";
|
import MyDropdown from "../../Components/Dropdown";
|
||||||
import MyIcon from "../../Components/Icon";
|
import MyIcon from "../../Components/Icon";
|
||||||
import MyModal, { MyPickerDefaultHeader } from "../../Components/Modal";
|
import MyModal, { MyDefaultModalHeader } from "../../Components/Modal";
|
||||||
import CreateSceneModalContent from "./modals/ChooseScene/CreateScene";
|
import CreateSceneModalContent from "./modals/ChooseScene/CreateScene";
|
||||||
import ChooseSceneModalContent from "./modals/ChooseScene";
|
import ChooseSceneModalContent from "./modals/ChooseScene";
|
||||||
import AddSceneActionModalContent from "./modals/AddSceneAction";
|
import AddSceneActionModalContent from "./modals/AddSceneAction";
|
||||||
|
@ -46,14 +51,11 @@ export default function SceneView() {
|
||||||
modalLayersActionEditIsOpen: false,
|
modalLayersActionEditIsOpen: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const setModalOpen = (modalName, open) => {
|
const setModalOpen = (modalName, open) =>
|
||||||
console.log("setModalOpen", modalName, open);
|
|
||||||
|
|
||||||
setModalOpenStates((prevState) => ({
|
setModalOpenStates((prevState) => ({
|
||||||
...prevState,
|
...prevState,
|
||||||
[modalName]: open,
|
[modalName]: open,
|
||||||
}));
|
}));
|
||||||
};
|
|
||||||
|
|
||||||
const device = appContext.devices.find((device) => device.id === DevDeviceId);
|
const device = appContext.devices.find((device) => device.id === DevDeviceId);
|
||||||
|
|
||||||
|
@ -61,12 +63,36 @@ export default function SceneView() {
|
||||||
(scene) => scene.id === device.selectedScene
|
(scene) => scene.id === device.selectedScene
|
||||||
);
|
);
|
||||||
|
|
||||||
const closeChooseSceneModals = () => {
|
const closeChooseSceneModals = () =>
|
||||||
setModalOpenStates((prevState) => ({
|
setModalOpenStates((prevState) => ({
|
||||||
...prevState,
|
...prevState,
|
||||||
modalChooseSceneIsOpen: false,
|
modalChooseSceneIsOpen: false,
|
||||||
modalCreateSceneIsOpen: 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 =
|
const actionColor =
|
||||||
|
@ -79,10 +105,7 @@ export default function SceneView() {
|
||||||
<Card>
|
<Card>
|
||||||
<MyDropdown
|
<MyDropdown
|
||||||
label={"Szene"}
|
label={"Szene"}
|
||||||
onPress={() => {
|
onPress={() => setModalOpen("modalChooseSceneIsOpen", true)}
|
||||||
console.log("pressed");
|
|
||||||
setModalOpen("modalChooseSceneIsOpen", true);
|
|
||||||
}}
|
|
||||||
selectedItemLabel={
|
selectedItemLabel={
|
||||||
device.selectedScene === 0
|
device.selectedScene === 0
|
||||||
? "Keine Szene ausgewählt"
|
? "Keine Szene ausgewählt"
|
||||||
|
@ -91,6 +114,7 @@ export default function SceneView() {
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
{device.selectedScene === 0 ? (
|
{device.selectedScene === 0 ? (
|
||||||
<NothingSelected text="Keine Szene ausgewählt" />
|
<NothingSelected text="Keine Szene ausgewählt" />
|
||||||
) : (
|
) : (
|
||||||
|
@ -104,7 +128,24 @@ export default function SceneView() {
|
||||||
keyExtractor={(item) => item.id}
|
keyExtractor={(item) => item.id}
|
||||||
renderItem={({ item }) => (
|
renderItem={({ item }) => (
|
||||||
<Card cardBackgroundColor={appContext.appTheme.colors.primary}>
|
<Card cardBackgroundColor={appContext.appTheme.colors.primary}>
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "row",
|
||||||
|
justifyContent: "space-between",
|
||||||
|
}}
|
||||||
|
>
|
||||||
<Text>{item.name}</Text>
|
<Text>{item.name}</Text>
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={() =>
|
||||||
|
setModalOpenStates((prevState) => ({
|
||||||
|
...prevState,
|
||||||
|
modalLayersActionEditIsOpen: true,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<MyIcon name="pencil" size={24} />
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
</Card>
|
</Card>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
@ -138,7 +179,7 @@ export default function SceneView() {
|
||||||
isOpen={modalOpenStates.modalChooseSceneIsOpen}
|
isOpen={modalOpenStates.modalChooseSceneIsOpen}
|
||||||
closeModal={() => setModalOpen("modalChooseSceneIsOpen", false)}
|
closeModal={() => setModalOpen("modalChooseSceneIsOpen", false)}
|
||||||
header={
|
header={
|
||||||
<MyPickerDefaultHeader
|
<MyDefaultModalHeader
|
||||||
title={"Wähle eine Szene aus"}
|
title={"Wähle eine Szene aus"}
|
||||||
closeModal={() => setModalOpen("modalChooseSceneIsOpen", false)}
|
closeModal={() => setModalOpen("modalChooseSceneIsOpen", false)}
|
||||||
/>
|
/>
|
||||||
|
@ -155,7 +196,7 @@ export default function SceneView() {
|
||||||
isOpen={modalOpenStates.modalCreateSceneIsOpen}
|
isOpen={modalOpenStates.modalCreateSceneIsOpen}
|
||||||
closeModal={() => setModalOpen("modalCreateSceneIsOpen", false)}
|
closeModal={() => setModalOpen("modalCreateSceneIsOpen", false)}
|
||||||
header={
|
header={
|
||||||
<MyPickerDefaultHeader
|
<MyDefaultModalHeader
|
||||||
title={"Szene erstellen"}
|
title={"Szene erstellen"}
|
||||||
closeModal={() => setModalOpen("modalCreateSceneIsOpen", false)}
|
closeModal={() => setModalOpen("modalCreateSceneIsOpen", false)}
|
||||||
/>
|
/>
|
||||||
|
@ -173,7 +214,7 @@ export default function SceneView() {
|
||||||
isOpen={modalOpenStates.modalAddSceneActionIsOpen}
|
isOpen={modalOpenStates.modalAddSceneActionIsOpen}
|
||||||
closeModal={() => setModalOpen("modalAddSceneActionIsOpen", false)}
|
closeModal={() => setModalOpen("modalAddSceneActionIsOpen", false)}
|
||||||
header={
|
header={
|
||||||
<MyPickerDefaultHeader
|
<MyDefaultModalHeader
|
||||||
title={"Aktion hinzufügen"}
|
title={"Aktion hinzufügen"}
|
||||||
closeModal={() => setModalOpen("modalAddSceneActionIsOpen", false)}
|
closeModal={() => setModalOpen("modalAddSceneActionIsOpen", false)}
|
||||||
/>
|
/>
|
||||||
|
@ -191,27 +232,25 @@ export default function SceneView() {
|
||||||
isOpen={modalOpenStates.modalLayerSectionIsOpen}
|
isOpen={modalOpenStates.modalLayerSectionIsOpen}
|
||||||
closeModal={() => setModalOpen("modalLayerSectionIsOpen", false)}
|
closeModal={() => setModalOpen("modalLayerSectionIsOpen", false)}
|
||||||
header={
|
header={
|
||||||
<MyPickerDefaultHeader
|
<MyDefaultModalHeader
|
||||||
title={"Layer auswahl"}
|
title={"Layer auswahl"}
|
||||||
closeModal={() => setModalOpen("modalLayerSectionIsOpen", false)}
|
closeModal={() => setModalOpen("modalLayerSectionIsOpen", false)}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
content={
|
content={
|
||||||
<LayerSelectionModalContent
|
<LayerSelectionModalContent
|
||||||
openLayersActionEditModal={() =>
|
openLayersActionEditModal={() => openLayersActionEditModal()}
|
||||||
setModalOpen("modalLayersActionEditIsOpen", true)
|
|
||||||
}
|
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
>
|
/>
|
||||||
|
</MyModal>
|
||||||
|
|
||||||
<MyModal
|
<MyModal
|
||||||
scrollView
|
scrollView
|
||||||
isOpen={modalOpenStates.modalLayersActionEditIsOpen}
|
isOpen={modalOpenStates.modalLayersActionEditIsOpen}
|
||||||
closeModal={() =>
|
closeModal={() => setModalOpen("modalLayersActionEditIsOpen", false)}
|
||||||
setModalOpen("modalLayersActionEditIsOpen", false)
|
|
||||||
}
|
|
||||||
header={
|
header={
|
||||||
<MyPickerDefaultHeader
|
<MyDefaultModalHeader
|
||||||
title={"Layer Action bearbeiten"}
|
title={"Layer Action bearbeiten"}
|
||||||
closeModal={() =>
|
closeModal={() =>
|
||||||
setModalOpen("modalLayersActionEditIsOpen", false)
|
setModalOpen("modalLayersActionEditIsOpen", false)
|
||||||
|
@ -220,8 +259,6 @@ export default function SceneView() {
|
||||||
}
|
}
|
||||||
content={<LayersActionEditModalContent />}
|
content={<LayersActionEditModalContent />}
|
||||||
/>
|
/>
|
||||||
</MyModal>
|
|
||||||
</MyModal>
|
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue