Skip to content

Commit d3e1a4f

Browse files
committed
chore: remove forwardref and rn-primitives/types package
1 parent 6872b4a commit d3e1a4f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1692
-1501
lines changed

apps/cli/src/items/components.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export const COMPONENTS = [
7878
name: 'badge',
7979
dependencies: [],
8080
icons: [],
81-
npmPackages: ['@rn-primitives/slot', '@rn-primitives/types'],
81+
npmPackages: ['@rn-primitives/slot'],
8282
paths: [
8383
{
8484
from: './node_modules/@rnr/reusables/src/components/ui/badge.tsx',
@@ -93,7 +93,7 @@ export const COMPONENTS = [
9393
name: 'button',
9494
dependencies: ['text'],
9595
icons: [],
96-
npmPackages: ['@rn-primitives/types'],
96+
npmPackages: [],
9797
paths: [
9898
{
9999
from: './node_modules/@rnr/reusables/src/components/ui/button.tsx',
@@ -108,7 +108,7 @@ export const COMPONENTS = [
108108
name: 'card',
109109
dependencies: ['text'],
110110
icons: [],
111-
npmPackages: ['@rn-primitives/types'],
111+
npmPackages: [],
112112
paths: [
113113
{
114114
from: './node_modules/@rnr/reusables/src/components/ui/card.tsx',
@@ -408,7 +408,7 @@ export const COMPONENTS = [
408408
name: 'text',
409409
dependencies: [],
410410
icons: [],
411-
npmPackages: ['@rn-primitives/slot', '@rn-primitives/types'],
411+
npmPackages: ['@rn-primitives/slot'],
412412
paths: [
413413
{
414414
from: './node_modules/@rnr/reusables/src/components/ui/text.tsx',
@@ -468,7 +468,7 @@ export const COMPONENTS = [
468468
name: 'typography',
469469
dependencies: [],
470470
icons: [],
471-
npmPackages: ['@rn-primitives/slot', '@rn-primitives/types'],
471+
npmPackages: ['@rn-primitives/slot'],
472472
paths: [
473473
{
474474
from: './node_modules/@rnr/reusables/src/components/ui/typography.tsx',

apps/showcase/app/navigation-menu.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { ViewRef } from '@rn-primitives/types';
21
import { useNavigation } from 'expo-router';
32
import * as React from 'react';
43
import { Platform, Pressable, StyleSheet, View } from 'react-native';
@@ -153,14 +152,16 @@ const components: { title: string; href: string; description: string }[] = [
153152
},
154153
];
155154

156-
const ListItem = React.forwardRef<
157-
ViewRef,
158-
React.ComponentPropsWithoutRef<typeof View> & { title: string; href: string }
159-
>(({ className, title, children, ...props }, ref) => {
155+
type ListItemProps = Omit<React.ComponentProps<typeof NavigationMenuLink>, 'children'> & {
156+
children: React.ReactNode;
157+
title: string;
158+
href: string;
159+
};
160+
161+
function ListItem({ className, title, children, ...props }: ListItemProps) {
160162
return (
161163
<View role='listitem'>
162164
<NavigationMenuLink
163-
ref={ref}
164165
className={cn(
165166
'web:block web:select-none gap-1 rounded-md p-3 leading-none no-underline text-foreground web:outline-none web:transition-colors web:hover:bg-accent active:bg-accent web:hover:text-accent-foreground web:focus:bg-accent web:focus:text-accent-foreground',
166167
className
@@ -176,5 +177,4 @@ const ListItem = React.forwardRef<
176177
</NavigationMenuLink>
177178
</View>
178179
);
179-
});
180-
ListItem.displayName = 'ListItem';
180+
}

apps/showcase/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"@rn-primitives/slider": "~1.2.0",
2727
"@rn-primitives/toast": "~1.2.0",
2828
"@rn-primitives/toolbar": "~1.2.0",
29-
"@rn-primitives/types": "~1.2.0",
3029
"@rnr/reusables": "workspace:*",
3130
"@shopify/flash-list": "1.7.6",
3231
"@tanstack/react-table": "^8.11.7",

packages/reusables/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@
171171
"@rn-primitives/toggle-group": "~1.2.0",
172172
"@rn-primitives/toolbar": "~1.2.0",
173173
"@rn-primitives/tooltip": "~1.2.0",
174-
"@rn-primitives/types": "~1.2.0",
175174
"@shopify/flash-list": "1.7.6",
176175
"@tanstack/react-table": "^8.11.7",
177176
"class-variance-authority": "^0.7.0",

packages/reusables/src/components/ui/accordion.tsx

Lines changed: 52 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,42 +16,52 @@ import { ChevronDown } from '../../lib/icons/ChevronDown';
1616
import { cn } from '../../lib/utils';
1717
import { TextClassContext } from './text';
1818

19-
const Accordion = React.forwardRef<AccordionPrimitive.RootRef, AccordionPrimitive.RootProps>(
20-
({ children, ...props }, ref) => {
21-
return (
22-
<LayoutAnimationConfig skipEntering>
23-
<AccordionPrimitive.Root ref={ref} {...props} asChild={Platform.OS !== 'web'}>
24-
<Animated.View layout={LinearTransition.duration(200)}>{children}</Animated.View>
25-
</AccordionPrimitive.Root>
26-
</LayoutAnimationConfig>
27-
);
28-
}
29-
);
30-
31-
Accordion.displayName = AccordionPrimitive.Root.displayName;
19+
function Accordion({
20+
children,
21+
...props
22+
}: Omit<AccordionPrimitive.RootProps, 'asChild'> & {
23+
ref?: React.RefObject<AccordionPrimitive.RootRef>;
24+
}) {
25+
return (
26+
<LayoutAnimationConfig skipEntering>
27+
<AccordionPrimitive.Root
28+
{...(props as AccordionPrimitive.RootProps)}
29+
asChild={Platform.OS !== 'web'}
30+
>
31+
<Animated.View layout={LinearTransition.duration(200)}>{children}</Animated.View>
32+
</AccordionPrimitive.Root>
33+
</LayoutAnimationConfig>
34+
);
35+
}
3236

33-
const AccordionItem = React.forwardRef<AccordionPrimitive.ItemRef, AccordionPrimitive.ItemProps>(
34-
({ className, value, ...props }, ref) => {
35-
return (
36-
<Animated.View className={'overflow-hidden'} layout={LinearTransition.duration(200)}>
37-
<AccordionPrimitive.Item
38-
ref={ref}
39-
className={cn('border-b border-border', className)}
40-
value={value}
41-
{...props}
42-
/>
43-
</Animated.View>
44-
);
45-
}
46-
);
47-
AccordionItem.displayName = AccordionPrimitive.Item.displayName;
37+
function AccordionItem({
38+
className,
39+
value,
40+
...props
41+
}: AccordionPrimitive.ItemProps & {
42+
ref?: React.RefObject<AccordionPrimitive.ItemRef>;
43+
}) {
44+
return (
45+
<Animated.View className={'overflow-hidden'} layout={LinearTransition.duration(200)}>
46+
<AccordionPrimitive.Item
47+
className={cn('border-b border-border', className)}
48+
value={value}
49+
{...props}
50+
/>
51+
</Animated.View>
52+
);
53+
}
4854

4955
const Trigger = Platform.OS === 'web' ? View : Pressable;
5056

51-
const AccordionTrigger = React.forwardRef<
52-
AccordionPrimitive.TriggerRef,
53-
AccordionPrimitive.TriggerProps
54-
>(({ className, children, ...props }, ref) => {
57+
function AccordionTrigger({
58+
className,
59+
children,
60+
...props
61+
}: AccordionPrimitive.TriggerProps & {
62+
children?: React.ReactNode;
63+
ref?: React.RefObject<AccordionPrimitive.TriggerRef>;
64+
}) {
5565
const { isExpanded } = AccordionPrimitive.useItemContext();
5666

5767
const progress = useDerivedValue(() =>
@@ -65,7 +75,7 @@ const AccordionTrigger = React.forwardRef<
6575
return (
6676
<TextClassContext.Provider value='native:text-lg font-medium web:group-hover:underline'>
6777
<AccordionPrimitive.Header className='flex'>
68-
<AccordionPrimitive.Trigger ref={ref} {...props} asChild>
78+
<AccordionPrimitive.Trigger {...props} asChild>
6979
<Trigger
7080
className={cn(
7181
'flex flex-row web:flex-1 items-center justify-between py-4 web:transition-all group web:focus-visible:outline-none web:focus-visible:ring-1 web:focus-visible:ring-muted-foreground',
@@ -81,13 +91,15 @@ const AccordionTrigger = React.forwardRef<
8191
</AccordionPrimitive.Header>
8292
</TextClassContext.Provider>
8393
);
84-
});
85-
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
94+
}
8695

87-
const AccordionContent = React.forwardRef<
88-
AccordionPrimitive.ContentRef,
89-
AccordionPrimitive.ContentProps
90-
>(({ className, children, ...props }, ref) => {
96+
function AccordionContent({
97+
className,
98+
children,
99+
...props
100+
}: AccordionPrimitive.ContentProps & {
101+
ref?: React.RefObject<AccordionPrimitive.ContentRef>;
102+
}) {
91103
const { isExpanded } = AccordionPrimitive.useItemContext();
92104
return (
93105
<TextClassContext.Provider value='native:text-lg'>
@@ -96,14 +108,13 @@ const AccordionContent = React.forwardRef<
96108
'overflow-hidden text-sm web:transition-all',
97109
isExpanded ? 'web:animate-accordion-down' : 'web:animate-accordion-up'
98110
)}
99-
ref={ref}
100111
{...props}
101112
>
102113
<InnerContent className={cn('pb-4', className)}>{children}</InnerContent>
103114
</AccordionPrimitive.Content>
104115
</TextClassContext.Provider>
105116
);
106-
});
117+
}
107118

108119
function InnerContent({ children, className }: { children: React.ReactNode; className?: string }) {
109120
if (Platform.OS === 'web') {
@@ -120,6 +131,4 @@ function InnerContent({ children, className }: { children: React.ReactNode; clas
120131
);
121132
}
122133

123-
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
124-
125134
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };

0 commit comments

Comments
 (0)