jitsi-roomsv2/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(() => {
if (sidebarVisibility == "full") {
setSideBarVisibility("small");
} else if (sidebarVisibility == "small") {
setSideBarVisibility("hidden");
} else if (sidebarVisibility == "hidden") {
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;