feat: TDR-Umschalter mit Admin-Login-Schutz versehen

- Der Schalter zum Aktivieren/Deaktivieren der TDR-Funktion ist nun nur für Admins sichtbar.
- Umsetzung über `useAdminAuth` analog zum Firmware-Update-Button.
- CHANGELOG.md und README.md entsprechend aktualisiert.
This commit is contained in:
ISA
2025-05-13 13:39:11 +02:00
parent 0096f65273
commit 0fdd7b1495
5 changed files with 41 additions and 24 deletions

View File

@@ -9,12 +9,15 @@ import React, { useState, useEffect } from "react";
import { useSelector } from "react-redux";
import { RootState } from "../../../../../redux/store";
import { useAdminAuth } from "../../../settingsPageComponents/hooks/useAdminAuth";
interface Props {
slot: number;
onClose?: () => void; // ← NEU
}
export default function TdrEinstellung({ slot, onClose }: Props) {
const { isAdminLoggedIn } = useAdminAuth(true);
const tdrSlice = useSelector((state: RootState) => state.kueDataSlice);
const cacheKey = `slot_${slot}`;
@@ -162,29 +165,31 @@ export default function TdrEinstellung({ slot, onClose }: Props) {
return (
<div className="p-4 text-sm">
{/* TDR-Funktion */}
<div className="mb-4 mt-4 grid grid-cols-3 items-center gap-2 w-full">
<span className="text-sm font-medium">TDR-Funktion:</span>
<div className="col-span-2 flex items-center gap-4">
<button
type="button"
role="switch"
aria-checked={tdrActive}
onClick={handleTdrToggle}
className={`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 ${
tdrActive ? "bg-littwin-blue" : "bg-gray-300"
}`}
>
<span
className={`inline-block h-4 w-4 transform rounded-full bg-white transition-transform duration-200 ${
tdrActive ? "translate-x-6" : "translate-x-1"
{isAdminLoggedIn && (
<div className="mb-4 mt-4 grid grid-cols-3 items-center gap-2 w-full">
<span className="text-sm font-medium">TDR-Funktion:</span>
<div className="col-span-2 flex items-center gap-4">
<button
type="button"
role="switch"
aria-checked={tdrActive}
onClick={handleTdrToggle}
className={`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 ${
tdrActive ? "bg-littwin-blue" : "bg-gray-300"
}`}
/>
</button>
<span className="text-sm text-gray-600">
{tdrActive ? "aktiviert" : "deaktiviert"}
</span>
>
<span
className={`inline-block h-4 w-4 transform rounded-full bg-white transition-transform duration-200 ${
tdrActive ? "translate-x-6" : "translate-x-1"
}`}
/>
</button>
<span className="text-sm text-gray-600">
{tdrActive ? "aktiviert" : "deaktiviert"}
</span>
</div>
</div>
</div>
)}
<div className="mt-6 mb-4">
<div className="mb-4 grid grid-cols-3 items-center gap-2 w-full">