This commit is contained in:
ISA
2025-05-26 11:12:45 +02:00
parent c8d7fbe434
commit 03a1f480e0
20 changed files with 87 additions and 86 deletions

View File

@@ -0,0 +1,56 @@
// redux/slices/database/polylines/polylineContextMenuSlice.js
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
isOpen: false,
position: null,
forceClose: false,
timerStart: null,
countdown: 20,
countdownActive: false, // **Neu: Redux merkt, ob der Timer aktiv ist**
};
const polylineContextMenuSlice = createSlice({
name: "polylineContextMenu",
initialState,
reducers: {
openPolylineContextMenu: (state, action) => {
state.isOpen = true;
state.position = { lat: action.payload.position.lat, lng: action.payload.position.lng };
state.forceClose = false;
state.timerStart = Date.now();
state.countdown = 20;
state.countdownActive = true; // **Timer aktiv setzen**
},
closePolylineContextMenu: (state) => {
state.isOpen = false;
state.position = null;
state.timerStart = null;
state.countdown = 0;
state.countdownActive = false; // **Timer stoppen**
},
updateCountdown: (state) => {
if (state.timerStart && state.countdownActive) {
const elapsedTime = (Date.now() - state.timerStart) / 1000;
state.countdown = Math.max(20 - elapsedTime, 0);
if (state.countdown <= 2) {
state.isOpen = false;
state.position = null;
state.countdownActive = false;
}
}
},
forceCloseContextMenu: (state) => {
state.isOpen = false;
state.position = null;
state.forceClose = true;
state.timerStart = null;
state.countdown = 0;
state.countdownActive = false;
},
},
});
export const { openPolylineContextMenu, closePolylineContextMenu, updateCountdown, forceCloseContextMenu } = polylineContextMenuSlice.actions;
export default polylineContextMenuSlice.reducer;

View File

@@ -0,0 +1,22 @@
// redux/slices/database/polylines/polylineEventsDisabledSlice.js
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
disabled: false,
};
const polylineEventsDisabledSlice = createSlice({
name: "polylineEventsDisabled",
initialState,
reducers: {
setDisabled: (state, action) => {
state.disabled = action.payload;
},
toggleDisabled: (state) => {
state.disabled = !state.disabled;
},
},
});
export const { setDisabled, toggleDisabled } = polylineEventsDisabledSlice.actions;
export default polylineEventsDisabledSlice.reducer;

View File

@@ -0,0 +1,21 @@
// /redux/slices/database7polylines/polylineLayerVisibleSlice.js
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
visible: false, // oder Standardwert
};
const polylineLayerVisibleSlice = createSlice({
name: "polylineLayerVisible",
initialState,
reducers: {
setPolylineVisible: (state, action) => {
state.visible = action.payload;
localStorage.setItem("polylineVisible", action.payload);
},
},
});
export const { setPolylineVisible } = polylineLayerVisibleSlice.actions;
export const selectPolylineVisible = (state) => state.polylineLayerVisible.visible;
export default polylineLayerVisibleSlice.reducer;