mirror of
https://github.com/hanzoai/calendar.git
synced 2026-10-30 14:46:43 +00:00
* Icon and IconName * Button and ButtonGroup * UserAvatar * AvatarGroup * Avatar * WizardLayout * Dialogs * EmptyScreen * showToast and TextField * Editor * Skeleton * Skeleton * TopBanner and showToast * Button again * more * perf: Remove app-store reference from @calcom/ui * more * Fixing types * Icon * Fixed casing * dropdown * more * Select * more * Badge * List * more * Divider * more * fix * fix type check * refactor * fix * fix * fix * fix * fix * fix * fix * fix type check * fix * fix * fix * fix * more * more * more * more * add index file to components/command * fix * fix * fix * fix imports * fix * fix * fix * fix * fix * fix * fix * fix build errors * fix build errors * fix --------- Co-authored-by: Keith Williams <[email protected]>
51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
"use client";
|
|
|
|
import { usePathname, useRouter } from "next/navigation";
|
|
import { useCallback } from "react";
|
|
|
|
import { useCompatSearchParams } from "@calcom/embed-core/src/useCompatSearchParams";
|
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
|
import { ToggleGroup } from "@calcom/ui/components/form";
|
|
|
|
export enum OutOfOfficeTab {
|
|
MINE = "mine",
|
|
TEAM = "team",
|
|
}
|
|
|
|
export const OutOfOfficeToggleGroup = () => {
|
|
const { t } = useLocale();
|
|
const searchParams = useCompatSearchParams();
|
|
const router = useRouter();
|
|
const pathname = usePathname();
|
|
|
|
const createQueryString = useCallback(
|
|
(name: string, value: string) => {
|
|
const params = new URLSearchParams(searchParams ?? undefined);
|
|
params.set(name, value);
|
|
|
|
return params.toString();
|
|
},
|
|
[searchParams]
|
|
);
|
|
|
|
const selectedTab = searchParams?.get("type") ?? OutOfOfficeTab.MINE;
|
|
|
|
const toggleGroupOptions = [
|
|
{ value: OutOfOfficeTab.MINE, label: t("my_ooo") },
|
|
{ value: OutOfOfficeTab.TEAM, label: t("team_ooo") },
|
|
];
|
|
|
|
return (
|
|
<ToggleGroup
|
|
className="hidden md:block"
|
|
defaultValue={selectedTab}
|
|
onValueChange={(value) => {
|
|
if (!value) return;
|
|
const newQuery = createQueryString("type", value);
|
|
router.push(`${pathname}?${newQuery}`);
|
|
}}
|
|
options={toggleGroupOptions}
|
|
/>
|
|
);
|
|
};
|