diff --git a/packages/platform/examples/base/package.json b/packages/platform/examples/base/package.json index 535a4ab5f2..415480d036 100644 --- a/packages/platform/examples/base/package.json +++ b/packages/platform/examples/base/package.json @@ -14,7 +14,8 @@ "next": "14.0.4", "prisma": "^5.7.1", "react": "^18", - "react-dom": "^18" + "react-dom": "^18", + "react-select": "^5.8.0" }, "devDependencies": { "@types/node": "^20.3.1", diff --git a/packages/platform/examples/base/src/pages/_app.tsx b/packages/platform/examples/base/src/pages/_app.tsx index ca83d84598..813e101f3a 100644 --- a/packages/platform/examples/base/src/pages/_app.tsx +++ b/packages/platform/examples/base/src/pages/_app.tsx @@ -1,14 +1,17 @@ +import type { Data } from "@/pages/api/get-managed-users"; import "@/styles/globals.css"; import type { AppProps } from "next/app"; import { Poppins } from "next/font/google"; import { usePathname } from "next/navigation"; import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; +import Select from "react-select"; import { CalProvider, BookerEmbed } from "@calcom/atoms"; import "@calcom/atoms/globals.min.css"; const poppins = Poppins({ subsets: ["latin"], weight: ["400", "800"] }); +type TUser = Data["users"][0]; function generateRandomEmail() { const localPartLength = 10; @@ -27,14 +30,26 @@ export default function App({ Component, pageProps }: AppProps) { const [accessToken, setAccessToken] = useState(""); const [email, setUserEmail] = useState(""); const [username, setUsername] = useState(""); + const [selectedUser, setSelectedUser] = useState(null); + const [options, setOptions] = useState([]); + const router = useRouter(); const pathname = usePathname(); + useEffect(() => { + fetch("/api/get-managed-users", { + method: "get", + }).then(async (res) => { + const data = await res.json(); + setOptions( + data.users.map((item: Data["users"][0]) => ({ ...item, value: item.id, label: item.username })) + ); + }); + }, []); useEffect(() => { const randomEmail = generateRandomEmail(); fetch("/api/managed-user", { method: "POST", - body: JSON.stringify({ email: randomEmail }), }).then(async (res) => { const data = await res.json(); @@ -43,8 +58,19 @@ export default function App({ Component, pageProps }: AppProps) { setUsername(data.username); }); }, []); + useEffect(() => { + if (!!selectedUser) { + setAccessToken(selectedUser.accessToken); + setUserEmail(selectedUser.email); + setUsername(selectedUser.username); + } + }, [selectedUser]); + return (
+ {options.length > 0 && ( +