jitsi-roomsv2/frontend/src/components/sidebar/useSidebarVisibility.ts
open-schnick 1aa7914289
All checks were successful
continuous-integration/drone/push Build is passing
add prettier and reformat project
2023-04-10 23:36:24 +02:00

28 lines
1 KiB
TypeScript

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