From 90960ff8003717593c46eb0010a84ddcff3a9a0b Mon Sep 17 00:00:00 2001 From: p-sw <shinwoo.park@psw.kr> Date: Tue, 11 Jun 2024 20:14:05 +0900 Subject: [PATCH] feat: add Controlled tooltip example Added a new example, 'Controlled', for the Tooltip component in the documentation. The 'Controlled' example demonstrates how to use tooltip with controlled states. The change includes the update of examples index and documentation MDX page. --- packages/react/src/docs/components/Tooltip.mdx | 17 +++++++++++++++++ .../TooltipBlocks/Examples/Controlled.tsx | 16 ++++++++++++++++ .../components/TooltipBlocks/Examples/index.ts | 12 +++++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 packages/react/src/docs/components/TooltipBlocks/Examples/Controlled.tsx diff --git a/packages/react/src/docs/components/Tooltip.mdx b/packages/react/src/docs/components/Tooltip.mdx index 0b01cac..42ef25b 100644 --- a/packages/react/src/docs/components/Tooltip.mdx +++ b/packages/react/src/docs/components/Tooltip.mdx @@ -184,3 +184,20 @@ import { Tooltip, TooltipContent } from "@components/Tooltip"; <LoadedCode from={`${GITHUB}/packages/react/src/docs/components/TooltipBlocks/Examples/LateDelay.tsx`} /> </TabContent> </TabProvider> + +### Controlled + +<TabProvider defaultName="preview"> + <TabList> + <TabTrigger name={"preview"}>Preview</TabTrigger> + <TabTrigger name={"code"}>Code</TabTrigger> + </TabList> + <TabContent name={"preview"}> + <Story layout={"centered"}> + <Examples.Controlled /> + </Story> + </TabContent> + <TabContent name={"code"}> + <LoadedCode from={`${GITHUB}/packages/react/src/docs/components/TooltipBlocks/Examples/Controlled.tsx`} /> + </TabContent> +</TabProvider> \ No newline at end of file diff --git a/packages/react/src/docs/components/TooltipBlocks/Examples/Controlled.tsx b/packages/react/src/docs/components/TooltipBlocks/Examples/Controlled.tsx new file mode 100644 index 0000000..a9b72ce --- /dev/null +++ b/packages/react/src/docs/components/TooltipBlocks/Examples/Controlled.tsx @@ -0,0 +1,16 @@ +import { Button } from "@components/Button"; +import { Tooltip, TooltipContent } from "@components/Tooltip"; +import { useState } from "react"; + +export function Controlled() { + const [opened, setOpened] = useState(false); + + return ( + <Tooltip position="top" controlled opened={opened}> + <TooltipContent delay={"early"}> + <p>Tooltip!</p> + </TooltipContent> + <Button onClick={() => setOpened((p) => !p)}>Open hover</Button> + </Tooltip> + ); +} diff --git a/packages/react/src/docs/components/TooltipBlocks/Examples/index.ts b/packages/react/src/docs/components/TooltipBlocks/Examples/index.ts index 1f08d68..239edf9 100644 --- a/packages/react/src/docs/components/TooltipBlocks/Examples/index.ts +++ b/packages/react/src/docs/components/TooltipBlocks/Examples/index.ts @@ -5,5 +5,15 @@ import { Top } from "./Top"; import { NoDelay } from "./NoDelay"; import { EarlyDelay } from "./EarlyDelay"; import { LateDelay } from "./LateDelay"; +import { Controlled } from "./Controlled"; -export default { Bottom, Left, Right, Top, NoDelay, EarlyDelay, LateDelay }; +export default { + Bottom, + Left, + Right, + Top, + NoDelay, + EarlyDelay, + LateDelay, + Controlled, +};