diff --git a/apps/web/pages/settings/admin/apps/[category].tsx b/apps/web/pages/settings/admin/apps/[category].tsx index 588bec41ae..835c6e5e65 100644 --- a/apps/web/pages/settings/admin/apps/[category].tsx +++ b/apps/web/pages/settings/admin/apps/[category].tsx @@ -10,7 +10,7 @@ function AdminAppsView() { const { t } = useLocale(); return ( <> - + ); diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index c29759b7ae..c445ac1ff2 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -1431,7 +1431,7 @@ "disable_app": "Disable App", "disable_app_description": "Disabling this app could cause problems with how your users interact with Cal", "edit_keys": "Edit Keys", - "apps_description": "Enable apps for your instance of Cal", + "admin_apps_description": "Enable apps for your instance of Cal", "no_available_apps": "There are no available apps", "no_available_apps_description": "Please ensure there are apps in your deployment under 'packages/app-store'", "no_apps": "There are no apps enabled in this instance of Cal", @@ -1454,5 +1454,7 @@ "date_overrides_update_btn": "Update Override", "event_type_duplicate_copy_text": "{{slug}}-copy", "set_as_default": "Set as default", - "hide_eventtype_details": "Hide EventType Details" + "hide_eventtype_details": "Hide EventType Details", + "no_availability_in_month": "No availability in {{month}}", + "view_next_month": "View next month" } diff --git a/packages/ui/v2/modules/booker/DatePicker.tsx b/packages/ui/v2/modules/booker/DatePicker.tsx index a0af79622e..0625b5c4f2 100644 --- a/packages/ui/v2/modules/booker/DatePicker.tsx +++ b/packages/ui/v2/modules/booker/DatePicker.tsx @@ -6,6 +6,7 @@ import classNames from "@calcom/lib/classNames"; import { daysInMonth, yyyymmdd } from "@calcom/lib/date-fns"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { weekdayNames } from "@calcom/lib/weekday"; +import { Button, Icon } from "@calcom/ui"; import { SkeletonText } from "../../.."; @@ -69,6 +70,27 @@ export const Day = ({ ); }; +const NoAvailabilityOverlay = ({ + month, + nextMonthButton, +}: { + month: string | null; + nextMonthButton: () => void; +}) => { + const { t } = useLocale(); + + return ( +
+

+ {t("no_availability_in_month", { month: month })} +

+ +
+ ); +}; + const Days = ({ minDate = dayjs.utc(), excludedDates = [], @@ -76,16 +98,19 @@ const Days = ({ weekStart, DayComponent = Day, selected, + month, + nextMonthButton, ...props }: Omit & { DayComponent?: React.FC>; browsingDate: Dayjs; weekStart: number; + month: string | null; + nextMonthButton: () => void; }) => { // Create placeholder elements for empty days in first week const weekdayOfFirst = browsingDate.day(); const currentDate = minDate.utcOffset(browsingDate.utcOffset()); - const availableDates = (includedDates: string[] | undefined) => { const dates = []; const lastDateOfMonth = browsingDate.date(daysInMonth(browsingDate)); @@ -120,7 +145,7 @@ const Days = ({
) : props.isLoading ? (
))} + + {!props.isLoading && includedDates && includedDates?.length === 0 && ( + + )} ); }; @@ -215,8 +244,15 @@ const DatePicker = ({ ))} -
- +
+ changeMonth(+1)} + />
);