jitsi-roomsv2/frontend/src/components/sidebar/useSidebarVisibility.ts

29 lines
1 KiB
TypeScript
Raw Normal View History

2023-01-07 19:06:04 +01:00
import { useCallback, useState } from "react";
export type sidebarVisibilityOptions = "full" | "small" | "hidden";
function useSidebarVisibility() {
const [sidebarVisibility, setSideBarVisibility] =
useState<sidebarVisibilityOptions>("full");
const sidebarToggleText = getSidebarToggleText(sidebarVisibility);
const toggleSidebarVisibility = useCallback(() => {
2023-01-10 19:00:20 +01:00
if (sidebarVisibility === "full") {
2023-01-07 19:06:04 +01:00
setSideBarVisibility("small");
2023-01-10 19:00:20 +01:00
} else if (sidebarVisibility === "small") {
2023-01-07 19:06:04 +01:00
setSideBarVisibility("hidden");
2023-01-10 19:00:20 +01:00
} else if (sidebarVisibility === "hidden") {
2023-01-07 19:06:04 +01:00
setSideBarVisibility("full");
}
}, [setSideBarVisibility, sidebarVisibility, sidebarToggleText]);
return { sidebarVisibility, toggleSidebarVisibility, sidebarToggleText };
}
const getSidebarToggleText = (sidebarVisibility: sidebarVisibilityOptions) => {
if (sidebarVisibility === "full") return "<-";
if (sidebarVisibility === "small") return "<-";
if (sidebarVisibility === "hidden") return "->";
};
export default useSidebarVisibility;