2023-09-05 16:44:38 +03:00
|
|
|
import { useHotkeys } from 'react-hotkeys-hook';
|
|
|
|
|
2023-09-05 13:49:16 +03:00
|
|
|
import openCompose from '../utils/open-compose';
|
2024-03-27 16:22:47 +03:00
|
|
|
import openOSK from '../utils/open-osk';
|
2023-09-05 13:49:16 +03:00
|
|
|
import states from '../utils/states';
|
|
|
|
|
|
|
|
import Icon from './icon';
|
|
|
|
|
|
|
|
export default function ComposeButton() {
|
2023-09-05 16:44:38 +03:00
|
|
|
function handleButton(e) {
|
|
|
|
if (e.shiftKey) {
|
|
|
|
const newWin = openCompose();
|
|
|
|
|
|
|
|
if (!newWin) {
|
|
|
|
states.showCompose = true;
|
|
|
|
}
|
|
|
|
} else {
|
2024-03-27 16:22:47 +03:00
|
|
|
openOSK();
|
2023-09-05 16:44:38 +03:00
|
|
|
states.showCompose = true;
|
|
|
|
}
|
|
|
|
}
|
2023-09-05 13:49:16 +03:00
|
|
|
|
2023-09-05 16:44:38 +03:00
|
|
|
useHotkeys('c, shift+c', handleButton, {
|
|
|
|
ignoreEventWhen: (e) => {
|
|
|
|
const hasModal = !!document.querySelector('#modal-container > *');
|
|
|
|
return hasModal;
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
return (
|
|
|
|
<button type="button" id="compose-button" onClick={handleButton}>
|
2023-09-05 13:49:16 +03:00
|
|
|
<Icon icon="quill" size="xl" alt="Compose" />
|
|
|
|
</button>
|
|
|
|
);
|
|
|
|
}
|