Telegram Web K with changes to work inside I2P
https://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.1 KiB
33 lines
1.1 KiB
import { cancelEvent, CLICK_EVENT_NAME } from "../helpers/dom"; |
|
import ButtonIcon from "./buttonIcon"; |
|
import ButtonMenu, { ButtonMenuItemOptions } from "./buttonMenu"; |
|
import { closeBtnMenu, openBtnMenu } from "./misc"; |
|
|
|
const ButtonMenuToggle = (options: Partial<{noRipple: true, onlyMobile: true}> = {}, direction: 'bottom-left', buttons: ButtonMenuItemOptions[]) => { |
|
const button = ButtonIcon('more btn-menu-toggle', options); |
|
const btnMenu = ButtonMenu(buttons); |
|
btnMenu.classList.add(direction); |
|
ButtonMenuToggleHandler(button); |
|
button.append(btnMenu); |
|
return button; |
|
}; |
|
|
|
const ButtonMenuToggleHandler = (el: HTMLElement) => { |
|
(el as HTMLElement).addEventListener(CLICK_EVENT_NAME, (e) => { |
|
//console.log('click pageIm'); |
|
if(!el.classList.contains('btn-menu-toggle')) return false; |
|
|
|
//window.removeEventListener('mousemove', onMouseMove); |
|
const openedMenu = el.querySelector('.btn-menu') as HTMLDivElement; |
|
cancelEvent(e); |
|
|
|
if(el.classList.contains('menu-open')) { |
|
closeBtnMenu(); |
|
} else { |
|
openBtnMenu(openedMenu); |
|
} |
|
}); |
|
}; |
|
|
|
export { ButtonMenuToggleHandler }; |
|
export default ButtonMenuToggle; |