diff --git a/calc-frontend/src/assets/deriv-dash.jpg b/calc-frontend/src/assets/deriv-dash.jpg new file mode 100644 index 0000000..b47ca55 Binary files /dev/null and b/calc-frontend/src/assets/deriv-dash.jpg differ diff --git a/calc-frontend/src/assets/integralDashboard.gif b/calc-frontend/src/assets/integralDashboard.gif new file mode 100644 index 0000000..546a33b Binary files /dev/null and b/calc-frontend/src/assets/integralDashboard.gif differ diff --git a/calc-frontend/src/assets/limitDashboard.png b/calc-frontend/src/assets/limitDashboard.png new file mode 100644 index 0000000..23a017b Binary files /dev/null and b/calc-frontend/src/assets/limitDashboard.png differ diff --git a/calc-frontend/src/components/ui/FunctionCard.tsx b/calc-frontend/src/components/ui/FunctionCard.tsx index 712c766..d35730a 100644 --- a/calc-frontend/src/components/ui/FunctionCard.tsx +++ b/calc-frontend/src/components/ui/FunctionCard.tsx @@ -3,6 +3,10 @@ import { useNavigate } from "react-router"; import { toast } from "sonner"; import { InlineMath } from "react-katex"; import "katex/dist/katex.min.css"; +import integralDashboard from "../../assets/integralDashboard.gif"; +import limitDashboard from "../../assets/limitDashboard.png"; +import derivativeDashboard from "../../assets/deriv-dash.jpg"; +import { useLayoutEffect, useRef } from "react"; interface FunctionCardProps { topic: string; @@ -21,8 +25,41 @@ function FunctionCard({ id, onDelete, }: FunctionCardProps) { + + const container = useRef(null); + const dxContainer = useRef(null); + let images = new Map(); + images.set("Integral", integralDashboard); + images.set("Limit", limitDashboard); + images.set("Derivative", derivativeDashboard); + + const navigate = useNavigate(); + useLayoutEffect(() => { + //@ts-ignore Cannot find MathQuill + const MQ = MathQuill.getInterface(2); // Get MathQuill interface + + if (container.current) { + let latex = ""; + + // Set LaTeX content based on the topic + if (topic === "Integral") { + latex = `\\int_{${lowerBound}}^{${upperBound}}`; + } else if (topic === "Derivative") { + latex = `\\frac{d}{dx}`; + } else if (topic === "Limit") { + latex = `\\lim_{x \\to ${lowerBound}}`; + } + + // Render the LaTeX content using MathQuill + MQ.StaticMath(container.current).latex(latex); + } + if(topic === "Integral" && dxContainer.current) { + MQ.StaticMath(dxContainer.current).latex("\\mathrm{d}x") + } + }, [topic, lowerBound, upperBound]); + const handleView = async () => { navigate(`/${topic}s/custom`, { state: { func: equation, bounds: [lowerBound, upperBound] }, @@ -45,10 +82,15 @@ function FunctionCard({ return (

- {equation}}/> +

+ {equation}} + /> +

{topic