diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx
index f7164f5..1a438fd 100644
--- a/app/(auth)/login/page.tsx
+++ b/app/(auth)/login/page.tsx
@@ -21,21 +21,27 @@ export default function Login() {
{/* Background Image */}
-
-
Attune Heart Therapy
+
+
+
+
+
+
+ Attune Heart Therapy
+
+
diff --git a/app/(pages)/book-now/page.tsx b/app/(pages)/book-now/page.tsx
index 7176275..49778b8 100644
--- a/app/(pages)/book-now/page.tsx
+++ b/app/(pages)/book-now/page.tsx
@@ -78,9 +78,8 @@ export default function BookNowPage() {
lastName: "",
email: "",
phone: "",
- appointmentType: "",
- preferredDate: "",
- preferredTime: "",
+ preferredDays: [] as string[],
+ preferredTimes: [] as string[],
message: "",
});
const [loading, setLoading] = useState(false);
@@ -105,17 +104,41 @@ export default function BookNowPage() {
setError(null);
try {
- // Convert time to 24-hour format for ISO string
- const time24 = formData.preferredTime.includes("PM")
- ? formData.preferredTime.replace("PM", "").trim().split(":").map((v, i) =>
- i === 0 ? (parseInt(v) === 12 ? 12 : parseInt(v) + 12) : v
- ).join(":")
- : formData.preferredTime.replace("AM", "").trim().split(":").map((v, i) =>
- i === 0 ? (parseInt(v) === 12 ? "00" : v.padStart(2, "0")) : v
- ).join(":");
+ if (formData.preferredDays.length === 0) {
+ setError("Please select at least one available day.");
+ setLoading(false);
+ return;
+ }
+
+ if (formData.preferredTimes.length === 0) {
+ setError("Please select at least one preferred time.");
+ setLoading(false);
+ return;
+ }
+
+ // For now, we'll use the first selected day and first selected time
+ // This can be adjusted based on your backend requirements
+ const firstDay = formData.preferredDays[0];
+ const firstTime = formData.preferredTimes[0];
+ const timeMap: { [key: string]: string } = {
+ morning: "09:00",
+ lunchtime: "12:00",
+ afternoon: "14:00",
+ };
+ const time24 = timeMap[firstTime] || "09:00";
+
+ // Get next occurrence of the first selected day
+ const today = new Date();
+ const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
+ const targetDayIndex = days.indexOf(firstDay);
+ let daysUntilTarget = (targetDayIndex - today.getDay() + 7) % 7;
+ if (daysUntilTarget === 0) daysUntilTarget = 7; // Next week if today
+ const targetDate = new Date(today);
+ targetDate.setDate(today.getDate() + daysUntilTarget);
+ const dateString = targetDate.toISOString().split("T")[0];
// Combine date and time into scheduled_at (ISO format)
- const dateTimeString = `${formData.preferredDate}T${time24}:00Z`;
+ const dateTimeString = `${dateString}T${time24}:00Z`;
// Prepare request payload
const payload = {
@@ -123,9 +146,10 @@ export default function BookNowPage() {
last_name: formData.lastName,
email: formData.email,
phone: formData.phone,
- appointment_type: formData.appointmentType,
scheduled_at: dateTimeString,
duration: 60, // Default to 60 minutes
+ preferred_days: formData.preferredDays,
+ preferred_times: formData.preferredTimes,
notes: formData.message || "",
};
@@ -199,6 +223,24 @@ export default function BookNowPage() {
setFormData((prev) => ({ ...prev, [field]: value }));
};
+ const handleDayToggle = (day: string) => {
+ setFormData((prev) => {
+ const days = prev.preferredDays.includes(day)
+ ? prev.preferredDays.filter((d) => d !== day)
+ : [...prev.preferredDays, day];
+ return { ...prev, preferredDays: days };
+ });
+ };
+
+ const handleTimeToggle = (time: string) => {
+ setFormData((prev) => {
+ const times = prev.preferredTimes.includes(time)
+ ? prev.preferredTimes.filter((t) => t !== time)
+ : [...prev.preferredTimes, time];
+ return { ...prev, preferredTimes: times };
+ });
+ };
+
const formatDateTime = (dateString: string) => {
const date = new Date(dateString);
return date.toLocaleString("en-US", {
@@ -219,8 +261,8 @@ export default function BookNowPage() {
-
-
- Appointment Type *
-
-
- handleChange("appointmentType", value)
- }
- required
- >
-
-
-
-
-
- Initial Consultation
-
-
- Individual Therapy
-
- Family Therapy
-
- Couples Therapy
-
- Group Therapy
- Follow-up Session
-
-
-
-
-
+
Preferred Time *
-
- handleChange("preferredTime", value)
- }
- required
- >
-
-
-
-
- 9:00 AM
- 10:00 AM
- 11:00 AM
- 12:00 PM
- 1:00 PM
- 2:00 PM
- 3:00 PM
- 4:00 PM
- 5:00 PM
-
-
+
+ {[
+ { value: 'morning', label: 'Morning' },
+ { value: 'lunchtime', label: 'Lunchtime' },
+ { value: 'afternoon', label: 'Afternoon' }
+ ].map((time) => (
+
+ handleTimeToggle(time.value)}
+ className="sr-only"
+ />
+ {time.label}
+
+ ))}
+
diff --git a/components/ClientFocus.tsx b/components/ClientFocus.tsx
index 147aab1..237a374 100644
--- a/components/ClientFocus.tsx
+++ b/components/ClientFocus.tsx
@@ -5,6 +5,7 @@ import { useInView } from "framer-motion";
import { useRef } from "react";
import { Users, UserCheck, Globe } from "lucide-react";
import { useAppTheme } from "@/components/ThemeProvider";
+import Image from "next/image";
export function ClientFocus() {
const ref = useRef(null);
@@ -94,7 +95,7 @@ export function ClientFocus() {
animate={isInView ? { opacity: 1, y: 0 } : {}}
transition={{ duration: 0.8, delay: 0.2 }}
>
- Client Focus
+ Who We Serve
@@ -143,7 +144,7 @@ export function ClientFocus() {
Individuals
- {/* Ethnicity */}
+ {/* Communities */}
-
-
-
-
Ethnicity
+
+
Providing Support to all of South Florida's Diverse Communities
+
+
- Black and African American
diff --git a/components/Finances.tsx b/components/Finances.tsx
index 59d1755..3b68856 100644
--- a/components/Finances.tsx
+++ b/components/Finances.tsx
@@ -3,7 +3,7 @@
import { motion } from "framer-motion";
import { useInView } from "framer-motion";
import { useRef } from "react";
-import { CreditCard, DollarSign, Shield } from "lucide-react";
+import { CreditCard, DollarSign } from "lucide-react";
import { useAppTheme } from "@/components/ThemeProvider";
export function Finances() {
@@ -19,31 +19,6 @@ export function Finances() {
"Visa"
];
- const insuranceProviders = [
- "Aetna",
- "Aetna - Medicare",
- "Aetna - WebTPA",
- "All Savers",
- "Ambetter",
- "AvMed",
- "Cigna and Evernorth",
- "EAP:Cigna",
- "EAP:UnitedHealthcare/Optum",
- "Golden Rule",
- "Harvard Pilgrim/United",
- "Humana",
- "Humana - Medicare",
- "Humana Dual- Medicaid/Medicare",
- "Medicaid",
- "Optum",
- "Oscar Health",
- "Oxford",
- "Surest (formerly Bind)",
- "Tufts Health/Cigna",
- "UHC/Optum - Medicare",
- "United Medical Resources (UMR)",
- "UnitedHealthcare UHC | UBH"
- ];
return (
-
+
{/* Fees */}
- {/* Insurance */}
-
-
-
- {insuranceProviders.map((provider, index) => (
-
- {provider}
-
- ))}
-
-
diff --git a/components/Hero.tsx b/components/Hero.tsx
index 6180799..a64205e 100644
--- a/components/Hero.tsx
+++ b/components/Hero.tsx
@@ -18,7 +18,7 @@ export function HeroSection() {
diff --git a/components/Services.tsx b/components/Services.tsx
index 22d1d23..4c714e0 100644
--- a/components/Services.tsx
+++ b/components/Services.tsx
@@ -220,8 +220,8 @@ export function Services() {
animate={isInView ? { opacity: 1 } : {}}
transition={{ duration: 0.8, delay: 0.9 }}
>
- Therapy is tailored for children (age 6–10), teens, adults, and older adults, with services offered to individuals and a
- special focus on supporting Black and African American families in Miami and Hollywood, Florida.
+ Therapy is tailored for children (age 6–10), teens, adults, and older adults, with services offered to individuals.
+ I welcome clients from diverse backgrounds and communities throughout Miami and Hollywood, Florida.
diff --git a/public/flagss.png b/public/flagss.png
new file mode 100644
index 0000000..f3410ca
Binary files /dev/null and b/public/flagss.png differ
diff --git a/public/section-image.png b/public/section-image.png
new file mode 100644
index 0000000..75371a9
Binary files /dev/null and b/public/section-image.png differ
diff --git a/public/session.jpg b/public/session.jpg
new file mode 100644
index 0000000..df82aa2
Binary files /dev/null and b/public/session.jpg differ
diff --git a/public/woman.jpg b/public/woman.jpg
new file mode 100644
index 0000000..c093e1f
Binary files /dev/null and b/public/woman.jpg differ