@@ -10,7 +10,7 @@ import Canvas from "./components/Canvas";
10
10
import Menu from "./components/Menu" ;
11
11
import EraserCursor from "./components/EraserCursor" ;
12
12
import { useRecoilValue , useRecoilState } from "recoil" ;
13
- import { eraserState , cursorPosition , canvasColors } from "./atoms" ;
13
+ import { eraserState , cursorPosition , canvasColors , canvasState } from "./atoms" ;
14
14
15
15
function App ( ) {
16
16
const [ showMenu , setShowMenu ] = useState ( false ) ;
@@ -22,6 +22,7 @@ function App() {
22
22
const [ isDrawing , setIsDrawing ] = useState ( false ) ;
23
23
const [ penColor , setPenColor ] = useState ( "#000000" ) ;
24
24
const canvasColor = useRecoilValue ( canvasColors ) ;
25
+ const [ currentCanvas , setCanvas ] = useRecoilState ( canvasState ) ;
25
26
26
27
function toggleMenu ( ) {
27
28
setShowMenu ( ! showMenu ) ;
@@ -41,7 +42,8 @@ function App() {
41
42
}
42
43
43
44
useEffect ( ( ) => {
44
- const canvas = canvasRef . current ;
45
+ setCanvas ( canvasRef . current ) ;
46
+ const canvas = currentCanvas ;
45
47
if ( canvas ) {
46
48
const context = canvas . getContext ( "2d" ) ;
47
49
canvas . width = canvas . getBoundingClientRect ( ) . width ;
@@ -52,7 +54,8 @@ function App() {
52
54
53
55
useEffect ( ( ) => {
54
56
if ( ! ctx ) return ;
55
- const canvas = canvasRef . current ;
57
+ setCanvas ( canvasRef . current ) ;
58
+ const canvas = currentCanvas ;
56
59
function handleMousemove ( e ) {
57
60
// if eraseMode is set the position of the eraser cursor
58
61
if ( eraserMode ) {
0 commit comments