mirror of
https://github.com/zadam/trilium.git
synced 2025-12-13 10:54:25 +01:00
34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
import { useState } from "preact/hooks";
|
|
import protected_session_holder from "../../services/protected_session_holder";
|
|
import { LaunchBarActionButton } from "./launch_bar_widgets";
|
|
import { useTriliumEvent } from "../react/hooks";
|
|
import { t } from "../../services/i18n";
|
|
|
|
export default function ProtectedSessionStatusWidget() {
|
|
const protectedSessionAvailable = useProtectedSessionAvailable();
|
|
|
|
return (
|
|
protectedSessionAvailable ? (
|
|
<LaunchBarActionButton
|
|
icon="bx bx-check-shield"
|
|
text={t("protected_session_status.active")}
|
|
triggerCommand="leaveProtectedSession"
|
|
/>
|
|
) : (
|
|
<LaunchBarActionButton
|
|
icon="bx bx-shield-quarter"
|
|
text={t("protected_session_status.inactive")}
|
|
triggerCommand="enterProtectedSession"
|
|
/>
|
|
)
|
|
)
|
|
}
|
|
|
|
function useProtectedSessionAvailable() {
|
|
const [ protectedSessionAvailable, setProtectedSessionAvailable ] = useState(protected_session_holder.isProtectedSessionAvailable());
|
|
useTriliumEvent("protectedSessionStarted", () => {
|
|
setProtectedSessionAvailable(protected_session_holder.isProtectedSessionAvailable());
|
|
});
|
|
return protectedSessionAvailable;
|
|
}
|