const isPaymentExpired = (paymentExpires: string | null, styleRed: string, withText?: boolean) => {
	const now = new Date();
	if (paymentExpires === null) {
		return [null, null];
	}

	const lastPaymentExpires = new Date(paymentExpires);
	const daysLeft = lastPaymentExpires.getTime() - now.getTime();
	let expireDaysLeft;
	let expireDaysLeftClass = styleRed;
	if (now.getTime() < lastPaymentExpires.getTime()) {
		expireDaysLeft = withText
			? `${Math.ceil(daysLeft / (1000 * 3600 * 24)).toString()} left`
			: Math.ceil(daysLeft / (1000 * 3600 * 24)).toString();
	} else {
		expireDaysLeft = Math.ceil(
			(now.getTime() - lastPaymentExpires.getTime()) / (1000 * 3600 * 24)
		).toString();
		expireDaysLeft = `expired ${expireDaysLeft} ago`;
		expireDaysLeftClass = styleRed;
	}

	return [expireDaysLeft, expireDaysLeftClass];
};

export default isPaymentExpired;
