Skip to content

Commit 2b7a222

Browse files
committed
Revert "Clarify contact flow and harden Pages deployment"
This reverts commit c1d552f.
1 parent c1d552f commit 2b7a222

3 files changed

Lines changed: 63 additions & 29 deletions

File tree

‎.github/workflows/deploy.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ jobs:
1919
runs-on: ubuntu-latest
2020
steps:
2121
- name: Checkout
22-
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
22+
uses: actions/checkout@v4
2323
- name: Set up Node
24-
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
24+
uses: actions/setup-node@v4
2525
with:
2626
node-version: 20
2727
cache: 'npm'
@@ -30,7 +30,7 @@ jobs:
3030
- name: Build
3131
run: npm run build
3232
- name: Upload artifact
33-
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa
33+
uses: actions/upload-pages-artifact@v3
3434
with:
3535
path: ./dist
3636

@@ -43,4 +43,4 @@ jobs:
4343
steps:
4444
- name: Deploy to GitHub Pages
4545
id: deployment
46-
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e
46+
uses: actions/deploy-pages@v4

‎index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
66
<title>PINeCODe | Engineering with Structural Precision</title>
7-
<meta name="description" content="PineCode Kft. is a Budapest software engineering studio building custom web applications, internal tools, and backend systems." />
87
</head>
98
<body>
109
<div id="root"></div>
1110
<script type="module" src="/src/main.tsx"></script>
1211
</body>
1312
</html>
13+

‎src/App.tsx‎

Lines changed: 58 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import React, { useEffect, useState, useRef } from 'react';
77
import { motion, useScroll, useTransform, useSpring } from 'motion/react';
8-
import { Mail, MapPin, Database, Cpu, Globe, ArrowRight } from 'lucide-react';
8+
import { Mail, MapPin, Terminal, Database, Cpu, Globe, ArrowRight } from 'lucide-react';
99

1010
const LOGO_URL = "/logo.png";
1111
const PINE_DECO_URL = "/pine-deco.png";
@@ -36,13 +36,16 @@ export default function App() {
3636
}
3737
};
3838

39+
const [legalModal, setLegalModal] = useState<{ isOpen: boolean; title: string; content: string }>({ isOpen: false, title: '', content: '' });
40+
3941
const privacyPolicy = `
4042
Privacy Policy for PINeCODe (PineCode Kft.)
4143
42-
1. This website does not submit contact-form data to a server. The contact form opens your email application and creates a draft addressed to dev@pine-code.com.
43-
2. If you choose to send us an email, we use the information in that email solely to reply to your inquiry and establish business contact.
44-
3. We do not ask for passwords, payment details, identity documents, or other sensitive personal information through this website.
45-
4. As a Hungarian entity, we comply with GDPR. You may request access to, correction of, or deletion of your contact data by emailing dev@pine-code.com.
44+
1. Data Collection: We collect information provided via our contact form (name, email, company, message).
45+
2. Purpose: This data is used solely to respond to your inquiries and establish business contact.
46+
3. Protection: We implement industry-standard security measures to protect your data.
47+
4. GDPR: As a Hungarian entity, we comply with GDPR. You have the right to access, rectify, or delete your data.
48+
5. Contact: For data inquiries, contact dev@pine-code.com.
4649
`;
4750

4851
const termsOfService = `
@@ -54,8 +57,45 @@ export default function App() {
5457
4. Jurisdiction: These terms are governed by the laws of Hungary.
5558
`;
5659

60+
const openLegal = (type: 'privacy' | 'terms') => {
61+
if (type === 'privacy') {
62+
setLegalModal({ isOpen: true, title: 'Privacy Policy', content: privacyPolicy });
63+
} else {
64+
setLegalModal({ isOpen: true, title: 'Terms of Service', content: termsOfService });
65+
}
66+
};
67+
5768
return (
5869
<div className="min-h-screen bg-surface text-on-surface selection:bg-primary selection:text-on-primary relative overflow-x-hidden">
70+
{/* Legal Modal */}
71+
{legalModal.isOpen && (
72+
<div className="fixed inset-0 z-[1000] flex items-center justify-center p-6 bg-background/80 backdrop-blur-sm">
73+
<motion.div
74+
initial={{ opacity: 0, scale: 0.95 }}
75+
animate={{ opacity: 1, scale: 1 }}
76+
className="bg-surface-container-high border border-outline-variant/20 p-8 max-w-2xl w-full max-h-[80vh] overflow-y-auto relative shadow-2xl"
77+
>
78+
<button
79+
onClick={() => setLegalModal({ ...legalModal, isOpen: false })}
80+
className="absolute top-4 right-4 text-outline-variant hover:text-primary transition-colors"
81+
>
82+
<Terminal size={20} />
83+
</button>
84+
<h2 className="font-headline text-2xl mb-6 text-primary uppercase tracking-widest">{legalModal.title}</h2>
85+
<div className="text-on-surface-variant whitespace-pre-line font-body leading-relaxed">
86+
{legalModal.content}
87+
</div>
88+
<div className="mt-8 pt-6 border-t border-outline-variant/10">
89+
<button
90+
onClick={() => setLegalModal({ ...legalModal, isOpen: false })}
91+
className="bg-primary text-on-primary px-6 py-2 font-label text-[10px] uppercase tracking-widest hover:brightness-110 transition-all"
92+
>
93+
Close_Terminal
94+
</button>
95+
</div>
96+
</motion.div>
97+
</div>
98+
)}
5999
{/* Global Visual Effects */}
60100
<div className="fixed inset-0 pointer-events-none z-[100] opacity-[0.03] mix-blend-overlay bg-noise animate-noise"></div>
61101
<div className="fixed inset-0 pointer-events-none z-[101] opacity-[0.05] bg-scanline"></div>
@@ -385,10 +425,10 @@ export default function App() {
385425
<div>
386426
<div className="flex items-center gap-3 mb-4">
387427
<div className="w-4 h-4 hex-accent bg-primary/50"></div>
388-
<span className="font-label text-primary text-xs block">CONTACT</span>
389-
</div>
390-
<h2 className="font-headline text-5xl md:text-6xl font-bold mb-8">Start the Build.</h2>
391-
<p className="text-on-surface-variant mb-12">Tell us about your project. Submitting this form opens your email application with a draft addressed to PineCode; it does not send data through this website.</p>
428+
<span className="font-label text-primary text-xs block">COMMS_LINK // UPLINK</span>
429+
</div>
430+
<h2 className="font-headline text-5xl md:text-6xl font-bold mb-8">Start the Build.</h2>
431+
<p className="text-on-surface-variant mb-12">Submit your project parameters. Our architects will review the requirements and establish a communication bridge within 24 hours.</p>
392432
<div className="space-y-4">
393433
<div className="flex items-center gap-4">
394434
<Mail className="text-primary w-4 h-4" />
@@ -402,7 +442,7 @@ export default function App() {
402442
</div>
403443
<form className="space-y-6" onSubmit={handleContactSubmit}>
404444
<div>
405-
<label className="font-label text-[10px] text-primary uppercase block mb-2">Your name</label>
445+
<label className="font-label text-[10px] text-primary uppercase block mb-2">Subject_Identity</label>
406446
<input
407447
required
408448
value={formData.name}
@@ -413,7 +453,7 @@ export default function App() {
413453
/>
414454
</div>
415455
<div>
416-
<label className="font-label text-[10px] text-primary uppercase block mb-2">Company</label>
456+
<label className="font-label text-[10px] text-primary uppercase block mb-2">Entity_Affiliation</label>
417457
<input
418458
required
419459
value={formData.company}
@@ -424,7 +464,7 @@ export default function App() {
424464
/>
425465
</div>
426466
<div>
427-
<label className="font-label text-[10px] text-primary uppercase block mb-2">Project overview</label>
467+
<label className="font-label text-[10px] text-primary uppercase block mb-2">Mission_Parameters</label>
428468
<textarea
429469
required
430470
value={formData.message}
@@ -436,7 +476,7 @@ export default function App() {
436476
</div>
437477
<button type="submit" className="w-full bg-primary text-on-primary py-4 font-label font-bold uppercase tracking-widest hover:brightness-110 transition-all flex items-center justify-center gap-3">
438478
<div className="w-3 h-3 hex-accent bg-on-primary"></div>
439-
OPEN EMAIL DRAFT
479+
ESTABLISH CONTACT
440480
</button>
441481
</form>
442482
</div>
@@ -452,15 +492,15 @@ export default function App() {
452492
<div>
453493
<h5 className="text-on-surface-variant mb-4 flex items-center gap-2">
454494
<div className="w-1.5 h-1.5 hex-accent bg-primary/60"></div>
455-
Contact
495+
Direct Uplink
456496
</h5>
457497
<p className="mb-2"><span className="text-primary">Email:</span> <a className="hover:text-primary transition-colors" href="mailto:dev@pine-code.com">dev@pine-code.com</a></p>
458498
<p><span className="text-primary">Comms:</span> +36 30 359 5924</p>
459499
</div>
460500
<div>
461501
<h5 className="text-on-surface-variant mb-4 flex items-center gap-2">
462502
<div className="w-1.5 h-1.5 hex-accent bg-primary/60"></div>
463-
Registered office
503+
Base of Operations
464504
</h5>
465505
<p>PineCode Kft.</p>
466506
<p>Belgrád rakpart 13-15. 2. em. 22. ajtó</p>
@@ -469,7 +509,7 @@ export default function App() {
469509
<div>
470510
<h5 className="text-on-surface-variant mb-4 flex items-center gap-2">
471511
<div className="w-1.5 h-1.5 hex-accent bg-primary/60"></div>
472-
Company registration
512+
Registry_Data
473513
</h5>
474514
<p>Tax ID: 32921214-2-41</p>
475515
<p>Reg ID: 01-09-449575</p>
@@ -490,14 +530,8 @@ export default function App() {
490530
<p className="font-label text-[10px] opacity-60 text-primary max-w-sm">© 2024 PineCode Kft. Belgrád rakpart 13-15, Budapest. Engineering with Structural Precision.</p>
491531
</div>
492532
<div className="flex flex-wrap gap-8 justify-start md:justify-end">
493-
<details className="font-label text-[10px] opacity-60 text-neutral-500 hover:text-neutral-200">
494-
<summary className="cursor-pointer">Privacy Policy</summary>
495-
<p className="mt-3 max-w-md whitespace-pre-line normal-case tracking-normal leading-relaxed">{privacyPolicy}</p>
496-
</details>
497-
<details className="font-label text-[10px] opacity-60 text-neutral-500 hover:text-neutral-200">
498-
<summary className="cursor-pointer">Terms of Service</summary>
499-
<p className="mt-3 max-w-md whitespace-pre-line normal-case tracking-normal leading-relaxed">{termsOfService}</p>
500-
</details>
533+
<button onClick={() => openLegal('privacy')} className="font-label text-[10px] opacity-60 text-neutral-500 hover:text-neutral-200 transition-transform duration-200 hover:translate-x-1">Privacy Policy</button>
534+
<button onClick={() => openLegal('terms')} className="font-label text-[10px] opacity-60 text-neutral-500 hover:text-neutral-200 transition-transform duration-200 hover:translate-x-1">Terms of Service</button>
501535
<a className="font-label text-[10px] opacity-60 text-neutral-500 hover:text-neutral-200 transition-transform duration-200 hover:translate-x-1" href="https://www.linkedin.com/in/grishkov" target="_blank" rel="noopener noreferrer">LinkedIn</a>
502536
<a className="font-label text-[10px] opacity-60 text-neutral-500 hover:text-neutral-200 transition-transform duration-200 hover:translate-x-1" href="https://github.com/pinecode" target="_blank" rel="noopener noreferrer">GitHub</a>
503537
</div>

0 commit comments

Comments
 (0)