diff --git a/client/src/app/keys-public.js b/client/src/app/keys-public.js deleted file mode 100644 index 1c1164a..0000000 --- a/client/src/app/keys-public.js +++ /dev/null @@ -1 +0,0 @@ -//retrieve the keys from the Herkou Config Vars. diff --git a/client/src/components/Canvas.jsx b/client/src/components/Canvas.jsx index c5ecf52..28eeb4b 100644 --- a/client/src/components/Canvas.jsx +++ b/client/src/components/Canvas.jsx @@ -305,6 +305,8 @@ const ImgCanvas = ({ const FinalCanvas = ({ finalImgUrl, + finalCanvasHeight, + finalCanvasWidth, finalText, finalFont, finalFontSize, @@ -315,6 +317,7 @@ const FinalCanvas = ({ finalBgOpacity, generateFinalCanvas, photographer, + setFinalDataURI, id, }) => { const canvasRef = useRef(null); @@ -329,14 +332,19 @@ const FinalCanvas = ({ canvasRef.current.width, canvasRef.current.height ); + let base_image = new Image(); base_image.src = finalImgUrl; + base_image.crossOrigin = "Anonymous"; base_image.onload = function () { // set height of canvas to ratio determined by base_image width/height ratio - const ratio = base_image.height / base_image.width; + // const ratio = base_image.height / base_image.width; + + // canvasRef.current.height = canvasRef.current.width * ratio; - canvasRef.current.height = canvasRef.current.width * ratio; + canvasRef.current.width = finalCanvasWidth; + canvasRef.current.height = finalCanvasHeight; // set size of image to match new canvas size context.drawImage( @@ -381,6 +389,10 @@ const FinalCanvas = ({ photographer, "Unsplash" ); + // display final image + setFinalDataURI((URI) => { + canvasRef.current.toDataURL(); + }); }; // should this just keep track of a state var e.g. "generated" then run this function? Set true in generate final function? }, [ @@ -426,10 +438,12 @@ const FinalCanvas = ({ canvasRef.current.style.width = styleWidth; }, []); - const handleGenerateFinalCanvas = () => { - console.log("making the final image"); - generateFinalCanvas(); - }; + //moved to Create.jsx + + // const handleGenerateFinalCanvas = () => { + // console.log("making the final image"); + // generateFinalCanvas(); + // }; return (
@@ -442,7 +456,7 @@ const FinalCanvas = ({ // fontWeight={fontWeight} // textColor={textColor} width={window.outerWidth} - onClick={handleGenerateFinalCanvas} + // onClick={handleGenerateFinalCanvas} id={id} />
diff --git a/client/src/components/FinalImgArea.jsx b/client/src/components/FinalImgArea.jsx index 004b5ca..9ccb7fd 100644 --- a/client/src/components/FinalImgArea.jsx +++ b/client/src/components/FinalImgArea.jsx @@ -1,9 +1,11 @@ -import React from 'react' +import React from "react"; import { FinalCanvas } from "."; - -const FinalImgArea = ({finalImgUrl, +const FinalImgArea = ({ + finalImgUrl, finalText, + finalCanvasHeight, + finalCanvasWidth, finalFont, finalFontSize, finalFontWeight, @@ -11,26 +13,32 @@ const FinalImgArea = ({finalImgUrl, finalMargin, finalBgColor, finalBgOpacity, - generateFinalCanvas,photographer}) => { + generateFinalCanvas, + photographer, + setFinalDataURI, +}) => { return (
+ finalImgUrl={finalImgUrl} + finalCanvasHeight={finalCanvasHeight} + finalCanvasWidth={finalCanvasWidth} + finalText={finalText} + finalFont={finalFont} + finalFontSize={finalFontSize} + finalFontWeight={finalFontWeight} + finalTextColor={finalTextColor} + width={window.outerWidth} + finalMargin={finalMargin} + finalBgColor={finalBgColor} + finalBgOpacity={finalBgOpacity} + generateFinalCanvas={generateFinalCanvas} + photographer={photographer} + setFinalDataURI={setFinalDataURI} + id="finalCanvas" + />
- ) -} + ); +}; -export default FinalImgArea +export default FinalImgArea; diff --git a/client/src/pages/Create.jsx b/client/src/pages/Create.jsx index 649149f..473f3ed 100644 --- a/client/src/pages/Create.jsx +++ b/client/src/pages/Create.jsx @@ -12,8 +12,7 @@ import { } from "../components"; import background from "../images/blossom.jpg"; // need to get this from state passed from app.js import styled from "styled-components"; -// import { UNSPLASH_ACCESS_KEY } from "../app/keys"; -// const unsplash = process.env.UNSPLASH_ACCESS_KEY; //undefined + const unsplash = process.env.REACT_APP_UNSPLASH_ACCESS_KEY ? process.env.REACT_APP_UNSPLASH_ACCESS_KEY : require("../app/keys.js").UNSPLASH_ACCESS_KEY; @@ -54,6 +53,12 @@ const ImgQuotebtn = styled.div.attrs({ text-align: -webkit-center; `; +// const btnDisplay = document.querySelector("#btnDisplay"); +// const getURL = () => { +// const dataURI = FinalCanvas.toDataURL(); +// console.log(dataURI); +// }; + const Create = () => { const [text, setText] = useState(""); const [font, setFont] = useState("Ariel"); @@ -66,7 +71,7 @@ const Create = () => { const [bgColor, setBgColor] = useState("#444444"); const [bgOpacity, setBgOpacity] = useState(0.5); - // final image state settings + // final image state settings (value, function) const [finalImgUrl, setFinalImgUrl] = useState(""); const [finalText, setFinalText] = useState(""); const [finalFont, setFinalFont] = useState("Ariel"); @@ -78,7 +83,8 @@ const Create = () => { const [finalMargin, setFinalMargin] = useState(0); const [finalBgColor, setFinalBgColor] = useState("#ffffff"); const [finalBgOpacity, setFinalBgOpacity] = useState(0.2); - const [finalUrl, setFinalUrl] = useState("robbmdev.com"); + const [finalUrl, setFinalUrl] = useState("thisNeedsToBeTheImageToSave"); + const [finalDataURI, setFinalDataURI] = useState(""); //Quote Api const [random, setRandom] = useState(true); //set to true for production!! @@ -91,6 +97,8 @@ const Create = () => { const leftSideRef = useRef(null); + //Generate Final Canvas + const generateFinalCanvas = () => { setFinalImgUrl(imgUrl); setFinalText(text); @@ -101,6 +109,9 @@ const Create = () => { setFinalMargin(margin); setFinalBgColor(bgColor); setFinalBgOpacity(bgOpacity); + setFinalCanvasHeight(canvasHeight); + setFinalCanvasWidth(canvasWidth); + console.log(finalDataURI); // save to db then // setFinalUrl("url/for/view/page"); }; @@ -312,6 +323,11 @@ const Create = () => { getQuote(); }; + const handleGenerateFinalCanvas = () => { + console.log("making the final image"); + generateFinalCanvas(); + }; + return ( @@ -347,6 +363,8 @@ const Create = () => { /> { finalBgOpacity={finalBgOpacity} generateFinalCanvas={generateFinalCanvas} photographer={photographer} + setFinalDataURI={setFinalDataURI} /> {/* open modal button */} @@ -394,12 +413,14 @@ const Create = () => { bring back for Version 2 */}