Skip to main content

Common

Common provides reusable UI patterns like CommonItem and CommonItemContainer.

CommonItem​

A versatile list item with icon, title, subtitle, and actions.

Features​

  • πŸ–ΌοΈ Left/right icons
  • πŸ“ Title, subtitle, description
  • β˜‘οΈ Selection states
  • ⭐ Favorite support
  • πŸ’€ Skeleton support

Basic Usage​

import { CommonItem } from '@tansuk/rott-ui';

<CommonItem
title="Item Title"
subTitle="Item subtitle"
leftIcon="USER"
rightIcon="CHEVRON_RIGHT"
onPress={() => {}}
/>

With Selection​

<CommonItem
title="Option 1"
showSelected
selected={selectedOption === 'option1'}
selectedIconType="check"
onPress={() => setSelectedOption('option1')}
/>

With Favorite​

<CommonItem
title="Favorite Item"
favorite={isFavorite}
onFavoritePress={() => setIsFavorite(!isFavorite)}
/>

CommonItemContainer​

Container for multiple CommonItem components.

Basic Usage​

import { CommonItemContainer } from '@tansuk/rott-ui';

<CommonItemContainer>
<CommonItem title="Item 1" />
<CommonItem title="Item 2" />
<CommonItem title="Item 3" />
</CommonItemContainer>

Props​

CommonItem Props​

PropTypeDescription
titlestring | LabelProps | ReactNodeItem title
subTitlestring | LabelProps | ReactNodeSubtitle
descriptionstring | LabelProps | ReactNodeDescription
leftIconIconKeys | IconProps | ReactNodeLeft icon
rightIconIconKeys | IconProps | ReactNodeRight icon
showSelectedbooleanShow selection
selectedbooleanSelected state
selectedIconType'check' | 'radio'Selection icon
favoritebooleanFavorite state
onPress() => voidPress handler

Examples​

Settings List​

<CommonItemContainer>
<CommonItem
title="Account"
subTitle="Manage your account"
leftIcon="USER"
rightIcon="CHEVRON_RIGHT"
onPress={() => navigation.navigate('Account')}
/>
<CommonItem
title="Privacy"
subTitle="Privacy settings"
leftIcon="LOCK"
rightIcon="CHEVRON_RIGHT"
onPress={() => navigation.navigate('Privacy')}
/>
<CommonItem
title="Notifications"
subTitle="Notification preferences"
leftIcon="NOTIFICATION"
rightIcon="CHEVRON_RIGHT"
onPress={() => navigation.navigate('Notifications')}
/>
</CommonItemContainer>

Selection List​

const [selected, setSelected] = useState('option1');

<CommonItemContainer>
{options.map((option) => (
<CommonItem
key={option.id}
title={option.title}
subTitle={option.description}
showSelected
selected={selected === option.id}
selectedIconType="radio"
onPress={() => setSelected(option.id)}
/>
))}
</CommonItemContainer>