feat: Adiciona a estrutura inicial do portfólio com componentes para experiência, hero, sobre, habilidades, projetos, modalidades de trabalho e contato.
This commit is contained in:
1 parent
65dd049963
commit
77956223b3
12 files changed
+576
-470
No files matched your search
+10
-25
@@ -60,9 +60,10 @@ const Squares: React.FC<SquaresProps> = ({
|
||||
|
||||
if (
|
||||
hoveredSquareRef.current &&
|
||||
Math.floor((x - startX) / squareSize) ===
|
||||
hoveredSquareRef.current.x &&
|
||||
Math.floor((y - startY) / squareSize) === hoveredSquareRef.current.y
|
||||
hoveredSquareRef.current.x >= squareX &&
|
||||
hoveredSquareRef.current.x < squareX + squareSize &&
|
||||
hoveredSquareRef.current.y >= squareY &&
|
||||
hoveredSquareRef.current.y < squareY + squareSize
|
||||
) {
|
||||
ctx.fillStyle = hoverFillColor;
|
||||
ctx.fillRect(squareX, squareY, squareSize, squareSize);
|
||||
@@ -122,42 +123,26 @@ const Squares: React.FC<SquaresProps> = ({
|
||||
};
|
||||
|
||||
const handleMouseMove = (event: MouseEvent) => {
|
||||
if (!canvas) return;
|
||||
const rect = canvas.getBoundingClientRect();
|
||||
const mouseX = event.clientX - rect.left;
|
||||
const mouseY = event.clientY - rect.top;
|
||||
|
||||
const startX = Math.floor(gridOffset.current.x / squareSize) * squareSize;
|
||||
const startY = Math.floor(gridOffset.current.y / squareSize) * squareSize;
|
||||
|
||||
const hoveredSquareX = Math.floor(
|
||||
(mouseX + gridOffset.current.x - startX) / squareSize
|
||||
);
|
||||
const hoveredSquareY = Math.floor(
|
||||
(mouseY + gridOffset.current.y - startY) / squareSize
|
||||
);
|
||||
|
||||
if (
|
||||
!hoveredSquareRef.current ||
|
||||
hoveredSquareRef.current.x !== hoveredSquareX ||
|
||||
hoveredSquareRef.current.y !== hoveredSquareY
|
||||
) {
|
||||
hoveredSquareRef.current = { x: hoveredSquareX, y: hoveredSquareY };
|
||||
}
|
||||
hoveredSquareRef.current = { x: mouseX, y: mouseY };
|
||||
};
|
||||
|
||||
const handleMouseLeave = () => {
|
||||
hoveredSquareRef.current = null;
|
||||
};
|
||||
|
||||
canvas.addEventListener("mousemove", handleMouseMove);
|
||||
canvas.addEventListener("mouseleave", handleMouseLeave);
|
||||
window.addEventListener("mousemove", handleMouseMove);
|
||||
document.addEventListener("mouseleave", handleMouseLeave); // Use document for leaving window
|
||||
requestRef.current = requestAnimationFrame(updateAnimation);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener("resize", resizeCanvas);
|
||||
if (requestRef.current) cancelAnimationFrame(requestRef.current);
|
||||
canvas.removeEventListener("mousemove", handleMouseMove);
|
||||
canvas.removeEventListener("mouseleave", handleMouseLeave);
|
||||
window.removeEventListener("mousemove", handleMouseMove);
|
||||
document.removeEventListener("mouseleave", handleMouseLeave);
|
||||
};
|
||||
}, [direction, speed, borderColor, hoverFillColor, squareSize]);
|
||||
|
||||
|
||||
@@ -134,14 +134,14 @@ const Particles: React.FC<ParticlesProps> = ({
|
||||
resize();
|
||||
|
||||
const handleMouseMove = (e: MouseEvent) => {
|
||||
const rect = container.getBoundingClientRect();
|
||||
const x = ((e.clientX - rect.left) / rect.width) * 2 - 1;
|
||||
const y = -(((e.clientY - rect.top) / rect.height) * 2 - 1);
|
||||
// Use window dimensions since the canvas is fixed full screen
|
||||
const x = (e.clientX / window.innerWidth) * 2 - 1;
|
||||
const y = -((e.clientY / window.innerHeight) * 2 - 1);
|
||||
mouseRef.current = { x, y };
|
||||
};
|
||||
|
||||
if (moveParticlesOnHover) {
|
||||
container.addEventListener("mousemove", handleMouseMove);
|
||||
window.addEventListener("mousemove", handleMouseMove);
|
||||
}
|
||||
|
||||
const count = particleCount;
|
||||
@@ -227,7 +227,7 @@ const Particles: React.FC<ParticlesProps> = ({
|
||||
return () => {
|
||||
window.removeEventListener("resize", resize);
|
||||
if (moveParticlesOnHover) {
|
||||
container.removeEventListener("mousemove", handleMouseMove);
|
||||
window.removeEventListener("mousemove", handleMouseMove);
|
||||
}
|
||||
cancelAnimationFrame(animationFrameId);
|
||||
if (container.contains(gl.canvas)) {
|
||||
|
||||
Reference in new issue
Block a user