Showing
3 changed files
with
72 additions
and
51 deletions
... | @@ -5,9 +5,9 @@ import styled from "styled-components"; | ... | @@ -5,9 +5,9 @@ import styled from "styled-components"; |
5 | const ToastEditor = dynamic(() => import("components/ToastEditor"), { | 5 | const ToastEditor = dynamic(() => import("components/ToastEditor"), { |
6 | ssr: false, | 6 | ssr: false, |
7 | }); | 7 | }); |
8 | -const Image = () => { | 8 | +const Image = ({ previewURL, setPreviewURL }) => { |
9 | const [file, setFile] = useState(undefined); | 9 | const [file, setFile] = useState(undefined); |
10 | - const [previewURL, setPreviewURL] = useState<string | ArrayBuffer>(""); | 10 | + console.log('previewURL',previewURL) |
11 | 11 | ||
12 | // const uploadImage = (file) => { | 12 | // const uploadImage = (file) => { |
13 | // if (!file) { | 13 | // if (!file) { |
... | @@ -15,32 +15,32 @@ const Image = () => { | ... | @@ -15,32 +15,32 @@ const Image = () => { |
15 | // } | 15 | // } |
16 | // }; | 16 | // }; |
17 | 17 | ||
18 | - const selectImg = (e) => { | 18 | + // const selectImg = (e) => { |
19 | - const reader = new FileReader(); | 19 | + // const reader = new FileReader(); |
20 | - const targetFile = e.target.files[0]; | 20 | + // const targetFile = e.target.files[0]; |
21 | - setFile(targetFile); | 21 | + // setFile(targetFile); |
22 | - // uploadImage(targetFile); | 22 | + // // uploadImage(targetFile); |
23 | 23 | ||
24 | - reader.onloadend = () => { | 24 | + // reader.onloadend = () => { |
25 | - setPreviewURL(reader.result); | 25 | + // setPreviewURL(reader.result); |
26 | - }; | 26 | + // }; |
27 | 27 | ||
28 | - reader.readAsDataURL(targetFile); | 28 | + // reader.readAsDataURL(targetFile); |
29 | - }; | 29 | + // }; |
30 | 30 | ||
31 | - const [isEditorOpened, setIsEditorOpened] = useState(false); | 31 | + // const [isEditorOpened, setIsEditorOpened] = useState(false); |
32 | - const handleEditor = () => { | 32 | + // const handleEditor = () => { |
33 | - setIsEditorOpened(true); | 33 | + // setIsEditorOpened(true); |
34 | - }; | 34 | + // }; |
35 | 35 | ||
36 | return ( | 36 | return ( |
37 | <> | 37 | <> |
38 | <Container> | 38 | <Container> |
39 | <ImgBox> | 39 | <ImgBox> |
40 | - <div onClick={handleEditor}>asdf</div> | 40 | + {/* <div onClick={handleEditor}>asdf</div> */} |
41 | - {file === undefined ? ( | 41 | + {/* {file === undefined ? ( */} |
42 | <> | 42 | <> |
43 | - <div className="sub-flex"> | 43 | + {/* <div className="sub-flex"> |
44 | <BlankBox /> | 44 | <BlankBox /> |
45 | <div>Click to add a photo</div> | 45 | <div>Click to add a photo</div> |
46 | <input | 46 | <input |
... | @@ -59,9 +59,9 @@ const Image = () => { | ... | @@ -59,9 +59,9 @@ const Image = () => { |
59 | onChange={selectImg} | 59 | onChange={selectImg} |
60 | /> | 60 | /> |
61 | </div> | 61 | </div> |
62 | - <div className="sub-flex">Open Image Editor</div> | 62 | + <div className="sub-flex">Open Image Editor</div> */} |
63 | </> | 63 | </> |
64 | - ) : ( | 64 | + {/* ) : ( */} |
65 | <img | 65 | <img |
66 | id="image" | 66 | id="image" |
67 | alt={""} | 67 | alt={""} |
... | @@ -69,15 +69,15 @@ const Image = () => { | ... | @@ -69,15 +69,15 @@ const Image = () => { |
69 | objectFit: "cover", | 69 | objectFit: "cover", |
70 | display: "flex", | 70 | display: "flex", |
71 | margin: "0 auto", | 71 | margin: "0 auto", |
72 | - width: "30rem", | 72 | + width: "50rem", |
73 | }} | 73 | }} |
74 | src={previewURL as string} | 74 | src={previewURL as string} |
75 | /> | 75 | /> |
76 | - )} | 76 | + {/* )} */} |
77 | </ImgBox> | 77 | </ImgBox> |
78 | {/* <Menu /> */} | 78 | {/* <Menu /> */} |
79 | </Container> | 79 | </Container> |
80 | - {isEditorOpened && <ToastEditor {...{ setPreviewURL }} />} | 80 | + {/* {isEditorOpened && <ToastEditor {...{ setPreviewURL, setIsImgAdded }} />} */} |
81 | </> | 81 | </> |
82 | ); | 82 | ); |
83 | }; | 83 | }; | ... | ... |
... | @@ -3,28 +3,28 @@ import ImageEditor from "@toast-ui/react-image-editor"; | ... | @@ -3,28 +3,28 @@ import ImageEditor from "@toast-ui/react-image-editor"; |
3 | import { useEffect, useState } from "react"; | 3 | import { useEffect, useState } from "react"; |
4 | import "tui-image-editor/dist/tui-image-editor.css"; | 4 | import "tui-image-editor/dist/tui-image-editor.css"; |
5 | 5 | ||
6 | -const ToastEditor = ({ setPreviewURL }) => { | 6 | +const ToastEditor = ({ setPreviewURL, setIsImgAdded }) => { |
7 | - const [lowerCanvas, setLowerCanvas] = useState<HTMLCanvasElement>(); | 7 | + // const [lowerCanvas, setLowerCanvas] = useState<HTMLCanvasElement>(); |
8 | - const [upperCanvas, setUpperCanvas] = useState<HTMLCanvasElement>(); | 8 | + // const [upperCanvas, setUpperCanvas] = useState<HTMLCanvasElement>(); |
9 | - // console.log( | 9 | + // // console.log( |
10 | - // document.getElementsByClassName("lower-canvas")[0]?.toDataURL("image/png") | 10 | + // // document.getElementsByClassName("lower-canvas")[0]?.toDataURL("image/png") |
11 | - // ); | 11 | + // // ); |
12 | - console.log("s"); | 12 | + // console.log("s"); |
13 | 13 | ||
14 | - // const [upperCanvas, setUpperCanvas] = useState( | 14 | + // // const [upperCanvas, setUpperCanvas] = useState( |
15 | - // document.getElementsByClassName("upper-canvas ")[0] | 15 | + // // document.getElementsByClassName("upper-canvas ")[0] |
16 | - // ); | 16 | + // // ); |
17 | 17 | ||
18 | - useEffect(() => { | 18 | + // useEffect(() => { |
19 | - window?.addEventListener("click", () => { | 19 | + // window?.addEventListener("click", () => { |
20 | - setLowerCanvas( | 20 | + // setLowerCanvas( |
21 | - document.getElementsByClassName("lower-canvas")[0] as HTMLCanvasElement | 21 | + // document.getElementsByClassName("lower-canvas")[0] as HTMLCanvasElement |
22 | - ); | 22 | + // ); |
23 | - setUpperCanvas( | 23 | + // setUpperCanvas( |
24 | - document.getElementsByClassName("upper-canvas")[0] as HTMLCanvasElement | 24 | + // document.getElementsByClassName("upper-canvas")[0] as HTMLCanvasElement |
25 | - ); | 25 | + // ); |
26 | - }); | 26 | + // }); |
27 | - }, []); | 27 | + // }, []); |
28 | 28 | ||
29 | // useEffect(() => { | 29 | // useEffect(() => { |
30 | // const img = lowerCanvas?.toDataURL("image/png"); | 30 | // const img = lowerCanvas?.toDataURL("image/png"); |
... | @@ -54,7 +54,10 @@ const ToastEditor = ({ setPreviewURL }) => { | ... | @@ -54,7 +54,10 @@ const ToastEditor = ({ setPreviewURL }) => { |
54 | // }, [lowerCanvas?.toDataURL("image/png")]); | 54 | // }, [lowerCanvas?.toDataURL("image/png")]); |
55 | 55 | ||
56 | const handleEnd = () => { | 56 | const handleEnd = () => { |
57 | + const lowerCanvas = document.getElementsByClassName("lower-canvas")[0] as HTMLCanvasElement; | ||
57 | setPreviewURL(lowerCanvas.toDataURL("image/png")); | 58 | setPreviewURL(lowerCanvas.toDataURL("image/png")); |
59 | + console.log('asdf') | ||
60 | + setIsImgAdded(true); | ||
58 | }; | 61 | }; |
59 | 62 | ||
60 | return ( | 63 | return ( | ... | ... |
... | @@ -2,23 +2,41 @@ import Header from "components/Header"; | ... | @@ -2,23 +2,41 @@ import Header from "components/Header"; |
2 | import Image from "components/Image"; | 2 | import Image from "components/Image"; |
3 | import styled from "styled-components"; | 3 | import styled from "styled-components"; |
4 | import dynamic from "next/dynamic"; | 4 | import dynamic from "next/dynamic"; |
5 | +import { useState } from "react"; | ||
5 | 6 | ||
6 | const ToastEditor = dynamic(() => import("components/ToastEditor"), { | 7 | const ToastEditor = dynamic(() => import("components/ToastEditor"), { |
7 | ssr: false, | 8 | ssr: false, |
8 | }); | 9 | }); |
9 | 10 | ||
10 | -const Index = () => ( | 11 | +const Index = () => { |
11 | - <Container> | 12 | + const [isEditorOpened, setIsEditorOpened] = useState(false); |
12 | - <Header /> | 13 | + const [previewURL, setPreviewURL] = useState<string | ArrayBuffer>(""); |
13 | - <Image /> | 14 | + const [isImgAdded, setIsImgAdded] = useState(false); |
14 | - {/* <ToastEditor /> */} | 15 | + |
15 | - </Container> | 16 | + return ( |
16 | -); | 17 | + <Container> |
18 | + <Header /> | ||
19 | + | ||
20 | + {!isImgAdded ? ( | ||
21 | + <button className="open-button" onClick={() => setIsEditorOpened(true)}> | ||
22 | + asdf | ||
23 | + </button> | ||
24 | + ) : ( | ||
25 | + <Image {...{ previewURL, setPreviewURL }} /> | ||
26 | + )} | ||
27 | + {isEditorOpened && !isImgAdded && ( | ||
28 | + <ToastEditor {...{ setPreviewURL, setIsImgAdded }} /> | ||
29 | + )} | ||
30 | + </Container> | ||
31 | + ); | ||
32 | +}; | ||
17 | 33 | ||
18 | const Container = styled.div` | 34 | const Container = styled.div` |
19 | display: flex; | 35 | display: flex; |
20 | flex-direction: column; | 36 | flex-direction: column; |
21 | align-items: center; | 37 | align-items: center; |
38 | + .open-button { | ||
39 | + } | ||
22 | `; | 40 | `; |
23 | 41 | ||
24 | export default Index; | 42 | export default Index; | ... | ... |
-
Please register or login to post a comment