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:
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user