This commit is contained in:
RizqiSyahrendra 2025-02-12 02:43:13 +07:00
commit d2062a9d0c
5 changed files with 994 additions and 198 deletions

882
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -33,6 +33,7 @@
"react": "^19.0.0", "react": "^19.0.0",
"react-dom": "^19.0.0", "react-dom": "^19.0.0",
"react-hook-form": "^7.54.2", "react-hook-form": "^7.54.2",
"react-icons": "^5.4.0",
"react-modal-video": "^2.0.2", "react-modal-video": "^2.0.2",
"react-photoswipe-gallery": "^3.0.1", "react-photoswipe-gallery": "^3.0.1",
"rellax": "^1.12.1", "rellax": "^1.12.1",
@ -62,5 +63,6 @@
"prettier": "^3.4.2", "prettier": "^3.4.2",
"tailwindcss": "^3.4.1", "tailwindcss": "^3.4.1",
"typescript": "^5" "typescript": "^5"
} },
"packageManager": "yarn@4.6.0"
} }

View File

@ -17,23 +17,8 @@ export default async function Blog() {
<div className="col-lg-8 offset-lg-2 text-center mb-md-30"> <div className="col-lg-8 offset-lg-2 text-center mb-md-30">
<h2 className="section-caption-slick mb-30 mb-sm-20">Our Blog</h2> <h2 className="section-caption-slick mb-30 mb-sm-20">Our Blog</h2>
<h3 className="section-title mb-30">Check the latest news about our company in our blog.</h3> <h3 className="section-title mb-30">Check the latest news about our company in our blog.</h3>
<p className="section-descr mb-0">
There are three kinds of web developer specialization front-end developer, back-end developer, and
full-stack developer.
</p>
</div>
<div className="col-lg-2 d-flex align-items-end">
<div className="local-scroll text-center text-lg-end w-100">
<Link href={`/slick-blog-dark`} className="link-hover-anim" data-link-animate="y">
<span className="link-strong link-strong-unhovered">
Our blog <i className="mi-arrow-right size-24" aria-hidden="true"></i>
</span>
<span className="link-strong link-strong-hovered" aria-hidden="true">
Our blog <i className="mi-arrow-right size-24" aria-hidden="true"></i>
</span>
</Link>
</div>
</div> </div>
<div className="col-lg-2 d-flex align-items-end"></div>
</div> </div>
{/* Blog Posts Grid */} {/* Blog Posts Grid */}
<div className="row mt-n30"> <div className="row mt-n30">
@ -42,7 +27,7 @@ export default async function Blog() {
<div key={i} className="post-prev-3 col-12 col-lg-10 offset-lg-1 col-xl-6 offset-xl-0 mt-30"> <div key={i} className="post-prev-3 col-12 col-lg-10 offset-lg-1 col-xl-6 offset-xl-0 mt-30">
<div className="post-prev-3-container d-block d-sm-flex"> <div className="post-prev-3-container d-block d-sm-flex">
<div className="post-prev-3-img"> <div className="post-prev-3-img">
<Link href={elm.slug}> <Link href={`/blog/${elm.slug}`}>
<Image <Image
src={elm.imgFormatted.url} src={elm.imgFormatted.url}
width={400} width={400}
@ -54,7 +39,7 @@ export default async function Blog() {
</div> </div>
<div className="post-prev-3-intro"> <div className="post-prev-3-intro">
<h4 className="post-prev-3-title"> <h4 className="post-prev-3-title">
<Link href={elm.slug}>{elm.title}</Link> <Link href={`/blog/${elm.slug}`}>{elm.title}</Link>
</h4> </h4>
<div className="post-prev-3-text">{sanitizeBlogContentIntoStringPreview(elm.content)}</div> <div className="post-prev-3-text">{sanitizeBlogContentIntoStringPreview(elm.content)}</div>
<div className="post-prev-3-info clearfix"> <div className="post-prev-3-info clearfix">
@ -68,6 +53,12 @@ export default async function Blog() {
))} ))}
{/* End Post Item */} {/* End Post Item */}
</div> </div>
<Link href={`/blog`} className="link-hover-anim mt-5 hover:opacity-[.8] float-end">
<span>
Our blog <i className="mi-arrow-right" aria-hidden="true"></i>
</span>
</Link>
{/* End Blog Posts Grid */} {/* End Blog Posts Grid */}
</div> </div>
</> </>

View File

@ -1,86 +1,80 @@
"use client"; "use client";
import React from "react"; import React from "react";
import Image from "next/image"; import Image from "next/image";
import FooterSocials from "./FooterSocial"; import { FaPhone, FaFax, FaFacebook, FaMapMarkerAlt, FaClock } from "react-icons/fa";
import { footerLinks, navigationLinks } from "@/data/footer";
export default function Footer() { export default function Footer() {
const scrollToTop = (event: any) => { const scrollToTop = (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
event.preventDefault(); event.preventDefault();
window.scrollTo({ window.scrollTo({ top: 0, behavior: "smooth" });
top: 0,
behavior: "smooth", // Linear easing replacement
});
}; };
return ( return (
<> <div className="relative text-white py-10">
<div className="container position-relative"> <div className="container mx-auto flex flex-wrap justify-between items-start px-6">
<div className="row pb-sm-80 pb-xs-50"> <div className="w-full md:w-1/4 mb-6 md:mb-0 flex flex-col items-start">
<div className="col-md-2 col-lg-3 text-gray mb-sm-50"> <Image src="/assets/images/demo-slick/logo-dark.webp" alt="Cochise Oncology Logo" width={363} height={138} />
<div className="mb-30"> <p className="text-sm mt-3">© {new Date().getFullYear()} All Rights Reserved</p>
<Image <p className="text-sm text-orange-300 font-semibold">Website by Megaphone Designs</p>
src="/assets/images/demo-slick/logo-dark.webp" <a href="/privacy-policy" className="text-sm text-orange-300 font-semibold">
alt="Cochise Oncology Logo" Privacy Policy
width={250} </a>
height={56}
className="dark-mode-logo"
/>
</div>
</div>
<div className="col-md-7 offset-md-1 offset-lg-2">
<div className="row mt-n30">
{/* Footer Widget */}
<div className="col-sm-3 mt-30 mx-4">
<h3 className="fw-title">Business Hours</h3>
<ul className="fw-menu clearlist local-scroll">
<li>
<a className="#">Monday - Friday: 8am - 5pm</a>
</li>
</ul>
</div>
{/* End Footer Widget */}
{/* Footer Widget */}
<div className="col-sm-3 mt-30 mx-4">
<h3 className="fw-title">Contact Us</h3>
<ul className="fw-menu clearlist">
<FooterSocials />
</ul>
</div>
{/* End Footer Widget */}
{/* Footer Widget */}
<div className="col-sm-3 mt-30 mx-4">
<h3 className="fw-title">Legal &amp; Press</h3>
<ul className="fw-menu clearlist">
{footerLinks.map((elm: any, i: number) => (
<li key={i}>
<a href={elm.path}>{elm.name}</a>
</li>
))}
</ul>
</div>
{/* End Footer Widget */}
</div>
</div>
</div> </div>
{/* Footer Text */}
<div className="row text-gray"> <div className="w-full md:w-1/3 mb-6 md:mb-0">
<div className="col-md-4 col-lg-3"> <h3 className="text-lg font-semibold mb-4">Contact Us</h3>
<b>© {new Date().getFullYear()} All Rights Reserved</b> <ul className="space-y-4 border-gray-400 pl-4">
</div> <li className="flex items-center space-x-4 border-b border-gray-500 pb-2">
<div className="col-md-7 offset-md-1 offset-lg-2 clearfix"> <FaMapMarkerAlt className="text-2xl text-gray-300" />
{/* Back to Top Link */} <div className="leading-tight">
<div className="local-scroll float-end mt-n20 mt-sm-10" onClick={scrollToTop}> <a
<a href="#top" className="link-to-top color-light relative"> href="https://www.google.com/maps/place/5151+AZ-90,+Sierra+Vista,+AZ+85635"
<i className="mi-arrow-up size-24 absolute top-[34px] left-3" /> target="_blank"
<span className="visually-hidden">Scroll to top</span> rel="noopener noreferrer"
className="underline text-lg"
>
5151 E HIGHWAY 90
</a>
<br />
<span className="text-sm text-gray-300">Sierra Vista, Arizona 85635</span>
</div>
</li>
<li className="flex items-center space-x-4 border-b border-gray-500 pb-2">
<FaPhone className="text-2xl text-gray-300" />
<span className="text-lg">(520) 803-6644</span>
</li>
<li className="flex items-center space-x-4 border-b border-gray-500 pb-2">
<FaFax className="text-2xl text-gray-300" />
<span className="text-lg">Fax: (520) 459-3193</span>
</li>
<li className="flex items-center space-x-4">
<FaFacebook className="text-2xl text-gray-300" />
<a
href="https://www.facebook.com/p/Cochise-Oncology-61556262839823"
target="_blank"
rel="noopener noreferrer"
className="underline text-lg"
>
Facebook
</a> </a>
</div> </li>
{/* End Back to Top Link */} </ul>
</div>
<div className="w-full md:w-1/4">
<h3 className="text-lg font-semibold mb-4">Business Hours</h3>
<div className="flex items-center space-x-2">
<FaClock className="text-xl" />
<span className="text-base font-medium">Monday - Friday: 8am - 5pm</span>
</div> </div>
</div> </div>
{/* End Footer Text */}
</div> </div>
</>
<div className="text-center mt-6">
<div onClick={scrollToTop} className="cursor-pointer text-white font-semibold" aria-label="Scroll to top">
Back to Top
</div>
</div>
</div>
); );
} }

145
yarn.lock
View File

@ -10366,108 +10366,69 @@ __metadata:
linkType: hard linkType: hard
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version: 7.0.0 version "7.0.0"
resolution: "wrap-ansi@npm:7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies: dependencies:
ansi-styles: "npm:^4.0.0" ansi-styles "^4.0.0"
string-width: "npm:^4.1.0" string-width "^4.1.0"
strip-ansi: "npm:^6.0.0" strip-ansi "^6.0.0"
checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da
languageName: node
linkType: hard
"wrap-ansi@npm:^8.1.0": wrap-ansi@^8.1.0:
version: 8.1.0 version "8.1.0"
resolution: "wrap-ansi@npm:8.1.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz"
integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
dependencies: dependencies:
ansi-styles: "npm:^6.1.0" ansi-styles "^6.1.0"
string-width: "npm:^5.0.1" string-width "^5.0.1"
strip-ansi: "npm:^7.0.1" strip-ansi "^7.0.1"
checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60
languageName: node
linkType: hard
"wrappy@npm:1": wrappy@1:
version: 1.0.2 version "1.0.2"
resolution: "wrappy@npm:1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
languageName: node
linkType: hard
"ws@npm:^8.16.0": ws@^8.16.0:
version: 8.18.0 version "8.18.0"
resolution: "ws@npm:8.18.0" resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz"
peerDependencies: integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06
languageName: node
linkType: hard
"xss@npm:^1.0.6": xss@^1.0.6:
version: 1.0.15 version "1.0.15"
resolution: "xss@npm:1.0.15" resolved "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz"
integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==
dependencies: dependencies:
commander: "npm:^2.20.3" commander "^2.20.3"
cssfilter: "npm:0.0.10" cssfilter "0.0.10"
bin:
xss: bin/xss
checksum: 10c0/9b31bee62a208f78e2b7bc8154e3ee87d980f4661dc4ab850ce6f4de7bc50eb152f0bdc13fa759ff8ab6d9bfdf8c0d79cf9f6f86249872b92181912309bccd08
languageName: node
linkType: hard
"xtend@npm:^4.0.0": xtend@^4.0.0:
version: 4.0.2 version "4.0.2"
resolution: "xtend@npm:4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
languageName: node
linkType: hard
"yallist@npm:^4.0.0": yaml@^1.10.0:
version: 4.0.0 version "1.10.2"
resolution: "yallist@npm:4.0.0" resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
languageName: node
linkType: hard
"yallist@npm:^5.0.0": yaml@^2.3.4:
version: 5.0.0 version "2.7.0"
resolution: "yallist@npm:5.0.0" resolved "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz"
checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==
languageName: node
linkType: hard
"yaml@npm:^1.10.0": yjs@>=13.5.22:
version: 1.10.2 version "13.6.23"
resolution: "yaml@npm:1.10.2" resolved "https://registry.npmjs.org/yjs/-/yjs-13.6.23.tgz"
checksum: 10c0/5c28b9eb7adc46544f28d9a8d20c5b3cb1215a886609a2fd41f51628d8aaa5878ccd628b755dbcd29f6bb4921bd04ffbc6dcc370689bb96e594e2f9813d2605f integrity sha512-ExtnT5WIOVpkL56bhLeisG/N5c4fmzKn4k0ROVfJa5TY2QHbH7F0Wu2T5ZhR7ErsFWQEFafyrnSI8TPKVF9Few==
languageName: node dependencies:
linkType: hard lib0 "^0.2.99"
"yaml@npm:^2.3.4": yocto-queue@^0.1.0:
version: 2.7.0 version "0.1.0"
resolution: "yaml@npm:2.7.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
bin: integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
yaml: bin.mjs
checksum: 10c0/886a7d2abbd70704b79f1d2d05fe9fb0aa63aefb86e1cb9991837dced65193d300f5554747a872b4b10ae9a12bc5d5327e4d04205f70336e863e35e89d8f4ea9
languageName: node
linkType: hard
"yocto-queue@npm:^0.1.0": zwitch@^2.0.0:
version: 0.1.0 version "2.0.4"
resolution: "yocto-queue@npm:0.1.0" resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz"
checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==
languageName: node
linkType: hard
"zwitch@npm:^2.0.0":
version: 2.0.4
resolution: "zwitch@npm:2.0.4"
checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e
languageName: node
linkType: hard