UNPKG

@navikt/ds-react

Version:

React components from the Norwegian Labour and Welfare Administration.

33 lines (27 loc) 1.1 kB
import { createContext as ReactCreateContext } from "react"; import { createContext } from "../util/create-context"; import { createDescendantContext } from "../util/hooks/descendants/useDescendant"; import { ToggleGroupProps } from "./ToggleGroup.types"; import { useToggleGroup } from "./useToggleGroup"; interface ToggleContextProps { size: "medium" | "small"; } export const ToggleGroupContext = ReactCreateContext<ToggleContextProps | null>( null, ); export const [ ToggleGroupDescendantsProvider, useToggleGroupDescendantsContext, useToggleGroupDescendants, useToggleGroupDescendant, ] = createDescendantContext<HTMLButtonElement, { value: string }>(); type ToggleGroupProviderProps = ReturnType<typeof useToggleGroup> & Pick<ToggleGroupProps, "size">; /* State context */ export const [ToggleGroupProvider, useToggleGroupContext] = createContext<ToggleGroupProviderProps>({ name: "ToggleGroupContext", hookName: "useToggleGroupContext", providerName: "ToggleGroupProvider", errorMessage: "<ToggleGroup.Item> needs to be wrapped within <ToggleGroup>", });