-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into feat_our_solutions
Signed-off-by: Dwight Spencer (denzuko@mastodon.social) <dwight@lumeo.network>
- Loading branch information
Showing
14 changed files
with
351 additions
and
34,004 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,9 @@ | ||
Copyright (c) 2024 3um Group. | ||
Copyright (c) 2024 3um Group. All Rights Reserved. | ||
|
||
Permission is hereby granted, to any person obtaining a copy of this software | ||
and associated documentation files (the "Software"), to deal in the Software | ||
without restriction, including with limitation the rights to use, copy, publish, | ||
and/or distribute, and to permit persons to whom the Software is furnished to do | ||
so, subject to the following conditions: | ||
IMPORTANT: This 3UM software is supplied to you by 3UM, Inc. ("3UM") in consideration of your agreement to the following terms, and your use, installation, modification or redistribution of this 3UM software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, modify or redistribute this 3UM software. | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
In consideration of your agreement to abide by the following terms, and subject to these terms, 3UM grants you a personal, non-exclusive license, under 3UM's copyrights in this original 3UM software (the "3UM Software"), to use, reproduce, modify and redistribute the 3UM Software, with or without modifications, in source and/or binary forms; provided that if you redistribute the 3UM Software in its entirety and without modifications, you must retain this notice and the following text and disclaimers in all such redistributions of the 3UM Software. Neither the name, trademarks, service marks or logos of 3UM may be used to endorse or promote products derived from the 3UM Software without specific prior written permission from 3UM. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by 3UM herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the 3UM Software may be incorporated. | ||
|
||
The 3UM Software is provided by 3UM on an "AS IS" basis. 3UM MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE 3UM SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. | ||
IN NO EVENT SHALL 3UM BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE 3UM SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF 3UM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
"use client"; | ||
import React, { useState, useCallback } from "react"; | ||
|
||
const NewsLetter: React.FC = () => { | ||
const [email, setEmail] = useState<string>(""); | ||
const [isLoading, setIsLoading] = useState<boolean>(false); | ||
const [showModal, setShowModal] = useState<boolean>(false); | ||
|
||
const HUBSPOT_PORTAL_ID = process.env.HUBSPOT_PORTAL_ID; | ||
const HUBSPOT_FORM_ID = process.env.HUBSPOT_FORM_ID; | ||
|
||
|
||
|
||
|
||
const handleSubmit = useCallback(async (e: React.FormEvent<HTMLFormElement>) => { | ||
e.preventDefault(); | ||
if (!email) { | ||
return; | ||
} | ||
|
||
setIsLoading(true); | ||
try { | ||
const response = await fetch( | ||
`https://api.hsforms.com/submissions/v3/integration/submit/${HUBSPOT_PORTAL_ID}/${HUBSPOT_FORM_ID}`, | ||
{ | ||
method: "POST", | ||
headers: { | ||
"Content-Type": "application/json", | ||
}, | ||
body: JSON.stringify({ | ||
fields: [ | ||
{ | ||
name: "email", | ||
value: email, | ||
}, | ||
], | ||
context: { | ||
pageUri: window.location.href, | ||
pageName: document.title, | ||
}, | ||
}), | ||
} | ||
); | ||
|
||
if (response.ok) { | ||
setShowModal(true); | ||
setEmail(""); | ||
} else { | ||
const errorData = await response.json(); | ||
console.error("HubSpot API error:", errorData); | ||
} | ||
} catch (error) { | ||
console.error(error); | ||
} finally { | ||
setIsLoading(false); | ||
} | ||
}, [email]); | ||
|
||
const closeModal = () => { | ||
setShowModal(false); | ||
}; | ||
|
||
return ( | ||
<div className="mt-6"> | ||
<h5 className="font-heading-size-100 font-extrabold text-gray-50"> | ||
Supercharge your inbox | ||
</h5> | ||
<p className="font-paragraph-size-200 pb-3 pt-1 font-medium"> | ||
Sign up for our developer newsletter. | ||
</p> | ||
<form className="flex items-center space-x-4" onSubmit={handleSubmit}> | ||
<input | ||
className="block w-2/3 px-5 py-3 outline-none border rounded shadow-sm text-gray-300 border-[#3c3c3c] bg-[#121212] focus:border-white focus:ring-1 focus:ring-white" | ||
type="email" | ||
placeholder="Your e-mail" | ||
value={email} | ||
onChange={(e) => setEmail(e.target.value)} | ||
required | ||
/> | ||
<button | ||
className="group relative w-1/3 rounded-lg bg-gray-100 text-gray-700 px-4 py-3 transition-all hover:text-gray-500" | ||
type="submit" | ||
disabled={isLoading} | ||
> | ||
{isLoading ? "Subscribing..." : "Subscribe"} | ||
</button> | ||
</form> | ||
|
||
{showModal && ( | ||
<div className="fixed inset-0 flex items-center justify-center bg-black bg-opacity-50 z-[9999]" onClick={closeModal}> | ||
<div className="w-96 h-48 border rounded-lg p-5 shadow bg-white" onClick={(e) => e.stopPropagation()}> | ||
<h2 className="text-lg text-center text-gray-600 leading-relaxed mt-3"> | ||
Successfully Subscribed To Our Developer Newsletter !!! | ||
</h2> | ||
<div className="flex justify-center items-center mt-3"> | ||
<button | ||
className="w-32 py-2 bg-3UM-color hover:bg-black text-white text-sm font-medium rounded-md" | ||
onClick={closeModal} | ||
> | ||
OK | ||
</button> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
)} | ||
</div> | ||
); | ||
}; | ||
|
||
export default NewsLetter; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
import Script from "next/script"; | ||
|
||
const PrivacyControls = () => { | ||
return ( | ||
<> | ||
<Script | ||
id="iubenda-config" | ||
type="text/javascript" | ||
dangerouslySetInnerHTML={{ | ||
__html: ` | ||
var _iub = _iub || []; | ||
_iub.csConfiguration = { | ||
"askConsentAtCookiePolicyUpdate": true, | ||
"enableFadp": true, | ||
"enableLgpd": true, | ||
"enableUspr": true, | ||
"fadpApplies": true, | ||
"floatingPreferencesButtonDisplay": "bottom-left", | ||
"lang": "en", | ||
"perPurposeConsent": true, | ||
"siteId": 3689309, | ||
"usprApplies": true, | ||
"usPreferencesWidgetDisplay": "inline-center", | ||
"whitelabel": false, | ||
"cookiePolicyId": 38920869, | ||
"banner": { | ||
"acceptButtonDisplay": true, | ||
"closeButtonDisplay": false, | ||
"customizeButtonDisplay": true, | ||
"explicitWithdrawal": true, | ||
"listPurposes": true, | ||
"ownerName": "3umgroup.com/", | ||
"position": "bottom", | ||
"rejectButtonDisplay": true, | ||
"showTitle": false, | ||
"showTotalNumberOfProviders": true | ||
} | ||
}; | ||
`, | ||
}} | ||
/> | ||
<Script | ||
type="text/javascript" | ||
src="https://cs.iubenda.com/autoblocking/3689309.js" | ||
/> | ||
<Script type="text/javascript" src="//cdn.iubenda.com/cs/gpp/stub.js" /> | ||
<Script | ||
type="text/javascript" | ||
src="//cdn.iubenda.com/cs/iubenda_cs.js" | ||
charSet="UTF-8" | ||
async | ||
/> | ||
<Script | ||
id="hs-script-loader" | ||
type="text/javascript" | ||
async | ||
defer | ||
src="//js-na1.hs-scripts.com/46648362.js" | ||
/> | ||
</> | ||
); | ||
}; | ||
|
||
export default PrivacyControls; |
Oops, something went wrong.