From 1a84386cdc3e592be8838df3e78af6e2eee95d8f Mon Sep 17 00:00:00 2001
From: Vassshhhh
Date: Wed, 24 Sep 2025 14:05:15 +0700
Subject: [PATCH] ok
---
src/App.js | 6 +-
src/components/HeroSection.js | 14 +-
src/components/ProductCard.js | 4 +-
src/components/ProductCard.module.css | 2 +
src/components/ProductSection.js | 4 +-
src/components/pages/Kedaimaster.js | 499 --------------------------
6 files changed, 12 insertions(+), 517 deletions(-)
delete mode 100644 src/components/pages/Kedaimaster.js
diff --git a/src/App.js b/src/App.js
index 6de1efe..2f171f6 100644
--- a/src/App.js
+++ b/src/App.js
@@ -42,7 +42,7 @@ function HomePage({
return (
<>
-
+
@@ -159,7 +159,7 @@ function App() {
if (unauthorizedUri) localStorage.setItem('unauthorized_uri', unauthorizedUri);
// Jika belum login, tampilkan modal login
- if (!token) {
+ if (!token && authorizedUri) {
setShowedModal('login');
}
// Jika sudah login, tidak langsung fetch di sini — akan diproses saat subscriptions tersedia
@@ -179,7 +179,7 @@ function App() {
const token = document.cookie.match(/(^| )token=([^;]+)/)?.[2];
if (modalType === 'product' && productId) {
- if (!token) {
+ if (!token && authorizedUri) {
setShowedModal('login'); // belum login → tampilkan login modal
} else {
// sudah login → lanjutkan proses otorisasi saat subscriptions tersedia
diff --git a/src/components/HeroSection.js b/src/components/HeroSection.js
index f66f2d6..72c9387 100644
--- a/src/components/HeroSection.js
+++ b/src/components/HeroSection.js
@@ -1,15 +1,7 @@
-// HeroSection.jsx — 2025 refresh using React-Bootstrap + CSS Module
-import React from 'react';
import { Container, Row, Col, Button } from 'react-bootstrap';
-import { useNavigate } from 'react-router-dom';
import styles from './HeroSection.module.css';
-const HeroSection = () => {
- const navigate = useNavigate();
-
- const goProducts = () => navigate('/products');
- const goAcademy = () => navigate('/#services');
-
+const HeroSection = ({scrollToProduct, scrollToCourse}) => {
return (
@@ -25,10 +17,10 @@ const HeroSection = () => {
Kami adalah ekosistem tempat mimpi digital tumbuh dan masa depan dibentuk. Di sinilah semangat belajar bertemu dengan inovasi, dan ide-ide muda diberi ruang untuk berkembang. Lebih dari sekadar tempat, kami adalah rumah bagi talenta, teknologi, dan transformasi. Mari jelajahi dunia digital, bangun karir, dan ciptakan solusi — semua dimulai dari sini.
-
+
Explore Products
-
+
View Academy
diff --git a/src/components/ProductCard.js b/src/components/ProductCard.js
index 6e86f8d..c47cbb1 100644
--- a/src/components/ProductCard.js
+++ b/src/components/ProductCard.js
@@ -37,12 +37,12 @@ const ProductCard = ({ product, onCardClick, isCenter, canHover, onCollapse }) =
>
Detail
- { e.preventDefault(); e.stopPropagation(); onCardClick && onCardClick(product); }}
>
Beli
-
+ */}
diff --git a/src/components/ProductCard.module.css b/src/components/ProductCard.module.css
index d4150a5..0d71d61 100644
--- a/src/components/ProductCard.module.css
+++ b/src/components/ProductCard.module.css
@@ -18,6 +18,8 @@
height: 100%;
object-fit: cover;
transition: transform 0.45s ease, filter 0.45s ease;
+ background-color: #f1f1f1;
+ object-fit: contain;
}
.canHover:hover .cover {
diff --git a/src/components/ProductSection.js b/src/components/ProductSection.js
index 9a55a82..3ae6b08 100644
--- a/src/components/ProductSection.js
+++ b/src/components/ProductSection.js
@@ -42,9 +42,9 @@ const ProductSection = ({ setSelectedProduct, setShowedModal, productSectionRef,
// Handle product selection for detail view
const handleViewDetail = (product, detailed) => {
+ console.log(product, detailed)
if(detailed) {
- setSelectedProduct(product);
- setShowedModal('product');
+ window.location.href = product.site_landing_url;
return;
}
setSelectedProduct(product);
diff --git a/src/components/pages/Kedaimaster.js b/src/components/pages/Kedaimaster.js
deleted file mode 100644
index 4ce49d0..0000000
--- a/src/components/pages/Kedaimaster.js
+++ /dev/null
@@ -1,499 +0,0 @@
-import React from 'react';
-
-const KedaiMasterLanding = () => {
- const styles = {
- container: {
- fontFamily: 'Arial, sans-serif',
- margin: 0,
- padding: 0,
- background: 'linear-gradient(135deg, #e8f5e8 0%, #f0f8ff 100%)',
- minHeight: '100vh'
- },
- header: {
- display: 'flex',
- justifyContent: 'space-between',
- alignItems: 'center',
- padding: '1rem 2rem',
- backgroundColor: 'rgba(255, 255, 255, 0.1)',
- backdropFilter: 'blur(10px)'
- },
- logo: {
- display: 'flex',
- alignItems: 'center',
- gap: '0.5rem',
- fontSize: '1.2rem',
- fontWeight: 'bold',
- color: '#2c3e50'
- },
- nav: {
- display: 'flex',
- gap: '2rem',
- listStyle: 'none',
- margin: 0,
- padding: 0
- },
- navLink: {
- textDecoration: 'none',
- color: '#2c3e50',
- fontSize: '0.9rem',
- transition: 'color 0.3s'
- },
- ctaButton: {
- backgroundColor: '#4a90e2',
- color: 'white',
- padding: '0.5rem 1.5rem',
- border: 'none',
- borderRadius: '25px',
- fontSize: '0.9rem',
- cursor: 'pointer',
- transition: 'transform 0.3s'
- },
- hero: {
- display: 'flex',
- alignItems: 'center',
- padding: '4rem 2rem',
- maxWidth: '1200px',
- margin: '0 auto'
- },
- heroContent: {
- flex: 1,
- paddingRight: '2rem'
- },
- heroTitle: {
- fontSize: '3rem',
- fontWeight: 'bold',
- color: '#2c3e50',
- marginBottom: '1rem',
- lineHeight: '1.2'
- },
- heroText: {
- fontSize: '1.1rem',
- color: '#666',
- lineHeight: '1.6',
- marginBottom: '2rem'
- },
- heroImage: {
- flex: 1,
- textAlign: 'center'
- },
- coffeeIcon: {
- fontSize: '8rem',
- background: 'linear-gradient(45deg, #ffa726, #ff9800)',
- WebkitBackgroundClip: 'text',
- WebkitTextFillColor: 'transparent',
- padding: '2rem',
- borderRadius: '20px',
- backgroundColor: 'rgba(255, 167, 38, 0.1)'
- },
- features: {
- padding: '4rem 2rem',
- maxWidth: '1200px',
- margin: '0 auto'
- },
- featuresTitle: {
- textAlign: 'center',
- fontSize: '2.5rem',
- color: '#2c3e50',
- marginBottom: '3rem'
- },
- featuresGrid: {
- display: 'grid',
- gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))',
- gap: '2rem',
- marginBottom: '4rem'
- },
- featureCard: {
- backgroundColor: 'rgba(255, 255, 255, 0.3)',
- padding: '2rem',
- borderRadius: '15px',
- textAlign: 'center',
- backdropFilter: 'blur(10px)',
- border: '1px solid rgba(255, 255, 255, 0.2)',
- transition: 'transform 0.3s'
- },
- featureTitle: {
- fontSize: '1.3rem',
- fontWeight: 'bold',
- color: '#2c3e50',
- marginBottom: '1rem'
- },
- featureText: {
- color: '#666',
- lineHeight: '1.5'
- },
- appShowcase: {
- display: 'flex',
- alignItems: 'center',
- gap: '3rem',
- marginTop: '4rem'
- },
- appContent: {
- flex: 1
- },
- appTitle: {
- fontSize: '1.5rem',
- fontWeight: 'bold',
- color: '#2c3e50',
- marginBottom: '1rem'
- },
- appText: {
- color: '#666',
- lineHeight: '1.6'
- },
- appImages: {
- flex: 1,
- position: 'relative',
- height: '300px'
- },
- phoneScreen: {
- width: '200px',
- height: '350px',
- backgroundColor: 'white',
- borderRadius: '25px',
- padding: '1rem',
- boxShadow: '0 10px 30px rgba(0,0,0,0.2)',
- position: 'absolute',
- display: 'flex',
- flexDirection: 'column',
- gap: '0.5rem'
- },
- phoneScreen1: {
- left: '0',
- top: '0',
- zIndex: 2
- },
- phoneScreen2: {
- right: '0',
- top: '50px',
- zIndex: 1
- },
- screenHeader: {
- height: '40px',
- backgroundColor: '#f0f0f0',
- borderRadius: '10px',
- marginBottom: '0.5rem'
- },
- screenContent: {
- flex: 1,
- backgroundColor: '#f8f8f8',
- borderRadius: '10px',
- padding: '0.5rem'
- },
- cta: {
- textAlign: 'center',
- padding: '4rem 2rem',
- backgroundColor: 'rgba(255, 255, 255, 0.2)',
- backdropFilter: 'blur(10px)'
- },
- ctaTitle: {
- fontSize: '2rem',
- color: '#2c3e50',
- marginBottom: '2rem'
- },
- ctaButtonLarge: {
- backgroundColor: '#8b4513',
- color: 'white',
- padding: '1rem 2rem',
- border: 'none',
- borderRadius: '30px',
- fontSize: '1.1rem',
- cursor: 'pointer',
- transition: 'transform 0.3s'
- },
- pricing: {
- padding: '4rem 2rem',
- background: 'linear-gradient(135deg, #ffa726 0%, #ff9800 100%)',
- textAlign: 'center'
- },
- pricingTitle: {
- fontSize: '2.5rem',
- color: 'white',
- marginBottom: '3rem'
- },
- pricingCards: {
- display: 'grid',
- gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
- gap: '2rem',
- maxWidth: '1000px',
- margin: '0 auto'
- },
- pricingCard: {
- backgroundColor: 'rgba(255, 255, 255, 0.95)',
- padding: '2rem',
- borderRadius: '15px',
- position: 'relative'
- },
- pricingBadge: {
- position: 'absolute',
- top: '-10px',
- left: '50%',
- transform: 'translateX(-50%)',
- backgroundColor: '#4caf50',
- color: 'white',
- padding: '0.5rem 1rem',
- borderRadius: '20px',
- fontSize: '0.8rem'
- },
- pricingPlan: {
- fontSize: '1.3rem',
- fontWeight: 'bold',
- color: '#2c3e50',
- marginBottom: '1rem'
- },
- pricingPrice: {
- fontSize: '2rem',
- fontWeight: 'bold',
- color: '#4caf50',
- marginBottom: '1.5rem'
- },
- pricingFeatures: {
- listStyle: 'none',
- padding: 0,
- marginBottom: '2rem'
- },
- pricingFeature: {
- padding: '0.5rem 0',
- color: '#666',
- borderBottom: '1px solid #eee'
- },
- pricingButton: {
- backgroundColor: '#4caf50',
- color: 'white',
- padding: '0.8rem 2rem',
- border: 'none',
- borderRadius: '25px',
- cursor: 'pointer',
- width: '100%',
- fontSize: '1rem'
- },
- footer: {
- background: 'linear-gradient(135deg, #2196f3 0%, #21cbf3 100%)',
- color: 'white',
- padding: '4rem 2rem 2rem',
- position: 'relative',
- overflow: 'hidden'
- },
- footerWave: {
- position: 'absolute',
- top: '-50px',
- left: 0,
- width: '100%',
- height: '100px',
- background: 'rgba(255, 255, 255, 0.1)',
- borderRadius: '50% 50% 0 0'
- },
- footerContent: {
- display: 'grid',
- gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
- gap: '3rem',
- maxWidth: '1200px',
- margin: '0 auto',
- position: 'relative',
- zIndex: 1
- },
- footerSection: {
- textAlign: 'left'
- },
- footerTitle: {
- fontSize: '1.5rem',
- marginBottom: '1rem'
- },
- footerText: {
- lineHeight: '1.6',
- opacity: 0.9
- },
- copyright: {
- textAlign: 'center',
- marginTop: '2rem',
- paddingTop: '2rem',
- borderTop: '1px solid rgba(255, 255, 255, 0.2)',
- opacity: 0.7
- }
- };
-
- return (
-
- {/* Header */}
-
-
- 🏪
- TECHNORAMA
-
-
-
-
- Sign Up Now
-
-
- {/* Hero Section */}
-
-
-
Kedai Master
-
- Platform Point of Sale terdepan yang dirancang khusus untuk meningkatkan
- kepuasan operational kafe dan restoran milik KM. Dengan sistem yang fleksibel,
- terpercaya, dan efisien.
-
-
-
-
-
- {/* Features Section */}
-
- Fitur Unggulan
-
-
-
Manajemen Tenant & Kasir
-
- Sistem untuk mengatur dan mengoptimalkan kinerja seluruh tenant.
-
-
-
-
QR Pemesanan di Meja
-
- Tamu restoran langsung dan mengoptimalkan waktu pemesanan dan pelayanan.
-
-
-
-
Otomatisasi Pesanan & Keuangan
-
- Mengatur operasional anda dengan otomatisasi pesanan dan keuangan.
-
-
-
-
Request & Voting Lagu
-
- Tamu dapat meminta lagu untuk diputar di restoran dan memberikan suasana.
-
-
-
-
- {/* App Showcase */}
-
-
-
- Gak perlu repot anti jam kerja yang baik bozen lagi.
- Tinggal scan QR yang ada di meja, langsung bisa udah langsung workflow
-
-
- © 2025 KEDAIMASTERPBM.COM
-
-
-
-
-
-
-
-
Desain Menu Modern
-
- Tampilan menu yang familiar, menarik dan mudah dipahami sehingga customer bisa dengan mudah memahami visual yang menarik untuk pengalaman ordering yang maksimal untuk kafe dan restoran masa kini.
-
-
-
-
-
-
- {/* CTA Section */}
-
- Siap Tingkatkan Bisnis Anda?
- Coba Kedai Master Sekarang
-
-
- {/* Pricing Section */}
-
- OUR PACK KEDAI MASTER
-
-
-
PAKET BASIC
-
Starter Pack
-
Rp 245.000
-
- 1 user untuk admin
- Support via email
-
-
Pilih Paket
-
-
-
-
PAKET SILVER
-
Business Pack
-
Rp 499.000
-
- Integrasi Meja & Jemput
- All permission & control
- Unlimited locations for pemasangan
-
-
Pilih Paket
-
-
-
-
PAKET GOLD
-
Enterprise Pack
-
Rp 849.000
-
- All benefits unlimited fitures &
- Multi outlet & multi users
- Integrasi fitur locations
-
-
Pilih Paket
-
-
-
-
- {/* Footer */}
-
-
- );
-};
-
-export default KedaiMasterLanding;
\ No newline at end of file