diff --git a/src/components/ProductDetailPage.js b/src/components/ProductDetailPage.js
index a83168c..aa9a0f3 100644
--- a/src/components/ProductDetailPage.js
+++ b/src/components/ProductDetailPage.js
@@ -38,13 +38,36 @@ const ProductDetail = ({ willDo, setWillDo, subscriptions, product, requestLogin
}
// Auto check saat user mengetik (debounce)
useEffect(() => {
- if (product.unique_name == false) return;
-
const name = customName.trim();
+
if (!name) {
setStatus('idle');
return;
}
+
+ const isNameTaken = subscriptions?.some(sub => {
+ const isSameProduct = sub.product_id === product.id || sub.product_parent_id === product.id;
+ if (!isSameProduct) return false;
+
+ const existingName = sub.product_name?.split('%%%')[0]?.trim().toLowerCase();
+ return existingName === name.toLowerCase();
+ });
+
+
+ if (subscriptions && isNameTaken) {
+ setStatus('unavailable');
+ return;
+ }
+ else if(!product.unique_name){
+ setStatus('available');
+ return;
+ }
+
+ if (!product.unique_name) {
+ console.log(subscriptions);
+ return;
+ }
+
let cancelled = false;
setStatus('checking');
@@ -79,7 +102,7 @@ const ProductDetail = ({ willDo, setWillDo, subscriptions, product, requestLogin
subscriptions.some(sub =>
String(sub.product_id) === String(product.id) || String(sub.product_parent_id) === String(product.id)
);
-
+ console.log(hasMatchingSubscription)
// ✅ Check subscription first
if (hasMatchingSubscription) {
const matching = subscriptions.filter(sub =>
@@ -96,7 +119,7 @@ const ProductDetail = ({ willDo, setWillDo, subscriptions, product, requestLogin
return;
} else {
const itemsParam = JSON.stringify([product.id]);
- window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&set_name=${product.name}&redirect_uri=https://kediritechnopark.com/products&redirect_failed=https://kediritechnopark.com`;
+ window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&set_name=${product.name}&redirect_uri=https://kediritechnopark.com/dashboard&redirect_failed=https://kediritechnopark.com`;
return;
}
}
@@ -108,7 +131,7 @@ const ProductDetail = ({ willDo, setWillDo, subscriptions, product, requestLogin
// Fallback: direct checkout
const itemsParam = JSON.stringify([product.id]);
- window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&redirect_uri=https://kediritechnopark.com/products&redirect_failed=https://kediritechnopark.com`;
+ window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&redirect_uri=https://kediritechnopark.com/dashboard&redirect_failed=https://kediritechnopark.com`;
};
// ✅ Confirm child selection (final step after naming)
@@ -124,7 +147,7 @@ const ProductDetail = ({ willDo, setWillDo, subscriptions, product, requestLogin
const encodedName = encodeURIComponent(customName.trim() || product.name);
const itemsParam = JSON.stringify(selectedChildIds);
- window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&new_name=${encodedName}&redirect_uri=https://kediritechnopark.com/products&redirect_failed=https://kediritechnopark.com`;
+ window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&new_name=${encodedName}&redirect_uri=https://kediritechnopark.com/dashboard&redirect_failed=https://kediritechnopark.com`;
};
// ✅ User sets name first → then if product has children, show child selector
@@ -149,7 +172,7 @@ const ProductDetail = ({ willDo, setWillDo, subscriptions, product, requestLogin
const itemsParam = JSON.stringify([product.id]);
const encodedName = encodeURIComponent(customName.trim());
- window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&new_name=${encodedName}&redirect_uri=https://kediritechnopark.com/products&redirect_failed=https://kediritechnopark.com`;
+ window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&new_name=${encodedName}&redirect_uri=https://kediritechnopark.com/dashboard&redirect_failed=https://kediritechnopark.com`;
};
const onConfirmSelector = () => {
@@ -171,14 +194,26 @@ const ProductDetail = ({ willDo, setWillDo, subscriptions, product, requestLogin
const productName = selectedSubscription?.product_name;
const encodedName = encodeURIComponent(productName);
- window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&set_name=${encodedName}&redirect_uri=https://kediritechnopark.com/products&redirect_failed=https://kediritechnopark.com`;
+ window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&set_name=${encodedName}&redirect_uri=https://kediritechnopark.com/dashboard&redirect_failed=https://kediritechnopark.com`;
}
};
useEffect(() => {
- if (willDo === 'checkout') {
+ if (!product.executeCheckout && willDo === 'checkout') {
onCheckout();
}
+ else if (product.children && product.children.length > 0) {
+ setShowChildSelector(true);
+ }
+ else {
+
+ const tokenCookie = document.cookie.split('; ').find(row => row.startsWith('token='));
+ const token = tokenCookie ? tokenCookie.split('=')[1] : '';
+ const encodedName = encodeURIComponent(product.name);
+ const itemsParam = JSON.stringify([product.id]);
+
+ window.location.href = `https://checkout.kediritechnopark.com/?token=${token}&itemsId=${itemsParam}&set_name=${encodedName}&redirect_uri=https://kediritechnopark.com/dashboard&redirect_failed=https://kediritechnopark.com`;
+ }
if (setWillDo) setWillDo('');
}, []);
@@ -318,7 +353,7 @@ const ProductDetail = ({ willDo, setWillDo, subscriptions, product, requestLogin
style={{ width: '100%', padding: '8px', marginBottom: '8px', borderRadius: '10px' }}
/>
- {product.unique_name &&