Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions src/components/awardItem.js

This file was deleted.

46 changes: 0 additions & 46 deletions src/components/awards.js

This file was deleted.

94 changes: 56 additions & 38 deletions src/components/footer.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ import { useStaticQuery, graphql } from 'gatsby'
import { motion } from 'framer-motion'
import { useModal, FORM_TYPES } from '../context/modalContext'
import navItems from '../data/navItems.json'
import Memberships from './memberships'

// Animation variants
const fadeIn = {
hidden: { opacity: 0, y: 20 },
visible: {
opacity: 1,
visible: {
opacity: 1,
y: 0,
transition: { duration: 0.6 }
}
Expand Down Expand Up @@ -60,10 +61,10 @@ const Footer = () => {
/>
</div>
</section> */}

<footer className="bg-white pt-16 pb-0">
<div className="container mx-auto">
<motion.div
<motion.div
initial="hidden"
whileInView="visible"
viewport={{ once: true }}
Expand All @@ -73,9 +74,9 @@ const Footer = () => {
<div className="md:mb-16 mb-10">
<hr className="text-neutral-300"></hr>
</div>

<div className="grid lg:grid-cols-12 grid-cols-1 lg:gap-10 gap-12">
<motion.div
<motion.div
variants={fadeIn}
className="lg:col-span-6 md:pr-8"
>
Expand All @@ -92,7 +93,7 @@ const Footer = () => {
Get In Contact →
<span className="absolute inset-x-0 bottom-0 h-0.5 bg-black origin-left duration-300 transform scale-x-0 transition-transform group-hover:scale-x-100"></span>
</button>

{/* Desktop Navigation Links */}
<div className="mt-8 hidden lg:block">
<div className="grid grid-cols-2 gap-x-8 gap-y-2">
Expand Down Expand Up @@ -127,9 +128,9 @@ const Footer = () => {
</div>
</div>
</motion.div>

{/* Mobile Navigation Links - placed outside the grid */}

{data.allFooterJson.nodes[0].contact.map((detail, i) => (
<motion.div
variants={fadeIn}
Expand All @@ -151,7 +152,7 @@ const Footer = () => {
{detail.Phone}
</a>
</div>

<div className="flex flex-col gap-2">
<p className="text-body-md font-medium text-neutral-900">
Email us at:
Expand All @@ -169,7 +170,7 @@ const Footer = () => {
</span>
</a>
</div>

<div className="flex flex-col gap-2">
<p className="text-body-md font-medium text-neutral-900">
Find us at:
Expand All @@ -192,39 +193,55 @@ const Footer = () => {
</motion.div>
))}
</div>

{/* Mobile Navigation Links - after the main content grid */}
<motion.div
variants={fadeIn}
className="lg:hidden mt-12 mb-10"
>
<h4 className="text-display-xs font-display font-semibold text-neutral-900 mb-5">Site Navigation</h4>
<div className="grid grid-cols-1 gap-4">
<div className="flex flex-col space-y-3">
{navItems.map((item, index) => (
<a
key={index}
href={item.href}
className="relative inline-block group text-primary-600 hover:text-primary-700 transition-colors w-fit"
>
{item.name}
<span className="absolute inset-x-0 bottom-0 h-0.5 bg-black origin-left duration-300 transform scale-x-0 transition-transform group-hover:scale-x-100"></span>
</a>
))}
</div>

{/* Mobile Navigation Links - after the main content grid */}
<motion.div
variants={fadeIn}
className="lg:hidden mt-12 mb-10"
>
<h4 className="text-display-xs font-display font-semibold text-neutral-900 mb-5">Site Navigation</h4>
<div className="grid grid-cols-1 gap-4">
<div className="flex flex-col space-y-3">
{navItems.map((item, index) => (
<a
key={index}
href={item.href}
className="relative inline-block group text-primary-600 hover:text-primary-700 transition-colors w-fit"
>
{item.name}
<span className="absolute inset-x-0 bottom-0 h-0.5 bg-black origin-left duration-300 transform scale-x-0 transition-transform group-hover:scale-x-100"></span>
</a>
))}
</div>
</motion.div>

<div className="md:mt-16 my-10">
<hr className="text-neutral-300"></hr>
</div>
</div>
</motion.div>

{/* Memberships Section */}
<motion.div
initial="hidden"
whileInView="visible"
viewport={{ once: true }}
variants={fadeIn}
className="mt-8 md:mt-12 mb-8 md:mb-16"
>
<hr className="text-neutral-300 mb-8"></hr>
<div className="text-left lg:text-center">
{/* <p className="text-body-sm font-semibold tracking-widest text-neutral-600 mb-4 uppercase">
Professional Memberships
</p> */}
<div className="flex items-start lg:items-center justify-start lg:justify-center gap-8 lg:gap-12">
<Memberships />
</div>
</div>
<hr className="text-neutral-300 mt-8"></hr>
</motion.div>

<div className="flex lg:flex-row flex-col gap-8 lg:items-center justify-between mb-10">
<div className="text-body-md font-normal text-neutral-700 order-2 lg:order-1">
© {new Date().getFullYear()} Puretime Property Purchasing Ltd (Company No. 15621068).
Registered in England and Wales.
</div>

<div className="flex lg:flex-row flex-col lg:items-center md:gap-6 gap-4 order-1 lg:order-2">
<div className="flex flex-row items-center">
<p className="text-body-sm font-semibold tracking-widest text-primary-600 pr-4">
Expand Down Expand Up @@ -253,7 +270,8 @@ const Footer = () => {
</div>
</motion.div>
</div>



<div className="bg-primary-600 text-white">
<div className="container mx-auto py-4 px-4 text-center md:text-right">
<span className="inline-block relative cursor-pointer group mx-3">
Expand Down
24 changes: 24 additions & 0 deletions src/components/membershipItem.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import React from 'react'
import PropTypes from 'prop-types'

const MembershipItem = ({ logo, title }) => {
return (
<div className="relative group">
<img
src={logo}
width={64}
height={64}
alt={title}
className="w-8 h-8 object-contain opacity-60 hover:opacity-100 transition-opacity duration-200"
title={title}
/>
</div>
)
}

MembershipItem.propTypes = {
logo: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
}

export default MembershipItem
38 changes: 38 additions & 0 deletions src/components/memberships.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import React from 'react'
import { useStaticQuery, graphql } from 'gatsby'

import MembershipItem from './membershipItem'

const Memberships = () => {
const data = useStaticQuery(graphql`
{
allMembershipsJson {
nodes {
id
title
logo {
publicURL
}
}
}
}
`)

return (
<>
{data.allMembershipsJson.nodes.map((node) => (
<img
key={node.id}
src={node.logo.publicURL}
width={64}
height={64}
alt={node.title}
title={node.title}
className="w-16 h-16 object-contain"
/>
))}
</>
)
}

export default Memberships
39 changes: 39 additions & 0 deletions src/components/membershipsSection.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import React from 'react'
import { useStaticQuery, graphql } from 'gatsby'

const MembershipsSection = () => {
const data = useStaticQuery(graphql`
{
allMembershipsJson {
nodes {
id
title
logo {
publicURL
}
}
}
}
`)

return (
<div className="flex items-center justify-center gap-12">
{data.allMembershipsJson.nodes.map((node) => (
<div key={node.id} className="flex flex-col items-center group">
<img
src={node.logo.publicURL}
width={80}
height={80}
alt={node.title}
className="w-20 h-20 object-contain mb-3"
/>
<p className="text-sm font-medium text-neutral-600 text-center">
{node.title}
</p>
</div>
))}
</div>
)
}

export default MembershipsSection
20 changes: 4 additions & 16 deletions src/data/awards.json
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,22 +1,10 @@
[
{
"logo": "../images/award-logos/german-design-award.svg",
"title": "German Design Award",
"year": "2021"
"logo": "../images/memberships/PRS/prs.png",
"title": "Property Redress"
},
{
"logo": "../images/award-logos/a-design-award.svg",
"title": "Gold A’ Design Award",
"year": "2021"
},
{
"logo": "../images/award-logos/if-design-award.svg",
"title": "IF Design Award",
"year": "2020"
},
{
"logo": "../images/award-logos/good-design-award.svg",
"title": "Good Design Award",
"year": "2019"
"logo": "../images/memberships/ICO/ICO_Logo_WhiteOnBlue.png",
"title": "Information Commissioner's Office"
}
]
10 changes: 10 additions & 0 deletions src/data/memberships.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[
{
"logo": "../images/memberships/PRS/prs.png",
"title": "Property Redress"
},
{
"logo": "../images/memberships/ICO/ICO_Logo_WhiteOnBlue.png",
"title": "Information Commissioner's Office"
}
]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/memberships/PRS/prs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading