Update release

This commit is contained in:
Gary 2023-08-30 16:44:44 -07:00
parent 461a75c70a
commit 462d96cf14
13 changed files with 131 additions and 195 deletions

View File

@ -29,10 +29,4 @@ To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

View File

@ -1,16 +1,7 @@
import { useState } from 'react';
import React from 'react';
const ContactButton = ({ buttonText, email }) => {
const [hovered, setHovered] = useState(false);
const [copied, setCopied] = useState(false);
const handleHover = () => {
setHovered(true);
};
const handleMouseLeave = () => {
setHovered(false);
};
function ContactButton({ buttonText, email }) {
const [copied, setCopied] = React.useState(false);
const handleClick = () => {
navigator.clipboard.writeText(email);
@ -22,18 +13,13 @@ const ContactButton = ({ buttonText, email }) => {
return (
<button
className={`px-20 mt-8 mx-5 py-2 text-white border rounded focus:outline-none ${
hovered
? 'border-white transition duration-300 ease-in-out'
: 'border-blue-500 transition duration-300 ease-in-out'
}`}
onMouseEnter={handleHover}
onMouseLeave={handleMouseLeave}
type="button"
className="px-20 mt-8 mx-5 py-2 text-white border rounded focus:outline-none border-white transition duration-300 ease-in-out hover:border-blue-500 transition duration-300 ease-in-out"
onClick={handleClick}
>
{copied ? 'Email copied to your clipboard.' : hovered ? email : buttonText}
{copied ? 'Email copied to your clipboard.' : !copied && buttonText}
</button>
);
};
}
export default ContactButton;
export default ContactButton;

View File

@ -38,9 +38,9 @@ const ContactThreeJsComponent = React.memo(() => {
object = new THREE.Object3D();
scene.add(object);
const geometry = new THREE.BoxGeometry(50, 50, 50);
const geometry = new THREE.DodecahedronGeometry(30, 0); // Larger dodecahedron geometry
const material = new THREE.MeshPhongMaterial({
color: 0xffd700,
color: 0x999999,
flatShading: true,
});
@ -49,11 +49,11 @@ const ContactThreeJsComponent = React.memo(() => {
mesh.position
.set(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5)
.normalize();
mesh.position.multiplyScalar(Math.random() * 400);
mesh.position.multiplyScalar(Math.random() * 800);
mesh.rotation.set(
Math.random() * 2,
Math.random() * 2,
Math.random() * 2
Math.random() * Math.PI * 2,
Math.random() * Math.PI * 2,
Math.random() * Math.PI * 2
);
mesh.scale.x = mesh.scale.y = mesh.scale.z = Math.random() * 2;
object.add(mesh);

View File

@ -1,115 +1,66 @@
import React, { useEffect, useRef, useState } from "react";
import VideoButton from "../buttons/VideoButton.jsx";
import Link from "next/link";
const Section = ({
function Section({
videoUrl,
text,
headingLevel = 1,
buttonVideoURL,
buttonOneText,
buttonTwoText,
buttonLink = "/",
headingLevel = 1,
}) => {
}) {
const videoRef = useRef(null);
const [isPlaying, setIsPlaying] = useState(false);
const [hasInteracted, setHasInteracted] = useState(false);
useEffect(() => {
const options = {
root: null,
rootMargin: "0px",
threshold: 0.5,
};
const playPromise = videoRef.current?.play();
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
if (playPromise) {
playPromise
.then(() => {
setIsPlaying(true);
if (!isMobile) {
videoRef.current?.play();
}
} else {
setIsPlaying(false);
videoRef.current?.pause();
}
});
}, options);
if (videoRef.current) {
observer.observe(videoRef.current);
})
.catch((error) => {
console.error("Play error:", error);
});
}
return () => {
if (videoRef.current) {
observer.unobserve(videoRef.current);
videoRef.current.pause();
}
};
}, []);
let isMobile = false;
if (typeof window !== "undefined") {
isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
if (headingLevel <= 0 || headingLevel >= 7) {
throw new Error("Invalid heading level");
}
const Heading = headingLevel === 1 ? "h1" : "h2";
const Heading = `h${headingLevel}`;
return (
<div className="relative z-10 h-screen w-screen">
{isMobile ? (
<div
className="absolute h-screen w-screen object-cover blur-sm"
style={{
backgroundImage: `url(${videoUrl})`,
backgroundSize: "cover",
backgroundPosition: "center",
filter: "blur(4px)",
}}
/>
) : (
<video
className="absolute h-screen w-screen object-cover blur-sm"
src={videoUrl}
ref={videoRef}
muted
loop
autoPlay={!isMobile || (isMobile && isPlaying && hasInteracted)}
preload="metadata"
/>
)}
<video
className="absolute h-screen w-screen object-cover blur-sm"
src={videoUrl}
ref={videoRef}
muted
autoPlay
loop
preload="metadata"
/>
<div className="relative z-10 flex flex-col items-center justify-center h-full">
<div className="relative flex justify-center items-end w-full mb-20">
<Heading
className="lg:text-5xl md:text-4xl sm:text-3xl text-3xl text-center text-white break-normal"
>
<div className="flex flex-col items-center space-y-4">
<Heading className="lg:text-5xl md:text-4xl sm:text-3xl text-3xl text-center text-white break-normal">
{text}
</Heading>
</div>
<div className="flex justify-start space-x-4">
{isMobile && !hasInteracted ? (
<VideoButton
buttonVideoURL={buttonVideoURL}
buttonOneText={buttonOneText}
/>
) : (
<VideoButton
buttonVideoURL={buttonVideoURL}
buttonOneText={buttonOneText}
/>
)}
{buttonLink && (
<Link
href={buttonLink}
id="ButtonLink"
className="px-4 mt-8 mx-5 py-2 text-white"
>
{buttonTwoText}
</Link>
)}
<VideoButton
buttonVideoURL={buttonVideoURL}
buttonOneText={buttonOneText}
/>
</div>
</div>
</div>
);
};
}
export default Section;

View File

@ -1,5 +1,4 @@
import Button from "../buttons/Button.jsx";
import ContactThreeJsComponent from "../elements/ContactThreeJsComponent.jsx";
const SectionTwo = ({
buttonText,
@ -8,23 +7,24 @@ const SectionTwo = ({
}) => {
return (
<>
<div id="contact" className="relative z-10 h-screen w-screen">
<div className="absolute inset-0 z-0">
</div>
<div className="relative z-10 flex flex-col items-center justify-center h-full">
<div className="relative flex justify-center items-end w-full mb-20">
<h1 className="lg:text-5xl md:text-4xl sm:text-3xl text-3xl text-center text-white break-normal">{text}</h1>
<div
id="contact"
className="relative z-10 h-screen w-screen bg-black" // Added bg-black class
>
<div className="absolute inset-0 z-0">
{/* ... */}
</div>
<div className="flex justify-start space-x-4">
<Button
buttonText={buttonText}
buttonLink={buttonLink}
/>
<div className="relative flex flex-col items-center justify-center h-full">
<div className="relative flex justify-center items-end w-full mb-20">
<h1 className="lg:text-5xl md:text-4xl sm:text-3xl text-3xl text-center text-white break-normal">
{text}
</h1>
</div>
<div className="flex justify-start space-x-4">
<Button buttonText={buttonText} buttonLink={buttonLink} />
</div>
</div>
</div>
</div>
</>
);
};

94
package-lock.json generated
View File

@ -10,11 +10,11 @@
"dependencies": {
"autoprefixer": "10.4.14",
"framer-motion": "^10.12.4",
"next": "^13.4.7",
"next": "^13.4.19",
"observer": "^0.0.2",
"postcss": "8.4.22",
"react": "^18.2.0",
"react-dom": "18.2.0",
"react-dom": "^18.2.0",
"react-intersection-observer": "^9.4.3",
"react-player": "^2.12.0",
"react-scroll": "^1.8.9",
@ -86,14 +86,14 @@
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"node_modules/@next/env": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.7.tgz",
"integrity": "sha512-ZlbiFulnwiFsW9UV1ku1OvX/oyIPLtMk9p/nnvDSwI0s7vSoZdRtxXNsaO+ZXrLv/pMbXVGq4lL8TbY9iuGmVw=="
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.19.tgz",
"integrity": "sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ=="
},
"node_modules/@next/swc-darwin-arm64": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.7.tgz",
"integrity": "sha512-VZTxPv1b59KGiv/pZHTO5Gbsdeoxcj2rU2cqJu03btMhHpn3vwzEK0gUSVC/XW96aeGO67X+cMahhwHzef24/w==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz",
"integrity": "sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==",
"cpu": [
"arm64"
],
@ -106,9 +106,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.7.tgz",
"integrity": "sha512-gO2bw+2Ymmga+QYujjvDz9955xvYGrWofmxTq7m70b9pDPvl7aDFABJOZ2a8SRCuSNB5mXU8eTOmVVwyp/nAew==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz",
"integrity": "sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==",
"cpu": [
"x64"
],
@ -121,9 +121,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.7.tgz",
"integrity": "sha512-6cqp3vf1eHxjIDhEOc7Mh/s8z1cwc/l5B6ZNkOofmZVyu1zsbEM5Hmx64s12Rd9AYgGoiCz4OJ4M/oRnkE16/Q==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.19.tgz",
"integrity": "sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==",
"cpu": [
"arm64"
],
@ -136,9 +136,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.7.tgz",
"integrity": "sha512-T1kD2FWOEy5WPidOn1si0rYmWORNch4a/NR52Ghyp4q7KyxOCuiOfZzyhVC5tsLIBDH3+cNdB5DkD9afpNDaOw==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.19.tgz",
"integrity": "sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==",
"cpu": [
"arm64"
],
@ -151,9 +151,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.7.tgz",
"integrity": "sha512-zaEC+iEiAHNdhl6fuwl0H0shnTzQoAoJiDYBUze8QTntE/GNPfTYpYboxF5LRYIjBwETUatvE0T64W6SKDipvg==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.19.tgz",
"integrity": "sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==",
"cpu": [
"x64"
],
@ -166,9 +166,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.7.tgz",
"integrity": "sha512-X6r12F8d8SKAtYJqLZBBMIwEqcTRvUdVm+xIq+l6pJqlgT2tNsLLf2i5Cl88xSsIytBICGsCNNHd+siD2fbWBA==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.19.tgz",
"integrity": "sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==",
"cpu": [
"x64"
],
@ -181,9 +181,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.7.tgz",
"integrity": "sha512-NPnmnV+vEIxnu6SUvjnuaWRglZzw4ox5n/MQTxeUhb5iwVWFedolPFebMNwgrWu4AELwvTdGtWjqof53AiWHcw==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.19.tgz",
"integrity": "sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==",
"cpu": [
"arm64"
],
@ -196,9 +196,9 @@
}
},
"node_modules/@next/swc-win32-ia32-msvc": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.7.tgz",
"integrity": "sha512-6Hxijm6/a8XqLQpOOf/XuwWRhcuc/g4rBB2oxjgCMuV9Xlr2bLs5+lXyh8w9YbAUMYR3iC9mgOlXbHa79elmXw==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.19.tgz",
"integrity": "sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==",
"cpu": [
"ia32"
],
@ -211,9 +211,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.7.tgz",
"integrity": "sha512-sW9Yt36Db1nXJL+mTr2Wo0y+VkPWeYhygvcHj1FF0srVtV+VoDjxleKtny21QHaG05zdeZnw2fCtf2+dEqgwqA==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.19.tgz",
"integrity": "sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==",
"cpu": [
"x64"
],
@ -847,11 +847,11 @@
}
},
"node_modules/next": {
"version": "13.4.7",
"resolved": "https://registry.npmjs.org/next/-/next-13.4.7.tgz",
"integrity": "sha512-M8z3k9VmG51SRT6v5uDKdJXcAqLzP3C+vaKfLIAM0Mhx1um1G7MDnO63+m52qPdZfrTFzMZNzfsgvm3ghuVHIQ==",
"version": "13.4.19",
"resolved": "https://registry.npmjs.org/next/-/next-13.4.19.tgz",
"integrity": "sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==",
"dependencies": {
"@next/env": "13.4.7",
"@next/env": "13.4.19",
"@swc/helpers": "0.5.1",
"busboy": "1.6.0",
"caniuse-lite": "^1.0.30001406",
@ -867,19 +867,18 @@
"node": ">=16.8.0"
},
"optionalDependencies": {
"@next/swc-darwin-arm64": "13.4.7",
"@next/swc-darwin-x64": "13.4.7",
"@next/swc-linux-arm64-gnu": "13.4.7",
"@next/swc-linux-arm64-musl": "13.4.7",
"@next/swc-linux-x64-gnu": "13.4.7",
"@next/swc-linux-x64-musl": "13.4.7",
"@next/swc-win32-arm64-msvc": "13.4.7",
"@next/swc-win32-ia32-msvc": "13.4.7",
"@next/swc-win32-x64-msvc": "13.4.7"
"@next/swc-darwin-arm64": "13.4.19",
"@next/swc-darwin-x64": "13.4.19",
"@next/swc-linux-arm64-gnu": "13.4.19",
"@next/swc-linux-arm64-musl": "13.4.19",
"@next/swc-linux-x64-gnu": "13.4.19",
"@next/swc-linux-x64-musl": "13.4.19",
"@next/swc-win32-arm64-msvc": "13.4.19",
"@next/swc-win32-ia32-msvc": "13.4.19",
"@next/swc-win32-x64-msvc": "13.4.19"
},
"peerDependencies": {
"@opentelemetry/api": "^1.1.0",
"fibers": ">= 3.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"sass": "^1.3.0"
@ -888,9 +887,6 @@
"@opentelemetry/api": {
"optional": true
},
"fibers": {
"optional": true
},
"sass": {
"optional": true
}

View File

@ -11,11 +11,11 @@
"dependencies": {
"autoprefixer": "10.4.14",
"framer-motion": "^10.12.4",
"next": "^13.4.7",
"next": "^13.4.19",
"observer": "^0.0.2",
"postcss": "8.4.22",
"react": "^18.2.0",
"react-dom": "18.2.0",
"react-dom": "^18.2.0",
"react-intersection-observer": "^9.4.3",
"react-player": "^2.12.0",
"react-scroll": "^1.8.9",

View File

@ -2,7 +2,7 @@ import React from "react";
import Head from "next/head";
import Navbar from "../components/layouts/NavBar.jsx";
import dynamic from "next/dynamic";
import StatementOfFaithSection from "../components/layouts/StatementOfFaithSection.jsx";
import SectionTwo from "../components/layouts/SectionTwo.jsx";
const Section = dynamic(() => import("../components/layouts/Section.jsx"));
const ContactFormSection = dynamic(() =>
@ -24,15 +24,18 @@ export default function Home() {
<Section
key="aboutSection0"
//videoUrl="/true_freedom_optimized.mp4"
videoUrl="/about2.mp4"
text="about"
buttonTwoText="say hello"
buttonLink="#contact"
buttonOneText="watch"
buttonVideoURL="https://odysee.com/@shilohcode:e/about:11"
></Section>
<StatementOfFaithSection />
<SectionTwo
text="Our Creed"
buttonText="explore"
buttonLink="https://creed.shilohcode.com"
></SectionTwo>
<ContactFormSection
text="contact us"
buttonText="contact us"

View File

@ -14,7 +14,7 @@ export default function Home() {
<Navbar />
<Section
key="getInvolved0"
//videoUrl="/higher_ground_optimized.mp4"
videoUrl="/get-involved.mp4"
text="get involved"
buttonLink="#contact"
buttonTwoText="say hello"
@ -22,20 +22,26 @@ export default function Home() {
buttonVideoURL="https://odysee.com/@shilohcode:e/higherground:3"
/>
<SectionTwo
text="githaven"
buttonText="Explore"
text="githaven.org"
buttonText="explore"
buttonLink="https://githaven.org"
></SectionTwo>
<SectionTwo
text="remnant.chat"
buttonText="Explore"
buttonText="explore"
buttonLink="https://remnant.chat"
></SectionTwo>
<SectionTwo
text="heartily.work"
buttonText="Explore"
buttonText="explore"
buttonLink="https://heartily.work"
></SectionTwo>
<SectionTwo
text="opensource license"
buttonText="explore"
buttonLink="https://license.shilohcode.com"
></SectionTwo>
<ContactFormSection
text="contact us"
buttonText="contact us"

View File

@ -15,7 +15,7 @@ export default function Home() {
<title>shiloh code</title>
<meta
name="description"
content="shiloh is accelerating redemptive technology in Jesus' name."
content="shiloh is accelerating reforming technology in Jesus' name."
/>
<meta
name="keywords"
@ -25,8 +25,8 @@ export default function Home() {
<Navbar />
<Section
key="section0"
//videoUrl="/optimized-shiloh-main-banner.mp4"
text="redemptive tech in Jesus' name"
videoUrl="/main.mp4"
text="tech reform in Jesus' name"
buttonTwoText="learn more"
buttonOneText="watch"
buttonVideoURL="https://odysee.com/@shilohcode:e/standwithus:0"
@ -35,7 +35,7 @@ export default function Home() {
/>
<Section
key="section1"
//videoUrl="/true_freedom_optimized.mp4"
videoUrl="/about2.mp4"
text="about"
buttonOneText="watch"
buttonTwoText="learn more"
@ -45,7 +45,7 @@ export default function Home() {
/>
<Section
key="section2"
//videoUrl="/higher_ground_optimized.mp4"
videoUrl="/get-involved.mp4"
text="get involved"
buttonOneText="watch"
buttonTwoText="learn more"

BIN
public/about2.mp4 Normal file

Binary file not shown.

BIN
public/get-involved.mp4 Normal file

Binary file not shown.

BIN
public/main.mp4 Normal file

Binary file not shown.