feat: Toggle "Admin anmelden" to "Admin abmelden" based on admin login status
- Implemented dynamic button label in SettingsModal to display "Admin anmelden" or "Admin abmelden" based on Redux state `isAdminLoggedIn`. - Added `handleAdminLogout` function to clear token from localStorage and update Redux state when admin logs out. - Refactored button click handling to toggle login/logout functionality seamlessly.
This commit is contained in:
@@ -29,6 +29,7 @@ function generateToken(user) {
|
||||
}
|
||||
|
||||
function SettingModal({ showModal, onClose }) {
|
||||
const isAdminLoggedIn = useSelector((state) => state.auth.isAdminLoggedIn);
|
||||
const dispatch = useDispatch();
|
||||
const [username, setUsername] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
@@ -47,7 +48,6 @@ function SettingModal({ showModal, onClose }) {
|
||||
const token = generateToken(user);
|
||||
localStorage.setItem("token", token);
|
||||
dispatch(setAdminLoggedIn(true));
|
||||
setIsLoggedIn(true);
|
||||
setShowLoginForm(false);
|
||||
onClose();
|
||||
} else {
|
||||
@@ -94,6 +94,10 @@ function SettingModal({ showModal, onClose }) {
|
||||
ntpTimezone,
|
||||
active,
|
||||
};
|
||||
const handleAdminLogout = () => {
|
||||
localStorage.removeItem("token"); // Remove token on logout
|
||||
dispatch(setAdminLoggedIn(false)); // Update Redux state
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (showModal) {
|
||||
@@ -378,10 +382,14 @@ function SettingModal({ showModal, onClose }) {
|
||||
Neustart CPL
|
||||
</button>
|
||||
<button
|
||||
onClick={() => setShowLoginForm(true)}
|
||||
onClick={() => {
|
||||
isAdminLoggedIn
|
||||
? handleAdminLogout()
|
||||
: setShowLoginForm(true);
|
||||
}}
|
||||
className="bg-littwin-blue text-white px-4 py-2 rounded"
|
||||
>
|
||||
Admin anmelden
|
||||
{isAdminLoggedIn ? "Admin abmelden" : "Admin anmelden"}
|
||||
</button>
|
||||
<button
|
||||
className="bg-littwin-blue text-white px-4 py-2 rounded"
|
||||
|
||||
Reference in New Issue
Block a user