+ {cs()
+ ? "Zobrazte rezervace ve svém kalendáři — Google, Apple nebo Outlook."
+ : "See bookings in your own calendar — Google, Apple or Outlook."}
+
+
+
+
+ {cs()
+ ? "Zkopírujte adresu a přidejte ji v kalendáři jako „Odebírat z URL“. Odkaz je tajný — kdokoliv s ním vidí rezervace. Pokud odkaz unikne, vygenerujte nový."
+ : "Copy the address and add it in your calendar as “Subscribe from URL”. The link is secret — anyone holding it can see bookings. If it leaks, generate a new one."}
+
+
+
+ {(info) => (
+
+
+
+ {(staff) => (
+
+ )}
+
+
+ )}
+
+
+
+
{notice()}
+
+
+
{error()}
+
+
+ );
+}
diff --git a/apps/frontend/src/lib/api-client.ts b/apps/frontend/src/lib/api-client.ts
index 752abf4..c20ee64 100644
--- a/apps/frontend/src/lib/api-client.ts
+++ b/apps/frontend/src/lib/api-client.ts
@@ -1,9 +1,9 @@
import createClient from "openapi-fetch";
import type { paths } from "@bookra/api-client/generated/types";
-const baseUrl = import.meta.env.VITE_BOOKRA_API_URL ?? "http://localhost:8080";
+export const apiBaseUrl = import.meta.env.VITE_BOOKRA_API_URL ?? "http://localhost:8080";
export const apiClient = createClient({
- baseUrl,
+ baseUrl: apiBaseUrl,
});
diff --git a/apps/frontend/src/routes/dashboard/settings-page.tsx b/apps/frontend/src/routes/dashboard/settings-page.tsx
index de540f3..a66168c 100644
--- a/apps/frontend/src/routes/dashboard/settings-page.tsx
+++ b/apps/frontend/src/routes/dashboard/settings-page.tsx
@@ -4,6 +4,7 @@ import { Input } from "../../components/ui/input";
import { Textarea } from "../../components/ui/textarea";
import { PaletteIcon, MailIcon, CheckCircleIcon, BellIcon, XCircleIcon, CalendarDaysIcon } from "../../components/dashboard/icons";
import { SMSSettings } from "../../components/sms-settings";
+import { CalendarFeed } from "../../components/calendar-feed";
import { WidgetBuilder } from "../../components/widget-builder";
import { DashboardLayout, useDashboardData } from "./layout";
@@ -142,6 +143,7 @@ function SettingsPage() {
+