diff --git a/docs/custom-components/custom-providers.mdx b/docs/custom-components/custom-providers.mdx index d3e532162..26abe74fd 100644 --- a/docs/custom-components/custom-providers.mdx +++ b/docs/custom-components/custom-providers.mdx @@ -27,19 +27,19 @@ Then build your Custom Provider as follows: ```tsx 'use client' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' const MyCustomContext = React.createContext(myCustomValue) export function MyProvider({ children }: { children: React.ReactNode }) { return ( - + {children} - + ) } -export const useMyCustomContext = () => useContext(MyCustomContext) +export const useMyCustomContext = () => use(MyCustomContext) ``` _For details on how to build Custom Components, see [Building Custom Components](./overview#building-custom-components)._ diff --git a/examples/auth/src/app/(app)/_providers/Auth/index.tsx b/examples/auth/src/app/(app)/_providers/Auth/index.tsx index 6083705c5..78da1ea56 100644 --- a/examples/auth/src/app/(app)/_providers/Auth/index.tsx +++ b/examples/auth/src/app/(app)/_providers/Auth/index.tsx @@ -2,7 +2,7 @@ import type { Permissions } from 'payload/auth' -import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' +import React, { createContext, useCallback, use, useEffect, useState } from 'react' import type { User } from '../../../../payload-types' import type { AuthContext, Create, ForgotPassword, Login, Logout, ResetPassword } from './types' @@ -163,7 +163,7 @@ export const AuthProvider: React.FC<{ api?: 'gql' | 'rest'; children: React.Reac ) return ( - {children} - + ) } -type UseAuth = () => AuthContext +type UseAuth = () => AuthContext -export const useAuth: UseAuth = () => useContext(Context) +export const useAuth: UseAuth = () => use(Context) diff --git a/examples/localization/src/providers/HeaderTheme/index.tsx b/examples/localization/src/providers/HeaderTheme/index.tsx index 76666f101..1d0255787 100644 --- a/examples/localization/src/providers/HeaderTheme/index.tsx +++ b/examples/localization/src/providers/HeaderTheme/index.tsx @@ -2,7 +2,7 @@ import type { Theme } from '@/providers/Theme/types' -import React, { createContext, useCallback, useContext, useState } from 'react' +import React, { createContext, useCallback, use, useState } from 'react' import canUseDOM from '@/utilities/canUseDOM' @@ -27,11 +27,7 @@ export const HeaderThemeProvider = ({ children }: { children: React.ReactNode }) setThemeState(themeToSet) }, []) - return ( - - {children} - - ) + return {children} } -export const useHeaderTheme = (): ContextType => useContext(HeaderThemeContext) +export const useHeaderTheme = (): ContextType => use(HeaderThemeContext) diff --git a/examples/localization/src/providers/Theme/index.tsx b/examples/localization/src/providers/Theme/index.tsx index 882d8318d..60dcedca4 100644 --- a/examples/localization/src/providers/Theme/index.tsx +++ b/examples/localization/src/providers/Theme/index.tsx @@ -1,6 +1,6 @@ 'use client' -import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' +import React, { createContext, useCallback, use, useEffect, useState } from 'react' import type { Theme, ThemeContextType } from './types' @@ -51,7 +51,7 @@ export const ThemeProvider = ({ children }: { children: React.ReactNode }) => { setThemeState(themeToSet) }, []) - return {children} + return {children} } -export const useTheme = (): ThemeContextType => useContext(ThemeContext) +export const useTheme = (): ThemeContextType => use(ThemeContext) diff --git a/packages/next/src/views/LivePreview/Context/context.ts b/packages/next/src/views/LivePreview/Context/context.ts index 236bc419a..a35d6dbe7 100644 --- a/packages/next/src/views/LivePreview/Context/context.ts +++ b/packages/next/src/views/LivePreview/Context/context.ts @@ -4,7 +4,7 @@ import type { fieldSchemaToJSON } from 'payload/shared' import type { Dispatch } from 'react' import type React from 'react' -import { createContext, useContext } from 'react' +import { createContext, use } from 'react' import type { usePopupWindow } from '../usePopupWindow.js' import type { SizeReducerAction } from './sizeReducer.js' @@ -83,4 +83,4 @@ export const LivePreviewContext = createContext({ zoom: 1, }) -export const useLivePreviewContext = () => useContext(LivePreviewContext) +export const useLivePreviewContext = () => use(LivePreviewContext) diff --git a/packages/next/src/views/LivePreview/Context/index.tsx b/packages/next/src/views/LivePreview/Context/index.tsx index 3ea06d3cb..7878d3c44 100644 --- a/packages/next/src/views/LivePreview/Context/index.tsx +++ b/packages/next/src/views/LivePreview/Context/index.tsx @@ -166,7 +166,7 @@ export const LivePreviewProvider: React.FC = ({ }, [previewWindowType, isPopupOpen, handleWindowChange]) return ( - = ({ {listeningForMessages && children} - + ) } diff --git a/packages/next/src/views/Version/Default/SelectedLocalesContext.tsx b/packages/next/src/views/Version/Default/SelectedLocalesContext.tsx index 484b6a64d..2913b82a6 100644 --- a/packages/next/src/views/Version/Default/SelectedLocalesContext.tsx +++ b/packages/next/src/views/Version/Default/SelectedLocalesContext.tsx @@ -1,6 +1,6 @@ 'use client' -import React, { createContext } from 'react' +import { createContext, use } from 'react' type SelectedLocalesContextType = { selectedLocales: string[] @@ -10,4 +10,4 @@ export const SelectedLocalesContext = createContext( selectedLocales: [], }) -export const useSelectedLocales = () => React.useContext(SelectedLocalesContext) +export const useSelectedLocales = () => use(SelectedLocalesContext) diff --git a/packages/next/src/views/Version/Default/index.tsx b/packages/next/src/views/Version/Default/index.tsx index d25dfb926..034243c3d 100644 --- a/packages/next/src/views/Version/Default/index.tsx +++ b/packages/next/src/views/Version/Default/index.tsx @@ -182,11 +182,11 @@ export const DefaultVersionView: React.FC = ({ /> )} - locale.value) }} > {doc?.version && RenderedDiff} - + ) diff --git a/packages/plugin-import-export/src/components/ImportExportProvider/index.tsx b/packages/plugin-import-export/src/components/ImportExportProvider/index.tsx index fc4c4d03f..185708f8f 100644 --- a/packages/plugin-import-export/src/components/ImportExportProvider/index.tsx +++ b/packages/plugin-import-export/src/components/ImportExportProvider/index.tsx @@ -1,5 +1,5 @@ 'use client' -import React, { createContext, useCallback, useContext, useState } from 'react' +import React, { createContext, use, useCallback, useState } from 'react' type ImportExportContext = { collection: string @@ -16,15 +16,15 @@ export const ImportExportProvider: React.FC<{ children: React.ReactNode }> = ({ }, []) return ( - {children} - + ) } -export const useImportExport = (): ImportExportContext => useContext(ImportExportContext) +export const useImportExport = (): ImportExportContext => use(ImportExportContext) diff --git a/packages/richtext-lexical/src/features/blocks/client/component/BlockContent.tsx b/packages/richtext-lexical/src/features/blocks/client/component/BlockContent.tsx index 471bd137e..5f25764d1 100644 --- a/packages/richtext-lexical/src/features/blocks/client/component/BlockContent.tsx +++ b/packages/richtext-lexical/src/features/blocks/client/component/BlockContent.tsx @@ -49,7 +49,7 @@ const BlockComponentContext = createContext({ initialState: false, }) -export const useBlockComponentContext = () => React.useContext(BlockComponentContext) +export const useBlockComponentContext = () => React.use(BlockComponentContext) /** * The actual content of the Block. This should be INSIDE a Form component, @@ -99,7 +99,7 @@ export const BlockContent: React.FC = (props) => { ) return CustomBlock ? ( - = (props) => { > {CustomBlock} - + ) : ( React.useContext(InlineBlockComponentContext) +export const useInlineBlockComponentContext = () => React.use(InlineBlockComponentContext) export const InlineBlockComponent: React.FC = (props) => { const { cacheBuster, formData, nodeKey } = props @@ -426,7 +426,7 @@ export const InlineBlockComponent: React.FC = (props) => { {CustomBlock ? ( - = (props) => { }} > {CustomBlock} - + ) : ( {initialState ? : } diff --git a/packages/richtext-lexical/src/features/experimental_table/client/plugins/TablePlugin/index.tsx b/packages/richtext-lexical/src/features/experimental_table/client/plugins/TablePlugin/index.tsx index 7c721cc9d..3f98a7873 100644 --- a/packages/richtext-lexical/src/features/experimental_table/client/plugins/TablePlugin/index.tsx +++ b/packages/richtext-lexical/src/features/experimental_table/client/plugins/TablePlugin/index.tsx @@ -16,7 +16,7 @@ import { INSERT_TABLE_COMMAND, TableCellNode, TableNode, TableRowNode } from '@l import { mergeRegister } from '@lexical/utils' import { formatDrawerSlug, useEditDepth } from '@payloadcms/ui' import { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, createCommand } from 'lexical' -import { createContext, useContext, useEffect, useMemo, useState } from 'react' +import { createContext, use, useEffect, useMemo, useState } from 'react' import * as React from 'react' import type { PluginComponent } from '../../../../typesClient.js' @@ -64,7 +64,7 @@ export function TableContext({ children }: { children: JSX.Element }) { cellEditorPlugins: null, }) return ( - ({ cellEditorConfig: contextValue.cellEditorConfig, @@ -77,13 +77,13 @@ export function TableContext({ children }: { children: JSX.Element }) { )} > {children} - + ) } export const TablePlugin: PluginComponent = () => { const [editor] = useLexicalComposerContext() - const cellContext = useContext(CellContext) + const cellContext = use(CellContext) const editDepth = useEditDepth() const { fieldProps: { schemaPath }, diff --git a/packages/richtext-lexical/src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx b/packages/richtext-lexical/src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx index 77017bb41..d831546e9 100644 --- a/packages/richtext-lexical/src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx +++ b/packages/richtext-lexical/src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx @@ -48,7 +48,7 @@ export function DropDownItem({ const ref = useRef(null) - const dropDownContext = React.useContext(DropDownContext) + const dropDownContext = React.use(DropDownContext) if (dropDownContext === null) { throw new Error('DropDownItem must be used within a DropDown') @@ -170,7 +170,7 @@ function DropDownItems({ }, [items, highlightedItem]) return ( - + {children} - + ) } diff --git a/packages/richtext-lexical/src/lexical/config/client/EditorConfigProvider.tsx b/packages/richtext-lexical/src/lexical/config/client/EditorConfigProvider.tsx index 20144407a..fecef560b 100644 --- a/packages/richtext-lexical/src/lexical/config/client/EditorConfigProvider.tsx +++ b/packages/richtext-lexical/src/lexical/config/client/EditorConfigProvider.tsx @@ -6,7 +6,7 @@ import type { MarkRequired } from 'ts-essentials' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js' import { useEditDepth } from '@payloadcms/ui' import * as React from 'react' -import { createContext, useContext, useMemo, useRef, useState } from 'react' +import { createContext, use, useMemo, useRef, useState } from 'react' import type { InlineBlockNode } from '../../../features/blocks/client/nodes/InlineBlocksNode.js' import type { LexicalRichTextFieldProps } from '../../../types.js' @@ -140,11 +140,11 @@ export const EditorConfigProvider = ({ ], ) - return {children} + return {children} } export const useEditorConfigContext = (): EditorConfigContextType => { - const context = useContext(Context) + const context = use(Context) if (context === undefined) { throw new Error('useEditorConfigContext must be used within an EditorConfigProvider') } diff --git a/packages/richtext-slate/src/field/providers/ElementButtonProvider.tsx b/packages/richtext-slate/src/field/providers/ElementButtonProvider.tsx index 5cc7b3d48..1e359f60e 100644 --- a/packages/richtext-slate/src/field/providers/ElementButtonProvider.tsx +++ b/packages/richtext-slate/src/field/providers/ElementButtonProvider.tsx @@ -25,17 +25,17 @@ export const ElementButtonProvider: React.FC< const { children, ...rest } = props return ( - {children} - + ) } export const useElementButton = () => { - const path = React.useContext(ElementButtonContext) + const path = React.use(ElementButtonContext) return path } diff --git a/packages/richtext-slate/src/field/providers/ElementProvider.tsx b/packages/richtext-slate/src/field/providers/ElementProvider.tsx index c1cb49fe7..4e987fd5e 100644 --- a/packages/richtext-slate/src/field/providers/ElementProvider.tsx +++ b/packages/richtext-slate/src/field/providers/ElementProvider.tsx @@ -33,17 +33,17 @@ export const ElementProvider: React.FC< const { childNodes, children, ...rest } = props return ( - {children} - + ) } export const useElement = (): ElementContextType => { - return React.useContext(ElementContext) as ElementContextType + return React.use(ElementContext) as ElementContextType } diff --git a/packages/richtext-slate/src/field/providers/LeafButtonProvider.tsx b/packages/richtext-slate/src/field/providers/LeafButtonProvider.tsx index d64276944..655f443a2 100644 --- a/packages/richtext-slate/src/field/providers/LeafButtonProvider.tsx +++ b/packages/richtext-slate/src/field/providers/LeafButtonProvider.tsx @@ -24,17 +24,17 @@ export const LeafButtonProvider: React.FC< const { children, ...rest } = props return ( - {children} - + ) } export const useLeafButton = () => { - const path = React.useContext(LeafButtonContext) + const path = React.use(LeafButtonContext) return path } diff --git a/packages/richtext-slate/src/field/providers/LeafProvider.tsx b/packages/richtext-slate/src/field/providers/LeafProvider.tsx index 493e1fe73..142a25e5b 100644 --- a/packages/richtext-slate/src/field/providers/LeafProvider.tsx +++ b/packages/richtext-slate/src/field/providers/LeafProvider.tsx @@ -32,18 +32,18 @@ export const LeafProvider: React.FC< const { children, result, ...rest } = props return ( - {children} - + ) } export const useLeaf = () => { - const path = React.useContext(LeafContext) + const path = React.use(LeafContext) return path } diff --git a/packages/richtext-slate/src/utilities/SlatePropsProvider.tsx b/packages/richtext-slate/src/utilities/SlatePropsProvider.tsx index d96912d17..9bc688b51 100644 --- a/packages/richtext-slate/src/utilities/SlatePropsProvider.tsx +++ b/packages/richtext-slate/src/utilities/SlatePropsProvider.tsx @@ -1,6 +1,6 @@ 'use client' -import React, { createContext, type ReactNode, useContext } from 'react' +import React, { createContext, type ReactNode, use } from 'react' interface SlateProps { schemaPath: string @@ -15,11 +15,11 @@ export function SlatePropsProvider({ children: ReactNode schemaPath: string }) { - return {children} + return {children} } export function useSlateProps() { - const context = useContext(SlatePropsContext) + const context = use(SlatePropsContext) if (!context) { throw new Error('useSlateProps must be used within SlatePropsProvider') } diff --git a/packages/ui/src/elements/BulkUpload/FormsManager/index.tsx b/packages/ui/src/elements/BulkUpload/FormsManager/index.tsx index 4bd7fdf52..d80409cd4 100644 --- a/packages/ui/src/elements/BulkUpload/FormsManager/index.tsx +++ b/packages/ui/src/elements/BulkUpload/FormsManager/index.tsx @@ -514,7 +514,7 @@ export function FormsManagerProvider({ children }: FormsManagerProps) { ]) return ( - )} {children} - + ) } export function useFormsManager() { - return React.useContext(Context) + return React.use(Context) } diff --git a/packages/ui/src/elements/BulkUpload/index.tsx b/packages/ui/src/elements/BulkUpload/index.tsx index 05769807d..cba2916d5 100644 --- a/packages/ui/src/elements/BulkUpload/index.tsx +++ b/packages/ui/src/elements/BulkUpload/index.tsx @@ -134,7 +134,7 @@ export function BulkUploadProvider({ children }: { readonly children: React.Reac }, []) return ( - - + ) } -export const useBulkUpload = () => React.useContext(Context) +export const useBulkUpload = () => React.use(Context) export function useBulkUploadDrawerSlug() { const depth = useDrawerDepth() diff --git a/packages/ui/src/elements/Collapsible/provider.tsx b/packages/ui/src/elements/Collapsible/provider.tsx index 91eeccfd7..36a91b1c6 100644 --- a/packages/ui/src/elements/Collapsible/provider.tsx +++ b/packages/ui/src/elements/Collapsible/provider.tsx @@ -1,5 +1,5 @@ 'use client' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' type ContextType = { isCollapsed: boolean @@ -32,7 +32,7 @@ export const CollapsibleProvider: React.FC<{ } }, [isCollapsed, isWithinCollapsible, toggle, parentIsCollapsed, isVisible]) - return {children} + return {children} } -export const useCollapsible = (): ContextType => useContext(Context) +export const useCollapsible = (): ContextType => use(Context) diff --git a/packages/ui/src/elements/DocumentDrawer/Provider.tsx b/packages/ui/src/elements/DocumentDrawer/Provider.tsx index 92df413c9..10e3be6e9 100644 --- a/packages/ui/src/elements/DocumentDrawer/Provider.tsx +++ b/packages/ui/src/elements/DocumentDrawer/Provider.tsx @@ -1,6 +1,6 @@ import type { ClientCollectionConfig, Data, FormState, TypeWithID } from 'payload' -import { createContext, useContext } from 'react' +import { createContext, use } from 'react' export type DocumentDrawerContextProps = { readonly clearDoc?: () => void @@ -31,15 +31,11 @@ export const DocumentDrawerContextProvider: React.FC< children: React.ReactNode } & DocumentDrawerContextProps > = ({ children, ...rest }) => { - return ( - - {children} - - ) + return {children} } export const useDocumentDrawerContext = (): DocumentDrawerContextType => { - const context = useContext(DocumentDrawerCallbacksContext) + const context = use(DocumentDrawerCallbacksContext) if (!context) { throw new Error('useDocumentDrawerContext must be used within a DocumentDrawerProvider') diff --git a/packages/ui/src/elements/Drawer/index.tsx b/packages/ui/src/elements/Drawer/index.tsx index c9ea6fd89..e340960ed 100644 --- a/packages/ui/src/elements/Drawer/index.tsx +++ b/packages/ui/src/elements/Drawer/index.tsx @@ -1,6 +1,6 @@ 'use client' import { Modal, useModal } from '@faceless-ui/modal' -import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' +import React, { createContext, use, useCallback, useEffect, useState } from 'react' import type { Props, TogglerProps } from './types.js' @@ -140,7 +140,7 @@ export const DrawerDepthProvider: React.FC<{ children: React.ReactNode }> = ({ c const parentDepth = useDrawerDepth() const depth = parentDepth + 1 - return {children} + return {children} } -export const useDrawerDepth = (): number => useContext(DrawerDepthContext) +export const useDrawerDepth = (): number => use(DrawerDepthContext) diff --git a/packages/ui/src/elements/EditMany/DrawerContent.tsx b/packages/ui/src/elements/EditMany/DrawerContent.tsx index 9c936c7e1..b5ab53a70 100644 --- a/packages/ui/src/elements/EditMany/DrawerContent.tsx +++ b/packages/ui/src/elements/EditMany/DrawerContent.tsx @@ -266,7 +266,7 @@ export const EditManyDrawerContent: React.FC< unpublishedVersionCount={0} versionCount={0} > - + @@ -332,7 +332,7 @@ export const EditManyDrawerContent: React.FC< - + ) } diff --git a/packages/ui/src/elements/ListDrawer/Provider.tsx b/packages/ui/src/elements/ListDrawer/Provider.tsx index c66f00968..8aeb4ed7a 100644 --- a/packages/ui/src/elements/ListDrawer/Provider.tsx +++ b/packages/ui/src/elements/ListDrawer/Provider.tsx @@ -1,6 +1,6 @@ import type { CollectionSlug, Data, ListQuery } from 'payload' -import { createContext, useContext } from 'react' +import { createContext, use } from 'react' import type { useSelection } from '../../providers/Selection/index.js' import type { UseDocumentDrawer } from '../DocumentDrawer/types.js' @@ -40,14 +40,14 @@ export const ListDrawerContextProvider: React.FC< } & ListDrawerContextProps > = ({ children, ...rest }) => { return ( - + {children} - + ) } export const useListDrawerContext = (): ListDrawerContextType => { - const context = useContext(ListDrawerContext) + const context = use(ListDrawerContext) if (!context) { throw new Error('useListDrawerContext must be used within a ListDrawerContextProvider') diff --git a/packages/ui/src/elements/LoadingOverlay/index.tsx b/packages/ui/src/elements/LoadingOverlay/index.tsx index 3d8390d8c..978bfe4bc 100644 --- a/packages/ui/src/elements/LoadingOverlay/index.tsx +++ b/packages/ui/src/elements/LoadingOverlay/index.tsx @@ -54,7 +54,7 @@ export const LoadingOverlayProvider: React.FC<{ children?: React.ReactNode }> = ) return ( - = /> )} {children} - + ) } export const useLoadingOverlay = (): LoadingOverlayContext => { - const contextHook = React.useContext(Context) + const contextHook = React.use(Context) if (contextHook === undefined) { throw new Error('useLoadingOverlay must be used within a LoadingOverlayProvider') } diff --git a/packages/ui/src/elements/Nav/context.tsx b/packages/ui/src/elements/Nav/context.tsx index a778c5cd8..61430ff42 100644 --- a/packages/ui/src/elements/Nav/context.tsx +++ b/packages/ui/src/elements/Nav/context.tsx @@ -21,7 +21,7 @@ export const NavContext = React.createContext({ shouldAnimate: false, }) -export const useNav = () => React.useContext(NavContext) +export const useNav = () => React.use(NavContext) const getNavPreference = async (getPreference): Promise => { const navPrefs = await getPreference('nav') @@ -111,8 +111,8 @@ export const NavProvider: React.FC<{ }, []) return ( - + {children} - + ) } diff --git a/packages/ui/src/elements/StepNav/context.tsx b/packages/ui/src/elements/StepNav/context.tsx index 5708e3475..58f738682 100644 --- a/packages/ui/src/elements/StepNav/context.tsx +++ b/packages/ui/src/elements/StepNav/context.tsx @@ -1,9 +1,9 @@ 'use client' -import React, { createContext, useContext, useState } from 'react' +import React, { createContext, use, useState } from 'react' import type { ContextType } from './types.js' -export const useStepNav = (): ContextType => useContext(Context) +export const useStepNav = (): ContextType => use(Context) export const Context = createContext({} as ContextType) @@ -11,13 +11,13 @@ export const StepNavProvider: React.FC<{ children?: React.ReactNode }> = ({ chil const [stepNav, setStepNav] = useState([]) return ( - {children} - + ) } diff --git a/packages/ui/src/elements/Table/RelationshipProvider/index.tsx b/packages/ui/src/elements/Table/RelationshipProvider/index.tsx index e1a9bea22..45d941ff5 100644 --- a/packages/ui/src/elements/Table/RelationshipProvider/index.tsx +++ b/packages/ui/src/elements/Table/RelationshipProvider/index.tsx @@ -1,7 +1,7 @@ 'use client' import type { TypeWithID } from 'payload' -import React, { createContext, useCallback, useContext, useEffect, useReducer, useRef } from 'react' +import React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react' import { useDebounce } from '../../../hooks/useDebounce.js' import { useConfig } from '../../../providers/Config/index.js' @@ -115,7 +115,7 @@ export const RelationshipProvider: React.FC<{ readonly children?: React.ReactNod [], ) - return {children} + return {children} } -export const useListRelationships = (): ListRelationshipContext => useContext(Context) +export const useListRelationships = (): ListRelationshipContext => use(Context) diff --git a/packages/ui/src/elements/TableColumns/RenderDefaultCell/index.tsx b/packages/ui/src/elements/TableColumns/RenderDefaultCell/index.tsx index ee52e1fb7..4fefe9bb9 100644 --- a/packages/ui/src/elements/TableColumns/RenderDefaultCell/index.tsx +++ b/packages/ui/src/elements/TableColumns/RenderDefaultCell/index.tsx @@ -13,7 +13,7 @@ const baseClass = 'default-cell' const CellPropsContext = React.createContext(null) export const useCellProps = (): DefaultCellComponentProps | null => - React.useContext(CellPropsContext) + React.use(CellPropsContext) export const RenderDefaultCell: React.FC<{ clientProps: DefaultCellComponentProps @@ -44,8 +44,8 @@ export const RenderDefaultCell: React.FC<{ } return ( - + {isLinkedColumn && LinkedCellOverride ? LinkedCellOverride : } - + ) } diff --git a/packages/ui/src/elements/TableColumns/context.ts b/packages/ui/src/elements/TableColumns/context.ts index 183f07104..7473931be 100644 --- a/packages/ui/src/elements/TableColumns/context.ts +++ b/packages/ui/src/elements/TableColumns/context.ts @@ -1,7 +1,7 @@ -import { createContext, useContext } from 'react' +import { createContext, use } from 'react' import type { ITableColumns } from './types.js' export const TableColumnContext = createContext({} as ITableColumns) -export const useTableColumns = (): ITableColumns => useContext(TableColumnContext) +export const useTableColumns = (): ITableColumns => use(TableColumnContext) diff --git a/packages/ui/src/elements/TableColumns/index.tsx b/packages/ui/src/elements/TableColumns/index.tsx index 0616985fb..52c9cec4e 100644 --- a/packages/ui/src/elements/TableColumns/index.tsx +++ b/packages/ui/src/elements/TableColumns/index.tsx @@ -90,7 +90,7 @@ export const TableColumnsProvider: React.FC = ({ }, [defaultColumns, setActiveColumns]) return ( - = ({ }} > {children} - + ) } diff --git a/packages/ui/src/fields/Group/provider.tsx b/packages/ui/src/fields/Group/provider.tsx index fa13d2038..54071e754 100644 --- a/packages/ui/src/fields/Group/provider.tsx +++ b/packages/ui/src/fields/Group/provider.tsx @@ -1,5 +1,5 @@ 'use client' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' export const GroupContext = createContext(false) @@ -7,7 +7,7 @@ export const GroupProvider: React.FC<{ children?: React.ReactNode; withinGroup?: children, withinGroup = true, }) => { - return {children} + return {children} } -export const useGroup = (): boolean => useContext(GroupContext) +export const useGroup = (): boolean => use(GroupContext) diff --git a/packages/ui/src/fields/Row/provider.tsx b/packages/ui/src/fields/Row/provider.tsx index b2c718fce..7743d3fcb 100644 --- a/packages/ui/src/fields/Row/provider.tsx +++ b/packages/ui/src/fields/Row/provider.tsx @@ -1,5 +1,5 @@ 'use client' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' export const Context = createContext(false) @@ -7,7 +7,7 @@ export const RowProvider: React.FC<{ children?: React.ReactNode; withinRow?: boo children, withinRow = true, }) => { - return {children} + return {children} } -export const useRow = (): boolean => useContext(Context) +export const useRow = (): boolean => use(Context) diff --git a/packages/ui/src/fields/Tabs/provider.tsx b/packages/ui/src/fields/Tabs/provider.tsx index eed7a70ef..43967d9ce 100644 --- a/packages/ui/src/fields/Tabs/provider.tsx +++ b/packages/ui/src/fields/Tabs/provider.tsx @@ -1,5 +1,5 @@ 'use client' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' const Context = createContext(false) @@ -7,7 +7,7 @@ export const TabsProvider: React.FC<{ children?: React.ReactNode; withinTab?: bo children, withinTab = true, }) => { - return {children} + return {children} } -export const useTabs = (): boolean => useContext(Context) +export const useTabs = (): boolean => use(Context) diff --git a/packages/ui/src/forms/Form/context.ts b/packages/ui/src/forms/Form/context.ts index 28bba76b2..ecb7abd7e 100644 --- a/packages/ui/src/forms/Form/context.ts +++ b/packages/ui/src/forms/Form/context.ts @@ -1,7 +1,7 @@ 'use client' import type { RenderedField } from 'payload' -import { createContext, useContext } from 'react' +import { createContext, use } from 'react' import { createContext as createSelectorContext, useContextSelector, @@ -31,23 +31,23 @@ export type RenderedFieldSlots = Map * * @see https://payloadcms.com/docs/admin/react-hooks#useform */ -const useForm = (): Context => useContext(FormContext) +const useForm = (): Context => use(FormContext) /** * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form. * This is the case withing lexical Blocks, as each lexical blocks renders their own Form. */ -const useDocumentForm = (): Context => useContext(DocumentFormContext) +const useDocumentForm = (): Context => use(DocumentFormContext) -const useWatchForm = (): Context => useContext(FormWatchContext) -const useFormSubmitted = (): boolean => useContext(SubmittedContext) -const useFormProcessing = (): boolean => useContext(ProcessingContext) +const useWatchForm = (): Context => use(FormWatchContext) +const useFormSubmitted = (): boolean => use(SubmittedContext) +const useFormProcessing = (): boolean => use(ProcessingContext) /** * If the form has started processing in the background (e.g. * if autosave is running), this will be true. */ -const useFormBackgroundProcessing = (): boolean => useContext(BackgroundProcessingContext) -const useFormModified = (): boolean => useContext(ModifiedContext) -const useFormInitializing = (): boolean => useContext(InitializingContext) +const useFormBackgroundProcessing = (): boolean => use(BackgroundProcessingContext) +const useFormModified = (): boolean => use(ModifiedContext) +const useFormInitializing = (): boolean => use(InitializingContext) /** * Get and set the value of a form field based on a selector diff --git a/packages/ui/src/forms/Form/index.tsx b/packages/ui/src/forms/Form/index.tsx index 0aa670042..f14ae390e 100644 --- a/packages/ui/src/forms/Form/index.tsx +++ b/packages/ui/src/forms/Form/index.tsx @@ -771,7 +771,7 @@ export const Form: React.FC = (props) => { ) const DocumentFormContextComponent: React.FC = isDocumentForm - ? DocumentFormContext.Provider + ? DocumentFormContext : React.Fragment const documentFormContextProps = isDocumentForm @@ -792,28 +792,29 @@ export const Form: React.FC = (props) => { ref={formRef} > - - + - - - - - + + + + + + {/* eslint-disable-next-line @eslint-react/no-context-provider */} {children} - - - - - - - + + + + + + + ) diff --git a/packages/ui/src/forms/RowLabel/Context/index.tsx b/packages/ui/src/forms/RowLabel/Context/index.tsx index 72e9cbd27..1a817a68b 100644 --- a/packages/ui/src/forms/RowLabel/Context/index.tsx +++ b/packages/ui/src/forms/RowLabel/Context/index.tsx @@ -28,9 +28,9 @@ export const RowLabelProvider: React.FC> = ({ children, path, row const data = arrayData || collapsibleData - return {children} + return {children} } export const useRowLabel = () => { - return React.useContext(RowLabel) as RowLabelType + return React.use(RowLabel) as RowLabelType } diff --git a/packages/ui/src/providers/Actions/index.tsx b/packages/ui/src/providers/Actions/index.tsx index ccdc38086..122b37e8f 100644 --- a/packages/ui/src/providers/Actions/index.tsx +++ b/packages/ui/src/providers/Actions/index.tsx @@ -1,6 +1,6 @@ 'use client' -import React, { createContext, useContext, useState } from 'react' +import React, { createContext, use, useState } from 'react' type ActionsContextType = { Actions: { @@ -14,7 +14,7 @@ const ActionsContext = createContext({ setViewActions: () => {}, }) -export const useActions = () => useContext(ActionsContext) +export const useActions = () => use(ActionsContext) export const ActionsProvider: React.FC<{ readonly Actions?: { @@ -25,7 +25,7 @@ export const ActionsProvider: React.FC<{ const [viewActions, setViewActions] = useState(Actions) return ( - {children} - + ) } diff --git a/packages/ui/src/providers/Auth/index.tsx b/packages/ui/src/providers/Auth/index.tsx index ba35bc388..ac71935c7 100644 --- a/packages/ui/src/providers/Auth/index.tsx +++ b/packages/ui/src/providers/Auth/index.tsx @@ -5,7 +5,7 @@ import { useModal } from '@faceless-ui/modal' import { usePathname, useRouter } from 'next/navigation.js' import { formatAdminURL } from 'payload/shared' import * as qs from 'qs-esm' -import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' +import React, { createContext, use, useCallback, useEffect, useState } from 'react' import { toast } from 'sonner' import { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js' @@ -307,7 +307,7 @@ export function AuthProvider({ }, [tokenExpiration, openModal, i18n, setNewUser, user, redirectToInactivityRoute]) return ( - {children} - + ) } -export const useAuth = (): AuthContext => useContext(Context) as AuthContext +export const useAuth = (): AuthContext => use(Context) as AuthContext diff --git a/packages/ui/src/providers/ClientFunction/index.tsx b/packages/ui/src/providers/ClientFunction/index.tsx index aabdf6405..9c52b35a9 100644 --- a/packages/ui/src/providers/ClientFunction/index.tsx +++ b/packages/ui/src/providers/ClientFunction/index.tsx @@ -35,21 +35,19 @@ export const ClientFunctionProvider: React.FC<{ children: React.ReactNode }> = ( }, []) return ( - - - {children} - - + {children} + ) } export const useAddClientFunction = (key: string, func: any) => { - const { addClientFunction, removeClientFunction } = React.useContext(ModifyClientFunctionContext) + const { addClientFunction, removeClientFunction } = React.use(ModifyClientFunctionContext) React.useEffect(() => { addClientFunction({ @@ -67,5 +65,5 @@ export const useAddClientFunction = (key: string, func: any) => { } export const useClientFunctions = () => { - return React.useContext(ClientFunctionsContext) + return React.use(ClientFunctionsContext) } diff --git a/packages/ui/src/providers/Config/index.tsx b/packages/ui/src/providers/Config/index.tsx index 1cc93820c..23f375baa 100644 --- a/packages/ui/src/providers/Config/index.tsx +++ b/packages/ui/src/providers/Config/index.tsx @@ -9,7 +9,7 @@ import type { UnsanitizedClientConfig, } from 'payload' -import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react' +import React, { createContext, use, useCallback, useEffect, useMemo, useState } from 'react' type GetEntityConfigFn = { // Overload #1: collectionSlug only @@ -99,10 +99,8 @@ export const ConfigProvider: React.FC<{ ) return ( - - {children} - + {children} ) } -export const useConfig = (): ClientConfigContext => useContext(RootConfigContext) +export const useConfig = (): ClientConfigContext => use(RootConfigContext) diff --git a/packages/ui/src/providers/DocumentEvents/index.tsx b/packages/ui/src/providers/DocumentEvents/index.tsx index e472726b9..6493f7403 100644 --- a/packages/ui/src/providers/DocumentEvents/index.tsx +++ b/packages/ui/src/providers/DocumentEvents/index.tsx @@ -1,7 +1,7 @@ 'use client' import type { DocumentEvent } from 'payload' -import React, { createContext, useContext, useState } from 'react' +import React, { createContext, use, useState } from 'react' const Context = createContext({ mostRecentUpdate: null, @@ -11,7 +11,7 @@ const Context = createContext({ export const DocumentEventsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { const [mostRecentUpdate, reportUpdate] = useState(null) - return {children} + return {children} } -export const useDocumentEvents = () => useContext(Context) +export const useDocumentEvents = () => use(Context) diff --git a/packages/ui/src/providers/DocumentInfo/index.tsx b/packages/ui/src/providers/DocumentInfo/index.tsx index 7a3fd1829..f92a43623 100644 --- a/packages/ui/src/providers/DocumentInfo/index.tsx +++ b/packages/ui/src/providers/DocumentInfo/index.tsx @@ -4,8 +4,8 @@ import type { ClientUser, DocumentPreferences, SanitizedDocumentPermissions } fr import * as qs from 'qs-esm' import React, { createContext, + use, useCallback, - useContext, useEffect, useMemo, useRef, @@ -28,7 +28,7 @@ const Context = createContext({} as DocumentInfoContext) export type * from './types.js' -export const useDocumentInfo = (): DocumentInfoContext => useContext(Context) +export const useDocumentInfo = (): DocumentInfoContext => use(Context) const DocumentInfo: React.FC< { @@ -360,7 +360,7 @@ const DocumentInfo: React.FC< versionCount, } - return {children} + return {children} } export const DocumentInfoProvider: React.FC< diff --git a/packages/ui/src/providers/EditDepth/index.tsx b/packages/ui/src/providers/EditDepth/index.tsx index cc6fe228a..3e52490f9 100644 --- a/packages/ui/src/providers/EditDepth/index.tsx +++ b/packages/ui/src/providers/EditDepth/index.tsx @@ -1,5 +1,5 @@ 'use client' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' export const EditDepthContext = createContext(0) @@ -7,7 +7,7 @@ export const EditDepthProvider: React.FC<{ children: React.ReactNode }> = ({ chi const parentDepth = useEditDepth() const depth = parentDepth + 1 - return {children} + return {children} } -export const useEditDepth = (): number => useContext(EditDepthContext) +export const useEditDepth = (): number => use(EditDepthContext) diff --git a/packages/ui/src/providers/EntityVisibility/index.tsx b/packages/ui/src/providers/EntityVisibility/index.tsx index e32525c0e..accaac5c4 100644 --- a/packages/ui/src/providers/EntityVisibility/index.tsx +++ b/packages/ui/src/providers/EntityVisibility/index.tsx @@ -1,7 +1,7 @@ 'use client' import type { SanitizedCollectionConfig, SanitizedGlobalConfig, VisibleEntities } from 'payload' -import React, { createContext, useCallback, useContext } from 'react' +import React, { createContext, use, useCallback } from 'react' export type VisibleEntitiesContextType = { isEntityVisible: ({ @@ -42,11 +42,11 @@ export const EntityVisibilityProvider: React.FC<{ ) return ( - + {children} - + ) } export const useEntityVisibility = (): VisibleEntitiesContextType => - useContext(EntityVisibilityContext) + use(EntityVisibilityContext) diff --git a/packages/ui/src/providers/ListQuery/context.ts b/packages/ui/src/providers/ListQuery/context.ts index d45c88849..99c732889 100644 --- a/packages/ui/src/providers/ListQuery/context.ts +++ b/packages/ui/src/providers/ListQuery/context.ts @@ -1,7 +1,7 @@ -import { createContext, useContext } from 'react' +import { createContext, use } from 'react' import type { IListQueryContext } from './types.js' export const ListQueryContext = createContext({} as IListQueryContext) -export const useListQuery = (): IListQueryContext => useContext(ListQueryContext) +export const useListQuery = (): IListQueryContext => use(ListQueryContext) diff --git a/packages/ui/src/providers/ListQuery/index.tsx b/packages/ui/src/providers/ListQuery/index.tsx index c0435a012..93d9ddf0e 100644 --- a/packages/ui/src/providers/ListQuery/index.tsx +++ b/packages/ui/src/providers/ListQuery/index.tsx @@ -178,7 +178,7 @@ export const ListQueryProvider: React.FC = ({ }, [defaultSort, defaultLimit, modifySearchParams, columns]) return ( - = ({ }} > {children} - + ) } diff --git a/packages/ui/src/providers/Locale/index.tsx b/packages/ui/src/providers/Locale/index.tsx index 0aaa2884e..ea22a5aed 100644 --- a/packages/ui/src/providers/Locale/index.tsx +++ b/packages/ui/src/providers/Locale/index.tsx @@ -3,7 +3,7 @@ import type { Locale } from 'payload' import { useSearchParams } from 'next/navigation.js' -import React, { createContext, useContext, useEffect, useRef, useState } from 'react' +import React, { createContext, use, useEffect, useRef, useState } from 'react' import { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js' import { useAuth } from '../Auth/index.js' @@ -114,18 +114,18 @@ export const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Loc }, [defaultLocale, getPreference, localization, fetchURL, localeFromParams, user?.id]) return ( - - + + {children} - - + + ) } -export const useLocaleLoading = () => useContext(LocaleLoadingContext) +export const useLocaleLoading = () => use(LocaleLoadingContext) /** * TODO: V4 * The return type of the `useLocale` hook will change in v4. It will return `null | Locale` instead of `false | {} | Locale`. */ -export const useLocale = (): Locale => useContext(LocaleContext) +export const useLocale = (): Locale => use(LocaleContext) diff --git a/packages/ui/src/providers/Operation/index.tsx b/packages/ui/src/providers/Operation/index.tsx index 3b94c47b2..e748fa0f7 100644 --- a/packages/ui/src/providers/Operation/index.tsx +++ b/packages/ui/src/providers/Operation/index.tsx @@ -1,13 +1,13 @@ 'use client' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' export const OperationContext = createContext('' as Operation) export const OperationProvider: React.FC<{ children: React.ReactNode; operation: Operation }> = ({ children, operation, -}) => {children} +}) => {children} export type Operation = 'create' | 'update' -export const useOperation = (): Operation | undefined => useContext(OperationContext) +export const useOperation = (): Operation | undefined => use(OperationContext) diff --git a/packages/ui/src/providers/Params/index.tsx b/packages/ui/src/providers/Params/index.tsx index bfbcb7464..15d9a2bc5 100644 --- a/packages/ui/src/providers/Params/index.tsx +++ b/packages/ui/src/providers/Params/index.tsx @@ -1,7 +1,7 @@ 'use client' import { useParams as useNextParams } from 'next/navigation.js' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' export type Params = ReturnType interface IParamsContext extends Params {} @@ -18,7 +18,7 @@ const Context = createContext({} as IParamsContext) */ export const ParamsProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => { const params = useNextParams() - return {children} + return {children} } /** @@ -29,4 +29,4 @@ export const ParamsProvider: React.FC<{ children?: React.ReactNode }> = ({ child * import { useParams } from 'next/navigation' * ``` */ -export const useParams = (): IParamsContext => useContext(Context) +export const useParams = (): IParamsContext => use(Context) diff --git a/packages/ui/src/providers/Preferences/index.tsx b/packages/ui/src/providers/Preferences/index.tsx index 1ca1b12ec..f0fe18960 100644 --- a/packages/ui/src/providers/Preferences/index.tsx +++ b/packages/ui/src/providers/Preferences/index.tsx @@ -1,6 +1,6 @@ 'use client' import { dequal } from 'dequal/lite' // lite: no need for Map and Set support -import React, { createContext, useCallback, useContext, useEffect, useRef } from 'react' +import React, { createContext, use, useCallback, useEffect, useRef } from 'react' import { useTranslation } from '../../providers/Translation/index.js' import { requests } from '../../utilities/api.js' @@ -149,7 +149,7 @@ export const PreferencesProvider: React.FC<{ children?: React.ReactNode }> = ({ contextRef.current.getPreference = getPreference contextRef.current.setPreference = setPreference - return {children} + return {children} } -export const usePreferences = (): PreferencesContext => useContext(Context) +export const usePreferences = (): PreferencesContext => use(Context) diff --git a/packages/ui/src/providers/RouteCache/index.tsx b/packages/ui/src/providers/RouteCache/index.tsx index 77682fbcb..ffb99c402 100644 --- a/packages/ui/src/providers/RouteCache/index.tsx +++ b/packages/ui/src/providers/RouteCache/index.tsx @@ -1,7 +1,7 @@ 'use client' import { usePathname, useRouter } from 'next/navigation.js' -import React, { createContext, useCallback, useContext, useEffect } from 'react' +import React, { createContext, use, useCallback, useEffect } from 'react' export type RouteCacheContext = { clearRouteCache: () => void @@ -23,7 +23,7 @@ export const RouteCache: React.FC<{ children: React.ReactNode }> = ({ children } clearRouteCache() }, [pathname, clearRouteCache]) - return {children} + return {children} } -export const useRouteCache = () => useContext(Context) +export const useRouteCache = () => use(Context) diff --git a/packages/ui/src/providers/RouteTransition/index.tsx b/packages/ui/src/providers/RouteTransition/index.tsx index 4e5a19381..d454aebd2 100644 --- a/packages/ui/src/providers/RouteTransition/index.tsx +++ b/packages/ui/src/providers/RouteTransition/index.tsx @@ -74,11 +74,9 @@ export const RouteTransitionProvider: React.FC = ({ childr ) return ( - + {children} - + ) } @@ -121,4 +119,4 @@ const RouteTransitionContext = React.createContext( * // ... * } */ -export const useRouteTransition = () => React.useContext(RouteTransitionContext) +export const useRouteTransition = () => React.use(RouteTransitionContext) diff --git a/packages/ui/src/providers/SearchParams/index.tsx b/packages/ui/src/providers/SearchParams/index.tsx index ed51f7712..cb66385ea 100644 --- a/packages/ui/src/providers/SearchParams/index.tsx +++ b/packages/ui/src/providers/SearchParams/index.tsx @@ -2,7 +2,7 @@ import { useSearchParams as useNextSearchParams } from 'next/navigation.js' import * as qs from 'qs-esm' -import React, { createContext, useContext } from 'react' +import React, { createContext, use } from 'react' export type SearchParamsContext = { searchParams: qs.ParsedQs @@ -50,7 +50,7 @@ export const SearchParamsProvider: React.FC<{ children?: React.ReactNode }> = ({ [searchParams], ) - return {children} + return {children} } /** @@ -66,4 +66,4 @@ export const SearchParamsProvider: React.FC<{ children?: React.ReactNode }> = ({ * const parsedSearchParams = parseSearchParams(searchParams) * ``` */ -export const useSearchParams = (): SearchParamsContext => useContext(Context) +export const useSearchParams = (): SearchParamsContext => use(Context) diff --git a/packages/ui/src/providers/Selection/index.tsx b/packages/ui/src/providers/Selection/index.tsx index 167c9f29c..d0828c326 100644 --- a/packages/ui/src/providers/Selection/index.tsx +++ b/packages/ui/src/providers/Selection/index.tsx @@ -3,7 +3,7 @@ import type { ClientUser, Where } from 'payload' import { useSearchParams } from 'next/navigation.js' import * as qs from 'qs-esm' -import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react' +import React, { createContext, use, useCallback, useEffect, useRef, useState } from 'react' import { parseSearchParams } from '../../utilities/parseSearchParams.js' import { useLocale } from '../Locale/index.js' @@ -200,7 +200,7 @@ export const SelectionProvider: React.FC = ({ children, docs = [], totalD totalDocs, } - return {children} + return {children} } -export const useSelection = (): SelectionContext => useContext(Context) +export const useSelection = (): SelectionContext => use(Context) diff --git a/packages/ui/src/providers/ServerFunctions/index.tsx b/packages/ui/src/providers/ServerFunctions/index.tsx index 64573a7e9..e0061a7e2 100644 --- a/packages/ui/src/providers/ServerFunctions/index.tsx +++ b/packages/ui/src/providers/ServerFunctions/index.tsx @@ -77,7 +77,7 @@ export const ServerFunctionsContext = createContext { - const context = React.useContext(ServerFunctionsContext) + const context = React.use(ServerFunctionsContext) if (context === undefined) { throw new Error('useServerFunctions must be used within a ServerFunctionsProvider') } @@ -218,7 +218,7 @@ export const ServerFunctionsProvider: React.FC<{ ) return ( - {children} - + ) } diff --git a/packages/ui/src/providers/Theme/index.tsx b/packages/ui/src/providers/Theme/index.tsx index 43f92a2bd..655d51019 100644 --- a/packages/ui/src/providers/Theme/index.tsx +++ b/packages/ui/src/providers/Theme/index.tsx @@ -1,5 +1,5 @@ 'use client' -import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' +import React, { createContext, use, useCallback, useEffect, useState } from 'react' import { useConfig } from '../Config/index.js' @@ -100,7 +100,7 @@ export const ThemeProvider: React.FC<{ [cookieKey], ) - return {children} + return {children} } -export const useTheme = (): ThemeContext => useContext(Context) +export const useTheme = (): ThemeContext => use(Context) diff --git a/packages/ui/src/providers/Translation/index.tsx b/packages/ui/src/providers/Translation/index.tsx index f165392f3..9e932f21c 100644 --- a/packages/ui/src/providers/Translation/index.tsx +++ b/packages/ui/src/providers/Translation/index.tsx @@ -14,7 +14,7 @@ import type { LanguageOptions } from 'payload' import { importDateFNSLocale, t } from '@payloadcms/translations' import { enUS } from 'date-fns/locale/en-US' import { useRouter } from 'next/navigation.js' -import React, { createContext, useContext, useEffect, useState } from 'react' +import React, { createContext, use, useEffect, useState } from 'react' type ContextType< TAdditionalTranslations = {}, @@ -98,7 +98,7 @@ export const TranslationProvider: React.FC = ({ }, [dateFNSKey]) return ( - = ({ }} > {children} - + ) } export const useTranslation = < TAdditionalTranslations = {}, TAdditionalClientTranslationKeys extends string = never, ->() => useContext>(Context) +>() => use>(Context) diff --git a/packages/ui/src/providers/UploadEdits/index.tsx b/packages/ui/src/providers/UploadEdits/index.tsx index 2fb823544..3f45a0dc3 100644 --- a/packages/ui/src/providers/UploadEdits/index.tsx +++ b/packages/ui/src/providers/UploadEdits/index.tsx @@ -29,11 +29,7 @@ export const UploadEditsProvider = ({ children }) => { })) } - return ( - - {children} - - ) + return {children} } -export const useUploadEdits = (): UploadEditsContext => React.useContext(Context) +export const useUploadEdits = (): UploadEditsContext => React.use(Context) diff --git a/packages/ui/src/providers/UploadHandlers/index.tsx b/packages/ui/src/providers/UploadHandlers/index.tsx index b3ac8009d..ec754a27f 100644 --- a/packages/ui/src/providers/UploadHandlers/index.tsx +++ b/packages/ui/src/providers/UploadHandlers/index.tsx @@ -38,13 +38,11 @@ export const UploadHandlersProvider = ({ children }) => { }) } - return ( - {children} - ) + return {children} } export const useUploadHandlers = (): UploadHandlersContext => { - const context = React.useContext(Context) + const context = React.use(Context) if (context === null) { throw new Error('useUploadHandlers must be used within UploadHandlersProvider') diff --git a/templates/website/src/providers/HeaderTheme/index.tsx b/templates/website/src/providers/HeaderTheme/index.tsx index 76666f101..1d0255787 100644 --- a/templates/website/src/providers/HeaderTheme/index.tsx +++ b/templates/website/src/providers/HeaderTheme/index.tsx @@ -2,7 +2,7 @@ import type { Theme } from '@/providers/Theme/types' -import React, { createContext, useCallback, useContext, useState } from 'react' +import React, { createContext, useCallback, use, useState } from 'react' import canUseDOM from '@/utilities/canUseDOM' @@ -27,11 +27,7 @@ export const HeaderThemeProvider = ({ children }: { children: React.ReactNode }) setThemeState(themeToSet) }, []) - return ( - - {children} - - ) + return {children} } -export const useHeaderTheme = (): ContextType => useContext(HeaderThemeContext) +export const useHeaderTheme = (): ContextType => use(HeaderThemeContext) diff --git a/templates/website/src/providers/Theme/index.tsx b/templates/website/src/providers/Theme/index.tsx index 882d8318d..60dcedca4 100644 --- a/templates/website/src/providers/Theme/index.tsx +++ b/templates/website/src/providers/Theme/index.tsx @@ -1,6 +1,6 @@ 'use client' -import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' +import React, { createContext, useCallback, use, useEffect, useState } from 'react' import type { Theme, ThemeContextType } from './types' @@ -51,7 +51,7 @@ export const ThemeProvider = ({ children }: { children: React.ReactNode }) => { setThemeState(themeToSet) }, []) - return {children} + return {children} } -export const useTheme = (): ThemeContextType => useContext(ThemeContext) +export const useTheme = (): ThemeContextType => use(ThemeContext) diff --git a/templates/with-vercel-website/src/providers/HeaderTheme/index.tsx b/templates/with-vercel-website/src/providers/HeaderTheme/index.tsx index 76666f101..1d0255787 100644 --- a/templates/with-vercel-website/src/providers/HeaderTheme/index.tsx +++ b/templates/with-vercel-website/src/providers/HeaderTheme/index.tsx @@ -2,7 +2,7 @@ import type { Theme } from '@/providers/Theme/types' -import React, { createContext, useCallback, useContext, useState } from 'react' +import React, { createContext, useCallback, use, useState } from 'react' import canUseDOM from '@/utilities/canUseDOM' @@ -27,11 +27,7 @@ export const HeaderThemeProvider = ({ children }: { children: React.ReactNode }) setThemeState(themeToSet) }, []) - return ( - - {children} - - ) + return {children} } -export const useHeaderTheme = (): ContextType => useContext(HeaderThemeContext) +export const useHeaderTheme = (): ContextType => use(HeaderThemeContext) diff --git a/templates/with-vercel-website/src/providers/Theme/index.tsx b/templates/with-vercel-website/src/providers/Theme/index.tsx index 882d8318d..60dcedca4 100644 --- a/templates/with-vercel-website/src/providers/Theme/index.tsx +++ b/templates/with-vercel-website/src/providers/Theme/index.tsx @@ -1,6 +1,6 @@ 'use client' -import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' +import React, { createContext, useCallback, use, useEffect, useState } from 'react' import type { Theme, ThemeContextType } from './types' @@ -51,7 +51,7 @@ export const ThemeProvider = ({ children }: { children: React.ReactNode }) => { setThemeState(themeToSet) }, []) - return {children} + return {children} } -export const useTheme = (): ThemeContextType => useContext(ThemeContext) +export const useTheme = (): ThemeContextType => use(ThemeContext) diff --git a/test/admin/components/CustomProvider/index.tsx b/test/admin/components/CustomProvider/index.tsx index 52d2ff0fa..5c5ecc2b9 100644 --- a/test/admin/components/CustomProvider/index.tsx +++ b/test/admin/components/CustomProvider/index.tsx @@ -1,6 +1,6 @@ 'use client' -import React, { createContext, useContext, useState } from 'react' +import React, { createContext, use, useState } from 'react' type CustomContext = { getCustom @@ -18,13 +18,13 @@ export const CustomProvider: React.FC<{ children: React.ReactNode }> = ({ childr } return ( - + This is a custom provider. {children} - + ) } -export const useCustom = () => useContext(Context) +export const useCustom = () => use(Context)