Skip to content

Commit

Permalink
refactor: clean up useClient (#23280)
Browse files Browse the repository at this point in the history
Move useClients to the actual file instead of index files, so that (a) we don't
ship unnecessary client-side code and (b) we don't get the "can't dot into
client component from server" error when trying to use MDX in RSCs.
  • Loading branch information
charislam committed May 6, 2024
1 parent a67446b commit 94c906b
Show file tree
Hide file tree
Showing 40 changed files with 84 additions and 18 deletions.
4 changes: 0 additions & 4 deletions packages/ui/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
'use client'

import * as React from 'react'

// Markdown components

export * from './src/lib/Markdown'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Accordion/Accordion.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as RadixAccordion from '@radix-ui/react-accordion'
import React, { createContext, useContext, useState } from 'react'

Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Alert/Alert.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React, { useState } from 'react'
import { IconAlertTriangle } from '../Icon/icons/IconAlertTriangle'

Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Checkbox/Checkbox.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React from 'react'

import { FormLayout } from '../../lib/Layout/FormLayout/FormLayout'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/CodeBlock/CodeBlock.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { Check, Copy } from 'lucide-react'
import { useTheme } from 'next-themes'
import { Children, ReactNode, useState } from 'react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Collapsible/Collapsible.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as RadixCollapsible from '@radix-ui/react-collapsible'
import React from 'react'
import styleHandler from '../../lib/theme/styleHandler'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/ContextMenu/index.tsx
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
'use client'

export { default as ContextMenu } from './ContextMenu'
2 changes: 2 additions & 0 deletions packages/ui/src/components/CustomHTMLElements/Heading.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import {
getAnchor,
removeAnchor,
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Form/Form.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { useReducer } from 'react'
import { useFormik, FormikConfig } from 'formik'
import { FormContextProvider } from './FormContext'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Icon/Icon.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React from 'react'
import { IconContext } from './IconContext'

Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Icon/IconBase.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React from 'react'

import styleHandler from '../../lib/theme/styleHandler'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Icon/IconContext.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { createContext } from 'react'

import { SizeVariantProps } from '../../lib/commonCva'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Input/Input.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React, { useEffect, useState } from 'react'

import { FormLayout } from '../../lib/Layout/FormLayout/FormLayout'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/InputNumber/InputNumber.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React, { useEffect } from 'react'

// import { IconChevronDown } from '../Icon/icons/IconChevronDown'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Listbox/Listbox2.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'
import { flatten } from 'lodash'
import React, { useEffect, useRef, useState } from 'react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Menu/Menu.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React from 'react'
import styleHandler from '../../lib/theme/styleHandler'
import { cn } from '../../lib/utils/cn'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Popover/Popover.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import type * as RadixPopoverTypes from '@radix-ui/react-popover'
import * as RadixPopover from '@radix-ui/react-popover'
import * as React from 'react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/PromoToast/PromoToast.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import Image from 'next/image'
import Link from 'next/link'
import { useEffect, useState } from 'react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Radio/Radio.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React, { useEffect, useState } from 'react'

import { FormLayout } from '../../lib/Layout/FormLayout/FormLayout'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Select/Select.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React, { useEffect } from 'react'

import { FormLayout } from '../../lib/Layout/FormLayout/FormLayout'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/SidePanel/SidePanel.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as Dialog from '@radix-ui/react-dialog'
import * as Tooltip from '@radix-ui/react-tooltip'
import React from 'react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Tabs/Tabs.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as TabsPrimitive from '@radix-ui/react-tabs'
import { Children, useMemo, useState, type KeyboardEvent, type PropsWithChildren } from 'react'
import styleHandler from '../../lib/theme/styleHandler'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/ThemeProvider/ThemeProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { createContext } from 'react'

import defaultTheme from '../../lib/theme/defaultTheme'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Toggle/Toggle.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import clsx from 'clsx'
import React, { useEffect, useState } from 'react'

Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/Upload/Upload.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import React from 'react'
import { FormLayout } from '../../lib/Layout/FormLayout/FormLayout'
// @ts-ignore
Expand Down
3 changes: 0 additions & 3 deletions packages/ui/src/components/Upload/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@

import Upload from './Upload'
export default Upload
export { default as Upload } from './Upload'


2 changes: 2 additions & 0 deletions packages/ui/src/components/shadcn/ui/accordion.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as AccordionPrimitive from '@radix-ui/react-accordion'
import { ChevronDown } from 'lucide-react'
import * as React from 'react'
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/components/shadcn/ui/collapsible.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use client"
'use client'

import * as CollapsiblePrimitive from "@radix-ui/react-collapsible"
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible'

const Collapsible = CollapsiblePrimitive.Root

Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/shadcn/ui/command.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { DialogProps } from '@radix-ui/react-dialog'
import { Command as CommandPrimitive } from 'cmdk'
import { Search } from 'lucide-react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/shadcn/ui/dropdown-menu.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'
import { Check, ChevronRight, Circle } from 'lucide-react'
import * as React from 'react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/shadcn/ui/form.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as LabelPrimitive from '@radix-ui/react-label'
import { Slot } from '@radix-ui/react-slot'
import * as React from 'react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/shadcn/ui/popover.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as PopoverPrimitive from '@radix-ui/react-popover'
import * as React from 'react'

Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/shadcn/ui/toast.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import * as ToastPrimitives from '@radix-ui/react-toast'
import { cva, type VariantProps } from 'class-variance-authority'
import { X } from 'lucide-react'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/components/shadcn/ui/use-toast.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

// Inspired by react-hot-toast library
import * as React from 'react'

Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/layout/PortalToast/PortalToast.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { X } from 'lucide-react'
import dynamic from 'next/dynamic'
import { Toaster, ToastBar, toast } from 'react-hot-toast'
Expand Down
18 changes: 10 additions & 8 deletions packages/ui/src/layout/ai-icon-animation/ai-icon-animation.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

// make a function that returns a component

import { useState, useEffect } from 'react'
Expand Down Expand Up @@ -55,8 +57,8 @@ const AiIconAnimation = ({ loading = false, className, allowHoverEffect = false
loading
? styles[`ai-icon__grid__square--step-${step}`]
: isAnimating
? styles[`ai-icon__grid__square--exiting--step-${exitStep}`]
: styles[`ai-icon__grid__square--static`]
? styles[`ai-icon__grid__square--exiting--step-${exitStep}`]
: styles[`ai-icon__grid__square--static`]
)}
></div>
<div
Expand All @@ -65,8 +67,8 @@ const AiIconAnimation = ({ loading = false, className, allowHoverEffect = false
loading
? styles[`ai-icon__grid__square--step-${step}`]
: isAnimating
? styles[`ai-icon__grid__square--exiting--step-${exitStep}`]
: styles[`ai-icon__grid__square--static`]
? styles[`ai-icon__grid__square--exiting--step-${exitStep}`]
: styles[`ai-icon__grid__square--static`]
)}
></div>
<div
Expand All @@ -75,8 +77,8 @@ const AiIconAnimation = ({ loading = false, className, allowHoverEffect = false
loading
? styles[`ai-icon__grid__square--step-${step}`]
: isAnimating
? styles[`ai-icon__grid__square--exiting--step-${exitStep}`]
: styles[`ai-icon__grid__square--static`]
? styles[`ai-icon__grid__square--exiting--step-${exitStep}`]
: styles[`ai-icon__grid__square--static`]
)}
></div>
<div
Expand All @@ -85,8 +87,8 @@ const AiIconAnimation = ({ loading = false, className, allowHoverEffect = false
loading
? styles[`ai-icon__grid__square--step-${step}`]
: isAnimating
? styles[`ai-icon__grid__square--exiting--step-${exitStep}`]
: styles[`ai-icon__grid__square--static`]
? styles[`ai-icon__grid__square--exiting--step-${exitStep}`]
: styles[`ai-icon__grid__square--static`]
)}
></div>
</div>
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/layout/banners/Announcement.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { useEffect, useState } from 'react'

import _announcement from './data/Announcement.json'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { useRouter } from 'next/router'
import { Button, cn } from 'ui'
import announcement from '../data/Announcement.json'
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/lib/Hooks.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use client'

import { useEffect } from 'react'

/*
Expand Down
3 changes: 2 additions & 1 deletion packages/ui/src/lib/Markdown/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import * as React from 'react'
'use client'

import { CodeBlock } from '../../components/CodeBlock/CodeBlock'
import Image from 'next/image'
import { cn } from '../utils'
Expand Down

0 comments on commit 94c906b

Please sign in to comment.