From 6a3c59094132236981e6274b0a15a04066ea0cef Mon Sep 17 00:00:00 2001 From: "Mr. Singleton" Date: Sat, 18 Nov 2023 10:06:04 -0500 Subject: [PATCH] Animated services (#2) * name changes for AnimatedServices to AnimatedAboutUs * framer version bump * Animated Services section * fixes for other sections with animation * componentize animated services background * cleanup --- package-lock.json | 146 +++++------------- package.json | 3 +- sanityIo/schemas/contentContainer.js | 1 + sanityIo/schemas/schema.js | 2 + .../services/AnimatedAboutUsSection.js | 78 ++++++++++ .../services/AnimatedServicesSection.js | 81 ++++++---- .../BlockContentLayoutContainer.tsx | 18 ++- src/components/BlockContentTypes.ts | 15 +- .../animated/AnimatedAboutUsItem.tsx | 131 ++++++++++------ .../animated/AnimatedAboutUsSection.tsx | 65 +------- .../animated/AnimatedServiceItem.tsx | 101 ++++++++++++ .../animated/AnimatedServicesSection.tsx | 127 +++++++++++++++ src/components/animated/BulletedHeader.tsx | 60 +++++++ src/components/animated/HorizontalAmenity.tsx | 62 ++++++++ .../AbstractShapesBackground.tsx | 119 ++++++++++++++ .../AnimatedAbstractShape.tsx | 38 +++++ .../services-v1-shape10-dark-blue.png | Bin 0 -> 10167 bytes .../services-v1-shape11-dark-blue.png | Bin 0 -> 13023 bytes .../services-v1-shape2-dark-blue.png | Bin 0 -> 8593 bytes .../services-v1-shape3-dark-blue.png | Bin 0 -> 5616 bytes .../services-v1-shape4-cyan.png | Bin 0 -> 4936 bytes .../services-v1-shape5-dark-blue.png | Bin 0 -> 19719 bytes .../services-v1-shape6-dark-blue.png | Bin 0 -> 10453 bytes .../services-v1-shape7-dark-blue.png | Bin 0 -> 4648 bytes .../services-v1-shape8-cyan.png | Bin 0 -> 3551 bytes .../services-v1-shape9-dark-blue.png | Bin 0 -> 19043 bytes src/components/block-content-ui/cmsClient.ts | 6 +- .../mackenzies-mind/header/FullTextSearch.tsx | 4 +- .../mackenzies-mind/pages/PageLayout.tsx | 1 + 29 files changed, 811 insertions(+), 247 deletions(-) create mode 100644 sanityIo/schemas/services/AnimatedAboutUsSection.js create mode 100644 src/components/animated/AnimatedServiceItem.tsx create mode 100644 src/components/animated/AnimatedServicesSection.tsx create mode 100644 src/components/animated/BulletedHeader.tsx create mode 100644 src/components/animated/HorizontalAmenity.tsx create mode 100644 src/components/animated/abstract-shapes-background/AbstractShapesBackground.tsx create mode 100644 src/components/animated/abstract-shapes-background/AnimatedAbstractShape.tsx create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape10-dark-blue.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape11-dark-blue.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape2-dark-blue.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape3-dark-blue.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape4-cyan.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape5-dark-blue.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape6-dark-blue.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape7-dark-blue.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape8-cyan.png create mode 100644 src/components/animated/abstract-shapes-background/services-v1-shape9-dark-blue.png diff --git a/package-lock.json b/package-lock.json index ceb1a8a9..7b4a3556 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "caniuse-lite": "^1.0.30001414", "clsx": "^1.2.1", "firebase": "^9.14.0", - "framer-motion": "^4.1.17", + "framer-motion": "^10.16.5", "ga-gtag": "^1.1.5", "material-ui-popup-state": "^5.0.9", "moment": "^2.29.4", @@ -34,6 +34,7 @@ "react": "^18.2.0", "react-countdown": "^2.3.2", "react-dom": "^18.2.0", + "react-intersection-observer": "^9.5.3", "react-meta-tags": "^1.0.1", "react-moment": "^1.1.1", "react-parallax": "^3.5.1", @@ -13626,12 +13627,6 @@ "esbuild": ">=0.10.0" } }, - "node_modules/@yarnpkg/esbuild-plugin-pnp/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, "node_modules/@yarnpkg/fslib": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", @@ -18718,30 +18713,26 @@ } }, "node_modules/framer-motion": { - "version": "4.1.17", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-4.1.17.tgz", - "integrity": "sha512-thx1wvKzblzbs0XaK2X0G1JuwIdARcoNOW7VVwjO8BUltzXPyONGAElLu6CiCScsOQRI7FIk/45YTFtJw5Yozw==", - "dependencies": { - "framesync": "5.3.0", - "hey-listen": "^1.0.8", - "popmotion": "9.3.6", - "style-value-types": "4.1.4", - "tslib": "^2.1.0" + "version": "10.16.5", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.5.tgz", + "integrity": "sha512-GEzVjOYP2MIpV9bT/GbhcsBNoImG3/2X3O/xVNWmktkv9MdJ7P/44zELm/7Fjb+O3v39SmKFnoDQB32giThzpg==", + "dependencies": { + "tslib": "^2.4.0" }, "optionalDependencies": { "@emotion/is-prop-valid": "^0.8.2" }, "peerDependencies": { - "react": ">=16.8 || ^17.0.0", - "react-dom": ">=16.8 || ^17.0.0" - } - }, - "node_modules/framesync": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.3.0.tgz", - "integrity": "sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==", - "dependencies": { - "tslib": "^2.1.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, "node_modules/fresh": { @@ -19329,11 +19320,6 @@ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.1.2.tgz", "integrity": "sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==" }, - "node_modules/hey-listen": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", - "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" - }, "node_modules/highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", @@ -24927,17 +24913,6 @@ "node": ">=10" } }, - "node_modules/popmotion": { - "version": "9.3.6", - "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-9.3.6.tgz", - "integrity": "sha512-ZTbXiu6zIggXzIliMi8LGxXBF5ST+wkpXGEjeTUDUOCdSQ356hij/xjeUdv0F8zCQNeqB1+PR5/BB+gC+QLAPw==", - "dependencies": { - "framesync": "5.3.0", - "hey-listen": "^1.0.8", - "style-value-types": "4.1.4", - "tslib": "^2.1.0" - } - }, "node_modules/postcss": { "version": "8.4.30", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", @@ -26911,6 +26886,14 @@ "react": "^16.8.4 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-intersection-observer": { + "version": "9.5.3", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.5.3.tgz", + "integrity": "sha512-NJzagSdUPS5rPhaLsHXYeJbsvdpbJwL6yCHtMk91hc0ufQ2BnXis+0QQ9NBh6n9n+Q3OyjR6OQLShYbaNBkThQ==", + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -28854,15 +28837,6 @@ "webpack": "^5.0.0" } }, - "node_modules/style-value-types": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.4.tgz", - "integrity": "sha512-LCJL6tB+vPSUoxgUBt9juXIlNJHtBMy8jkXzUJSBzeHWdBu6lhzHqCvLVkXFGsFIlNa2ln1sQHya/gzaFmB2Lg==", - "dependencies": { - "hey-listen": "^1.0.8", - "tslib": "^2.1.0" - } - }, "node_modules/stylehacks": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", @@ -29734,9 +29708,9 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -40846,14 +40820,6 @@ "dev": true, "requires": { "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - } } }, "@yarnpkg/fslib": { @@ -44573,24 +44539,12 @@ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" }, "framer-motion": { - "version": "4.1.17", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-4.1.17.tgz", - "integrity": "sha512-thx1wvKzblzbs0XaK2X0G1JuwIdARcoNOW7VVwjO8BUltzXPyONGAElLu6CiCScsOQRI7FIk/45YTFtJw5Yozw==", + "version": "10.16.5", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.5.tgz", + "integrity": "sha512-GEzVjOYP2MIpV9bT/GbhcsBNoImG3/2X3O/xVNWmktkv9MdJ7P/44zELm/7Fjb+O3v39SmKFnoDQB32giThzpg==", "requires": { "@emotion/is-prop-valid": "^0.8.2", - "framesync": "5.3.0", - "hey-listen": "^1.0.8", - "popmotion": "9.3.6", - "style-value-types": "4.1.4", - "tslib": "^2.1.0" - } - }, - "framesync": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.3.0.tgz", - "integrity": "sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==", - "requires": { - "tslib": "^2.1.0" + "tslib": "^2.4.0" } }, "fresh": { @@ -45021,11 +44975,6 @@ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.1.2.tgz", "integrity": "sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==" }, - "hey-listen": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", - "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" - }, "highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", @@ -49106,17 +49055,6 @@ "@babel/runtime": "^7.17.8" } }, - "popmotion": { - "version": "9.3.6", - "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-9.3.6.tgz", - "integrity": "sha512-ZTbXiu6zIggXzIliMi8LGxXBF5ST+wkpXGEjeTUDUOCdSQ356hij/xjeUdv0F8zCQNeqB1+PR5/BB+gC+QLAPw==", - "requires": { - "framesync": "5.3.0", - "hey-listen": "^1.0.8", - "style-value-types": "4.1.4", - "tslib": "^2.1.0" - } - }, "postcss": { "version": "8.4.30", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", @@ -50351,6 +50289,11 @@ "integrity": "sha512-x+b7LxhmHXjHoU/VrFAzw5iutsILRoYyDq97EDYdFpPLcvqtEzk4ZSZSQjnFPbr5T57tLXnHcqFYoN1pI6u8uQ==", "dev": true }, + "react-intersection-observer": { + "version": "9.5.3", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.5.3.tgz", + "integrity": "sha512-NJzagSdUPS5rPhaLsHXYeJbsvdpbJwL6yCHtMk91hc0ufQ2BnXis+0QQ9NBh6n9n+Q3OyjR6OQLShYbaNBkThQ==" + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -51773,15 +51716,6 @@ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==" }, - "style-value-types": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.4.tgz", - "integrity": "sha512-LCJL6tB+vPSUoxgUBt9juXIlNJHtBMy8jkXzUJSBzeHWdBu6lhzHqCvLVkXFGsFIlNa2ln1sQHya/gzaFmB2Lg==", - "requires": { - "hey-listen": "^1.0.8", - "tslib": "^2.1.0" - } - }, "stylehacks": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", @@ -52413,9 +52347,9 @@ } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "tsutils": { "version": "3.21.0", diff --git a/package.json b/package.json index 8f034d8d..fe9876f8 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "caniuse-lite": "^1.0.30001414", "clsx": "^1.2.1", "firebase": "^9.14.0", - "framer-motion": "^4.1.17", + "framer-motion": "^10.16.5", "ga-gtag": "^1.1.5", "material-ui-popup-state": "^5.0.9", "moment": "^2.29.4", @@ -29,6 +29,7 @@ "react": "^18.2.0", "react-countdown": "^2.3.2", "react-dom": "^18.2.0", + "react-intersection-observer": "^9.5.3", "react-meta-tags": "^1.0.1", "react-moment": "^1.1.1", "react-parallax": "^3.5.1", diff --git a/sanityIo/schemas/contentContainer.js b/sanityIo/schemas/contentContainer.js index 0661ab5b..b25f40a8 100644 --- a/sanityIo/schemas/contentContainer.js +++ b/sanityIo/schemas/contentContainer.js @@ -25,6 +25,7 @@ export default { {name: 'header', title: 'Header Menu',type: 'reference', to: [{type: 'menuContainer',}]}, {name: 'footer', title: 'Footer Menu',type: 'reference', to: [{type: 'menuContainer',}]}, {name: 'HeroAnimatedContentSection', title: 'Animated Hero Content',type: 'reference', to: [{type: 'HeroAnimatedContentSection'}]}, + {name: 'AnimatedAboutUsSection', title: 'Animated About Us Section',type: 'reference', to: [{type: 'AnimatedAboutUsSection'}]}, {name: 'AnimatedServicesSection', title: 'Animated Services Section',type: 'reference', to: [{type: 'AnimatedServicesSection'}]}, {name: 'Resume Bio Section', title: 'Resume Bio Section',type: 'reference', to: [{type: 'ResumeBioSection'}]}, {name: 'Resume Skill Section', title: 'Resume Skill Section',type: 'reference', to: [{type: 'ResumeSkillSection'}]}, diff --git a/sanityIo/schemas/schema.js b/sanityIo/schemas/schema.js index 7033a55c..a2cac0a0 100644 --- a/sanityIo/schemas/schema.js +++ b/sanityIo/schemas/schema.js @@ -84,6 +84,7 @@ import scheduleGroup from "./scheduleGroup"; import scheduleEntry from "./scheduleEntry"; import AnimatedHeroContentSection from "./sections/hero/AnimatedHeroContentSection"; import HeroSlideContent from "./sections/hero/HeroSlideContent"; +import AnimatedAboutUsSection from "./services/AnimatedAboutUsSection"; import AnimatedServicesSection from "./services/AnimatedServicesSection"; // Then we give our schema to the builder and provide the result to Sanity @@ -174,6 +175,7 @@ export default [ scheduleGroup, scheduleEntry, AnimatedHeroContentSection, + AnimatedAboutUsSection, AnimatedServicesSection, HeroSlideContent ] diff --git a/sanityIo/schemas/services/AnimatedAboutUsSection.js b/sanityIo/schemas/services/AnimatedAboutUsSection.js new file mode 100644 index 00000000..6e8c75a4 --- /dev/null +++ b/sanityIo/schemas/services/AnimatedAboutUsSection.js @@ -0,0 +1,78 @@ +export default { + name: 'AnimatedAboutUsSection', + title: "Animated About Us Section", + type: 'document', + fields: [ + { + name: 'name', + title: 'Name', + type: 'string', + }, + { + name: 'heroBullet', + title: 'Hero Bullet', + type: 'image', + }, + { + name: 'contentPreTitle', + title: 'Pre Title', + type: 'string', + }, + { + name: 'contentTitle', + title: 'Large Title', + type: 'string', + }, + { + name: 'contentTexts', + title: 'Content Text', + type: 'array', + of: [{type: 'text'}] + }, + { + name: 'highlightedAmenitiesTitle', + title: 'Highlighted Amenities Title', + type: 'string', + }, + { + name: 'highlightedAmenities', + title: 'Highlighted Amenities', + type: 'array', + validation: Rule => Rule.max(2), + of: [{type: 'ServiceAmenityItem'}] + }, + { + name: 'highlightedAmenitiesTexts', + title: 'Highlighted Amenities Texts', + type: 'array', + of: [{type: 'text'}] + }, + { + name: 'highlightedAmenitiesBullets', + title: 'Highlighted Amenities Bullets', + type: 'array', + of: [{type: 'string'}] + }, + { + name: 'servicesImageSrcArr', + title: 'Services Images', + type: 'array', + validation: Rule => Rule.max(3), + of: [{type: 'image'}] + }, + { + name: 'servicesMasonryAccentImageSrc', + title: 'servicesMasonryAccent', + type: 'image', + }, + { + name: 'servicesList', + title: 'List Items', + type: 'array', + of: [{type: 'reference', to: {type: 'ServiceItem'}}] + } + ] +} + + + diff --git a/sanityIo/schemas/services/AnimatedServicesSection.js b/sanityIo/schemas/services/AnimatedServicesSection.js index 06617682..743770da 100644 --- a/sanityIo/schemas/services/AnimatedServicesSection.js +++ b/sanityIo/schemas/services/AnimatedServicesSection.js @@ -29,48 +29,69 @@ export default { type: 'array', of: [{type: 'text'}] }, + // { + // name: 'highlightedAmenitiesTitle', + // title: 'Highlighted Amenities Title', + // type: 'string', + // }, + // { + // name: 'highlightedAmenities', + // title: 'Highlighted Amenities', + // type: 'array', + // validation: Rule => Rule.max(2), + // of: [{type: 'ServiceAmenityItem'}] + // }, + // { + // name: 'highlightedAmenitiesTexts', + // title: 'Highlighted Amenities Texts', + // type: 'array', + // of: [{type: 'text'}] + // }, + // { + // name: 'highlightedAmenitiesBullets', + // title: 'Highlighted Amenities Bullets', + // type: 'array', + // of: [{type: 'string'}] + // }, + // { + // name: 'servicesImageSrcArr', + // title: 'Services Images', + // type: 'array', + // validation: Rule => Rule.max(3), + // of: [{type: 'image'}] + // }, + // { + // name: 'servicesMasonryAccentImageSrc', + // title: 'servicesMasonryAccent', + // type: 'image', + // }, { - name: 'highlightedAmenitiesTitle', - title: 'Highlighted Amenities Title', - type: 'string', - }, - { - name: 'highlightedAmenities', - title: 'Highlighted Amenities', + name: 'servicesList', + title: 'List Items', type: 'array', - validation: Rule => Rule.max(2), - of: [{type: 'ServiceAmenityItem'}] + of: [{type: 'reference', to: {type: 'ServiceItem'}}] }, { - name: 'highlightedAmenitiesTexts', - title: 'Highlighted Amenities Texts', - type: 'array', - of: [{type: 'text'}] + name: 'contentSummaryTitle', + title: 'Content Summary Title', + type: 'string', }, { - name: 'highlightedAmenitiesBullets', - title: 'Highlighted Amenities Bullets', + name: 'contentSummaryTexts', + title: 'Content Summary Text', type: 'array', - of: [{type: 'string'}] + of: [{type: 'text'}] }, { - name: 'servicesImageSrcArr', - title: 'Services Images', - type: 'array', - validation: Rule => Rule.max(3), - of: [{type: 'image'}] + name: 'ctaButtonText', + title: 'CTA Button Text', + type: 'string' }, { - name: 'servicesMasonryAccentImageSrc', - title: 'servicesMasonryAccent', - type: 'image', + name: 'ctaButtonLink', + title: 'CTA Button Link', + type: 'string' }, - { - name: 'servicesList', - title: 'List Items', - type: 'array', - of: [{type: 'reference', to: {type: 'ServiceItem'}}] - } ] } diff --git a/src/components/BlockContentLayoutContainer.tsx b/src/components/BlockContentLayoutContainer.tsx index a947909f..a7da10af 100644 --- a/src/components/BlockContentLayoutContainer.tsx +++ b/src/components/BlockContentLayoutContainer.tsx @@ -4,7 +4,7 @@ import {Card, Grid, Link} from '@mui/material' import sanityClient from '../sanityClient' import {blockSerializers} from '../common/sanityIo/BlockContentRenderer' import { - AnimatedServicesSectionType, + AnimatedAboutUsSectionType, AnimatedServicesSectionType, HeroAnimatedContentSectionType, HowItWorksSectionType, PortfolioSectionType, @@ -55,6 +55,7 @@ import WebDevHowItWorksSection from "./templates/web-dev-site/WebDevHowItWorksSe import TheWebsiteTheme from "../theme/Theme"; import HeroAnimatedContentSection from "./animated/HeroAnimatedContentSection"; import AnimatedAboutUsSection from "./animated/AnimatedAboutUsSection"; +import AnimatedServicesSection from './animated/AnimatedServicesSection' export type BlockContentLayoutContainerProps = { content?: any, @@ -414,13 +415,24 @@ const BlockContentLayoutContainer: FunctionComponent ); - case 'AnimatedServicesSection': - const animatedServicesSection: AnimatedServicesSectionType = columnLayoutContainer + case 'AnimatedAboutUsSection': + const animatedAboutusSection: AnimatedAboutUsSectionType = columnLayoutContainer return ( <> + + ); + case 'AnimatedServicesSection': + const animatedServicesSection: AnimatedServicesSectionType = columnLayoutContainer + return ( + + <> + + diff --git a/src/components/BlockContentTypes.ts b/src/components/BlockContentTypes.ts index 3b9c004b..7c24c8d3 100644 --- a/src/components/BlockContentTypes.ts +++ b/src/components/BlockContentTypes.ts @@ -212,7 +212,7 @@ export type AnimatedServiceItemNoRefType = { slug: SanitySlug } & SanityDocumentFields -export type AnimatedServicesSectionType = { +export type AnimatedAboutUsSectionType = { name: string heroBullet?:SanityImageAsset title:string @@ -229,6 +229,19 @@ export type AnimatedServicesSectionType = { servicesMasonryAccentImageSrc: SanityImageAsset } +export type AnimatedServicesSectionType = { + name: string + heroBullet?:SanityImageAsset + contentTitle: string + contentPreTitle: string + contentTexts: string[] + servicesList: AnimatedServiceItemNoRefType[] + contentSummaryTitle: string + contentSummaryTexts: string[] + ctaButtonText: string + ctaButtonLink: string +} + export type ThwServicesSectionType = { name: string contentTitle: string diff --git a/src/components/animated/AnimatedAboutUsItem.tsx b/src/components/animated/AnimatedAboutUsItem.tsx index 851d341f..d8bf032b 100644 --- a/src/components/animated/AnimatedAboutUsItem.tsx +++ b/src/components/animated/AnimatedAboutUsItem.tsx @@ -5,6 +5,7 @@ import {AnimatedServiceItemNoRefType} from "../BlockContentTypes"; import ImageWIthButtonOverlay from "../image-with-button-overlay/ImageWithButtonOverlay"; import CustomizedThemeContext from "../customized-theme-provider/CustomizedThemeContext"; import {urlFor} from "../block-content-ui/static-pages/cmsStaticPagesClient"; +import {motion, useAnimationControls} from "framer-motion"; interface IProps { @@ -17,58 +18,100 @@ interface IProps { const AnimatedAboutUsItem: FunctionComponent = (props: IProps) => { const customizedTheme = useContext(CustomizedThemeContext) + const controls = useAnimationControls() + const textColorControls = useAnimationControls() + const overlayControl = useAnimationControls() + + const animateServiceHover = async () => { + overlayControl.start({opacity: 1}, {duration: .5}) + controls.start({scale: 1}, {duration: .5}) + textColorControls.start({color: customizedTheme.customizedTheme.palette.primary.main}) + } + + const animateServiceNoHover = async () => { + controls.start({scale: 1.1}, {duration: .25}) + overlayControl.start({opacity: 0}, {duration: .5}) + textColorControls.start({color: customizedTheme.customizedTheme.palette.text.primary}) + } + return ( - - - - + { + animateServiceHover() + }} onHoverEnd={async () => { + animateServiceNoHover() + }}> + + + + + + + + + + + - - - - + + + + + + + + + - - - - - - {props.service.contentTitle} - - - {props.service.contentText} + + + + {props.service.contentTitle} + + + + {props.service.contentText} + - - + + ) } diff --git a/src/components/animated/AnimatedAboutUsSection.tsx b/src/components/animated/AnimatedAboutUsSection.tsx index 47d17b26..764eac9c 100644 --- a/src/components/animated/AnimatedAboutUsSection.tsx +++ b/src/components/animated/AnimatedAboutUsSection.tsx @@ -4,11 +4,12 @@ import makeStyles from '@mui/styles/makeStyles'; import {Card, Grid, Typography} from '@mui/material' import AnimatedAboutUsItem from "./AnimatedAboutUsItem"; import CustomizedThemeContext from "../customized-theme-provider/CustomizedThemeContext"; -import {AnimatedServiceItemNoRefType, AnimatedServicesSectionType, ServiceAmenityType} from "../BlockContentTypes"; +import {AnimatedAboutUsSectionType, AnimatedServiceItemNoRefType, ServiceAmenityType} from "../BlockContentTypes"; import {urlFor} from "../block-content-ui/static-pages/cmsStaticPagesClient"; import {Circle} from "@mui/icons-material"; -import {motion} from "framer-motion" -import widthUtils from "../../utils/widthUtils"; +import {motion, useAnimationControls} from "framer-motion" +import BulletedHeader from "./BulletedHeader"; +import HorizontalAmenity from "./HorizontalAmenity"; export const useStyles = makeStyles((theme: Theme) => ({ root: { @@ -19,7 +20,7 @@ export const useStyles = makeStyles((theme: Theme) => ({ interface IProps { - sectionData: AnimatedServicesSectionType + sectionData: AnimatedAboutUsSectionType } const AnimatedAboutUsSection: FunctionComponent = (props) => { @@ -40,31 +41,7 @@ const AnimatedAboutUsSection: FunctionComponent = (props) => { spacing={2} justifyContent='center'> - - - {props.sectionData?.heroBullet && - } - - - {props.sectionData.contentPreTitle} - - + @@ -89,35 +66,7 @@ const AnimatedAboutUsSection: FunctionComponent = (props) => { {props.sectionData.highlightedAmenities?.map((amenity: ServiceAmenityType, index: number) => { - return - - - - - - - - - - {amenity.name} - - - {amenity.description} - - - + return })} diff --git a/src/components/animated/AnimatedServiceItem.tsx b/src/components/animated/AnimatedServiceItem.tsx new file mode 100644 index 00000000..93dec76f --- /dev/null +++ b/src/components/animated/AnimatedServiceItem.tsx @@ -0,0 +1,101 @@ +import React, {FunctionComponent, useContext} from 'react' +import {Card, Grid, ThemeProvider, Typography} from '@mui/material' +import {v4 as uuidv4} from 'uuid' +import {AnimatedServiceItemNoRefType} from "../BlockContentTypes"; +import CustomizedThemeContext from "../customized-theme-provider/CustomizedThemeContext"; +import {urlFor} from "../block-content-ui/static-pages/cmsStaticPagesClient"; +import ColoredPng from "../colored-png/ColoredPng"; +import {motion, useAnimationControls} from "framer-motion" + +interface IProps { + service: AnimatedServiceItemNoRefType + hideLearnMoreButton?: boolean + hideCtaButton?: boolean + source?: string + showAmenities?: boolean +} + +const AnimatedServiceItem: FunctionComponent = (props: IProps) => { + const customizedTheme = useContext(CustomizedThemeContext) + const controls = useAnimationControls() + + const animateShrinkIcon = async () => { + await controls.start({scale: 1}) + } + + const animateGrowIcon = async () => { + await controls.start({scale: 1.1}) + } + + return ( + + { + await animateShrinkIcon() + }} + onHoverEnd={() => { + animateGrowIcon() + }} + > + + + + + + + + + + + + + + + {props.service.contentTitle} + + + {props.service.contentText} + + + + + + + ) +} + +export default AnimatedServiceItem \ No newline at end of file diff --git a/src/components/animated/AnimatedServicesSection.tsx b/src/components/animated/AnimatedServicesSection.tsx new file mode 100644 index 00000000..03483415 --- /dev/null +++ b/src/components/animated/AnimatedServicesSection.tsx @@ -0,0 +1,127 @@ +import React, {FunctionComponent, useContext} from 'react' +import {Theme, ThemeProvider} from '@mui/material/styles'; +import makeStyles from '@mui/styles/makeStyles'; +import {Button, Grid, Typography} from '@mui/material' +import CustomizedThemeContext from "../customized-theme-provider/CustomizedThemeContext"; +import {AnimatedServiceItemNoRefType, AnimatedServicesSectionType} from "../BlockContentTypes"; +import firebaseAnalyticsClient from "../../common/firebase/FirebaseAnalyticsClient"; +import PageContext from "../page-context/PageContext"; +import AnimatedServiceItem from "./AnimatedServiceItem"; +import BulletedHeader from "./BulletedHeader"; +import shape2 from "./abstract-shapes-background/services-v1-shape2-dark-blue.png" +import shape3 from "./abstract-shapes-background/services-v1-shape3-dark-blue.png" +import shape4 from "./abstract-shapes-background/services-v1-shape4-cyan.png" +import shape5 from "./abstract-shapes-background/services-v1-shape5-dark-blue.png" +import shape6 from "./abstract-shapes-background/services-v1-shape6-dark-blue.png" +import shape7 from "./abstract-shapes-background/services-v1-shape7-dark-blue.png" +import shape8 from "./abstract-shapes-background/services-v1-shape8-cyan.png" +import shape9 from "./abstract-shapes-background/services-v1-shape9-dark-blue.png" +import shape10 from "./abstract-shapes-background/services-v1-shape10-dark-blue.png" +import shape11 from "./abstract-shapes-background/services-v1-shape11-dark-blue.png" +import AbstractShapesBackground from "./abstract-shapes-background/AbstractShapesBackground"; + +export const useStyles = makeStyles((theme: Theme) => ({ + root: { + paddingTop: '56px', + paddingBottom: '64px', + overflow: "hidden" + }, +})) + + +interface IProps { + sectionData: AnimatedServicesSectionType +} + +const AnimatedServicesSection: FunctionComponent = (props) => { + const classes = useStyles() + + const pageContext = useContext(PageContext) + // const mdDown = widthUtils.useIsWidthDown('md') + const customizedThemeContext = useContext(CustomizedThemeContext) + + return ( + + + + + + + + + + + {props.sectionData.contentTitle} + + + + + + {props.sectionData?.contentTexts?.map((segment: string, index: number) => ( + + {segment} + ))} + + + + + + {props.sectionData.servicesList?.map((service: AnimatedServiceItemNoRefType, index: number) => { + return + })} + + + + + {props.sectionData.contentSummaryTitle} + + + + {props.sectionData?.contentSummaryTexts?.map((segment: string, index: number) => ( + + {segment} + ))} + + + + + + + + + + ) +} + +export default AnimatedServicesSection \ No newline at end of file diff --git a/src/components/animated/BulletedHeader.tsx b/src/components/animated/BulletedHeader.tsx new file mode 100644 index 00000000..ad0915a6 --- /dev/null +++ b/src/components/animated/BulletedHeader.tsx @@ -0,0 +1,60 @@ +import React, {FunctionComponent, useContext} from 'react' +import {Grid, Typography} from "@mui/material"; +import CustomizedThemeContext from "../customized-theme-provider/CustomizedThemeContext"; +import {urlFor} from "../block-content-ui/static-pages/cmsStaticPagesClient"; +import makeStyles from "@mui/styles/makeStyles"; +import {Theme} from "@mui/material/styles"; +import {SanityImageAsset} from "../BlockContentTypes"; +import ColoredPng from "../colored-png/ColoredPng"; + +export const useStyles = makeStyles((theme: Theme) => ({ + root: {}, +})) + +interface IProps { + textContent?: string + heroBullet?: SanityImageAsset + color?: string + isCenter?: boolean +} + +const BulletedHeader: FunctionComponent = (props: IProps) => { + const classes = useStyles() + + React.useEffect(() => { + }, []) + const customizedThemeContext = useContext(CustomizedThemeContext) + + + return ( + + {props.heroBullet && + + // + } + + + + {props.textContent} + + ) +} + +export default BulletedHeader \ No newline at end of file diff --git a/src/components/animated/HorizontalAmenity.tsx b/src/components/animated/HorizontalAmenity.tsx new file mode 100644 index 00000000..34ce2524 --- /dev/null +++ b/src/components/animated/HorizontalAmenity.tsx @@ -0,0 +1,62 @@ +import React, {FunctionComponent, useContext} from 'react' +import {Card, Grid, Typography} from "@mui/material"; +import {motion, useAnimationControls} from "framer-motion"; +import {urlFor} from "../block-content-ui/static-pages/cmsStaticPagesClient"; +import CustomizedThemeContext from "../customized-theme-provider/CustomizedThemeContext"; +import {ServiceAmenityType} from "../BlockContentTypes"; +import makeStyles from "@mui/styles/makeStyles"; +import {Theme} from "@mui/material/styles"; + +export const useStyles = makeStyles((theme: Theme) => ({ + root: {}, +})) + +interface IProps { + amenity: ServiceAmenityType +} + +const HorizontalAmenity: FunctionComponent = (props: IProps) => { + const customizedThemeContext = useContext(CustomizedThemeContext) + + const controls = useAnimationControls() + + const animateFlipIcon = async () => { + await controls.start({rotateY: 180},{duration: .5}) + } + + const animateUnFlipIcon = async () => { + await controls.start({rotateY: 0}, {duration: .2}) + } + + return ( + + + + + + + + + + + {props.amenity.name} + + + {props.amenity.description} + + + ) +} + +export default HorizontalAmenity diff --git a/src/components/animated/abstract-shapes-background/AbstractShapesBackground.tsx b/src/components/animated/abstract-shapes-background/AbstractShapesBackground.tsx new file mode 100644 index 00000000..fbeb0d9e --- /dev/null +++ b/src/components/animated/abstract-shapes-background/AbstractShapesBackground.tsx @@ -0,0 +1,119 @@ +import React, {FunctionComponent, useContext} from 'react' +import shape3 from "./services-v1-shape3-dark-blue.png"; +import shape9 from "./services-v1-shape9-dark-blue.png"; +import shape11 from "./services-v1-shape11-dark-blue.png"; +import shape4 from "./services-v1-shape4-cyan.png"; +import shape7 from "./services-v1-shape7-dark-blue.png"; +import shape8 from "./services-v1-shape8-cyan.png"; +import shape5 from "./services-v1-shape5-dark-blue.png"; +import shape2 from "./services-v1-shape2-dark-blue.png"; +import shape6 from "./services-v1-shape6-dark-blue.png"; +import shape10 from "./services-v1-shape10-dark-blue.png"; +import CustomizedThemeContext from "../../customized-theme-provider/CustomizedThemeContext"; +import {Grid} from "@mui/material"; +import makeStyles from "@mui/styles/makeStyles"; +import {Theme} from "@mui/material/styles"; +import AnimatedAbstractShape from "./AnimatedAbstractShape"; + +export const useStyles = makeStyles((theme: Theme) => ({ + root: {}, +})) + +interface IProps { +} + +const AbstractShapesBackground: FunctionComponent = (props: IProps) => { + const customizedThemeContext = useContext(CustomizedThemeContext) + + const shape2Variants = { + onScreen: {top: 0, transition: {duration: .45}}, + offScreen: {top: -440, transition: {duration: .45}} + }; + + const shape3Variants = { + onScreen: {bottom: -5, transition: {duration: .5}}, + offScreen: {bottom: -500, transition: {duration: .5}} + }; + + const shape4Variants = { + onScreen: {bottom: -5, transition: {duration: .75}}, + offScreen: {bottom: -300, transition: {duration: .75}} + }; + + const shape5Variants = { + onScreen: {top: 0, transition: {duration: .45}}, + offScreen: {top: -900, transition: {duration: .45}} + }; + + const shape6Variants = { + onScreen: {right: 0, top: 0, transition: {duration: .45}}, + offScreen: {right: 0, top: -720, transition: {duration: .45}} + }; + + const shape7Variants = { + onScreen: {right: 0, top: 0, transition: {duration: 1}}, + offScreen: {right: 0, top: -250, transition: {duration: 1}} + }; + + const shape8Variants = { + onScreen: {right: 0, top: 0, transition: {duration: .45}}, + offScreen: {right: 0, top: -250, transition: {duration: .45}} + }; + + const shape9Variants = { + onScreen: {bottom: 0, transition: {duration: .65}}, + offScreen: {bottom: -900, transition: {duration: .65}} + }; + + const shape10Variants = { + onScreen: {top: 0, right: 0, bottom: 0, transition: {duration: .45}}, + offScreen: {top: -980, right: 0, bottom: 0, transition: {duration: .45}} + }; + + const shape11Variants = { + onScreen: {bottom: 0, transition: {duration: .55}}, + offScreen: {bottom: -800, transition: {duration: .55}} + }; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default AbstractShapesBackground \ No newline at end of file diff --git a/src/components/animated/abstract-shapes-background/AnimatedAbstractShape.tsx b/src/components/animated/abstract-shapes-background/AnimatedAbstractShape.tsx new file mode 100644 index 00000000..6449f52a --- /dev/null +++ b/src/components/animated/abstract-shapes-background/AnimatedAbstractShape.tsx @@ -0,0 +1,38 @@ +import React, {FunctionComponent} from 'react' +import shape4 from "./services-v1-shape4-cyan.png"; +import {motion, useAnimation, Variants} from "framer-motion"; +import {useInView} from "react-intersection-observer"; +import makeStyles from "@mui/styles/makeStyles"; +import {Theme} from "@mui/material/styles"; + +export const useStyles = makeStyles((theme: Theme) => ({ + root: { + }, +})) + +interface IProps { shapeVariants:Variants, opacity?: number, image: any } + +const AnimatedAbstractShape: FunctionComponent = (props:IProps) => { + const shapeControls = useAnimation(); + const [shapeRef, shapeInView] = useInView(); + + React.useEffect(() => { + if (shapeInView) { + shapeControls.start("onScreen"); + } + else { + shapeControls.start("offScreen"); + } + }, [shapeControls, shapeInView]); + + return ( + abstract shape + ) +} + +export default AnimatedAbstractShape \ No newline at end of file diff --git a/src/components/animated/abstract-shapes-background/services-v1-shape10-dark-blue.png b/src/components/animated/abstract-shapes-background/services-v1-shape10-dark-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..3424923f6fa26c40866f958ae6d3c91180072880 GIT binary patch literal 10167 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 literal 0 HcmV?d00001 diff --git a/src/components/animated/abstract-shapes-background/services-v1-shape2-dark-blue.png b/src/components/animated/abstract-shapes-background/services-v1-shape2-dark-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..6891db0553cc2f2c9cf98c2d24cfef0adb46199a GIT binary patch literal 8593 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 literal 0 HcmV?d00001 diff --git a/src/components/animated/abstract-shapes-background/services-v1-shape3-dark-blue.png b/src/components/animated/abstract-shapes-background/services-v1-shape3-dark-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..88785b8cf4d0e1a50b34c85553abf8cb463555dd GIT binary patch literal 5616 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 literal 0 HcmV?d00001 diff --git a/src/components/animated/abstract-shapes-background/services-v1-shape4-cyan.png b/src/components/animated/abstract-shapes-background/services-v1-shape4-cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ab9c77ad23b2529dc2fac290f5ba8e7f1d9ad5 GIT binary patch literal 4936 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 literal 0 HcmV?d00001 diff --git a/src/components/animated/abstract-shapes-background/services-v1-shape5-dark-blue.png b/src/components/animated/abstract-shapes-background/services-v1-shape5-dark-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..0d0f73dbe4e04f57d191865520cbe7658ce44484 GIT binary patch literal 19719 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 HaW4K3My&70 literal 0 HcmV?d00001 diff --git a/src/components/animated/abstract-shapes-background/services-v1-shape7-dark-blue.png b/src/components/animated/abstract-shapes-background/services-v1-shape7-dark-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..1eef732126c6fe471647ec06bb427ff9573a7a7e GIT binary patch literal 4648 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 H$Ti}>9^kr3 literal 0 HcmV?d00001 diff --git a/src/components/animated/abstract-shapes-background/services-v1-shape9-dark-blue.png b/src/components/animated/abstract-shapes-background/services-v1-shape9-dark-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..833ffaffe842c127fe5e5d95f96a721f254a9504 GIT binary patch literal 19043 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 I>z)4jKXQ_FasU7T literal 0 HcmV?d00001 diff --git a/src/components/block-content-ui/cmsClient.ts b/src/components/block-content-ui/cmsClient.ts index 1fa9791e..f86c0f47 100644 --- a/src/components/block-content-ui/cmsClient.ts +++ b/src/components/block-content-ui/cmsClient.ts @@ -475,12 +475,14 @@ const fullTextSearch = (textToSearch: string): Promise => { title, name, contentText, + contentTexts, contentTitle, contentPreTitle, highlightedAmenitiesTitle, highlightedAmenitiesText, - contentTexts, - contentWelcomeMessage + contentWelcomeMessage, + contentSummaryTitle, + contentSummaryTexts ] match '*${textToSearch}*']`, // {searchText: textToSearch} ).then((data: any) => { diff --git a/src/components/templates/mackenzies-mind/header/FullTextSearch.tsx b/src/components/templates/mackenzies-mind/header/FullTextSearch.tsx index 59cf8965..a31ef2dd 100644 --- a/src/components/templates/mackenzies-mind/header/FullTextSearch.tsx +++ b/src/components/templates/mackenzies-mind/header/FullTextSearch.tsx @@ -10,7 +10,7 @@ import {Theme} from "@mui/material/styles"; import TheWebsiteTheme from "../../../../theme/Theme"; import ServiceItem from "../../../../../sanityIo/schemas/services/ServiceItem"; import { - AnimatedServicesSectionType, + AnimatedAboutUsSectionType, HeroAnimatedContentSectionType, SanityHeroContentSlide, ServiceItemNoRefType } from "../../../BlockContentTypes"; @@ -140,7 +140,7 @@ const FullTextSearch: FunctionComponent = (props: IProps) => { case "AnimatedServicesSection": - const convertedAnimatedServicesSection: AnimatedServicesSectionType = theResult; + const convertedAnimatedServicesSection: AnimatedAboutUsSectionType = theResult; console.log(convertedAnimatedServicesSection) return diff --git a/src/components/templates/mackenzies-mind/pages/PageLayout.tsx b/src/components/templates/mackenzies-mind/pages/PageLayout.tsx index 43041f39..2b267626 100644 --- a/src/components/templates/mackenzies-mind/pages/PageLayout.tsx +++ b/src/components/templates/mackenzies-mind/pages/PageLayout.tsx @@ -63,6 +63,7 @@ const PageLayout: FunctionComponent = (props: IProps) => { backgroundColor: "white", position: "static", bottom: 0, + zIndex: 10, padding: theme.spacing(1, 3, .5) }} // xs={11}