import Link from 'next/link';
import BottomPopup from '@/core/components/elements/Popup/BottomPopup';
import { AnimatePresence, motion } from 'framer-motion';
import { Divider, Spinner } from '@chakra-ui/react';
import whatsappUrl from '@/core/utils/whatsappUrl';
export const SectionAddress = ({ address, label, url }) => {
return (
{label}
Pilih Alamat Lain
{address && (
{address.type.charAt(0).toUpperCase() +
address.type.slice(1) +
' Address'}
{address.name}
{address.mobile}
{address.street}, {address?.city?.name}
)}
);
};
export const SectionValidation = ({ address }) =>
address?.stateId == 0 && (
Mohon untuk memperbarui alamat Anda dengan mengklik tombol di bawah ini.{' '}
Update Alamat
);
export const SectionExpedisi = ({
address,
listExpedisi,
setSelectedExpedisi,
checkWeigth,
checkoutValidation,
expedisiValidation,
loadingRajaOngkir,
}) =>
address?.rajaongkirCityId > 0 && (
Pilih Ekspedisi:
setSelectedExpedisi(e.target.value)}
required
>
Pilih Pengiriman
SELF PICKUP
{checkWeigth != true &&
listExpedisi.map((expedisi) => (
{' '}
{expedisi.label.toUpperCase()}{' '}
))}
{loadingRajaOngkir && (
)}
{checkoutValidation && (
*silahkan pilih expedisi
)}
{checkWeigth == true && (
Mohon maaf, pengiriman hanya tersedia untuk self pickup karena
terdapat barang yang belum diatur beratnya. Mohon atur berat barang
dengan menghubungi admin melalui{' '}
tautan ini
)}
);
export const SectionListService = ({
listserviceExpedisi,
setSelectedServiceType,
}) =>
listserviceExpedisi?.length > 0 && (
<>
Tipe Layanan Ekspedisi:
setSelectedServiceType(e.target.value)}
>
{listserviceExpedisi.map((service) => (
{' '}
{service.description} - {service.service.toUpperCase()}
{extractDuration(service.cost[0].etd) &&
` (Estimasi Tiba ${extractDuration(
service.cost[0].etd
)} Hari)`}
))}
>
);
export const PickupAddress = ({ label }) => (
Indoteknik
Jl. Bandengan Utara Raya No.85, RT.3/RW.16, Penjaringan, Kec.
Penjaringan, Kota Jkt Utara, Daerah Khusus Ibukota Jakarta, Indonesia
Kodepos : 14440
Telp : 021-2933 8828/29
Mobile : 0817-1718-1922
);
const extractDuration = (text) => {
const matches = text.match(/\d+(?:-\d+)?/g);
if (matches && matches.length === 1) {
const parts = matches[0].split('-');
const min = parseInt(parts[0]);
const max = parseInt(parts[1]);
if (min === max) {
return min.toString();
}
return matches[0];
}
return '';
};
export function calculateEstimatedArrival(duration) {
if (duration) {
let estimationDate = duration.split('-');
estimationDate[0] = parseInt(estimationDate[0]);
estimationDate[1] = parseInt(estimationDate[1]);
const from = addDays(new Date(), estimationDate[0] + 3);
const to = addDays(new Date(), estimationDate[1] + 3);
let etdText = `*Estimasi tiba ${formatDate(from)}`;
if (estimationDate[1] > estimationDate[0]) {
etdText += ` - ${formatDate(to)}`;
}
return etdText;
}
return '';
}
function addDays(date, days) {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
function formatDate(date) {
const day = date.getDate();
const month = date.toLocaleString('default', { month: 'short' });
return `${day} ${month}`;
}
export function splitDuration(duration) {
if (duration) {
let estimationDate = null;
if (duration.includes('-')) {
estimationDate = duration.split('-');
estimationDate = parseInt(estimationDate[1]);
} else {
estimationDate = parseInt(duration);
}
return estimationDate;
}
return '';
}