AB
https://pastebin.com/MVrEniR1
Проблема в чем. Контекст канваса генерится в эффекте, то есть функции-обработчики событий с мыши не могут забрать переменную ctx. В стейт хуков контекст не положить. Как сделать так, чтобы канвас генерился и потом с ним можно было спокойно работать в функциях вне useEffect'a?
P.S. Вызывать внутри юзэффекта с передачей внутрь переменной? Но тогда не получится использовать события с элемента.