Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 3x 3x | import React from "react";
import {
Pressable,
Text,
View,
type StyleProp,
type TextStyle,
type ViewStyle,
} from "react-native";
import { Ionicons } from "@expo/vector-icons";
import { useTheme } from "../../hooks/useTheme";
import { settingsSharedStyles } from "./settingsSharedStyles";
export type SettingsLinkRowProps = {
title: string;
subtitle?: string;
onPress: () => void;
showChevron?: boolean;
titleStyle?: StyleProp<TextStyle>;
subtitleStyle?: StyleProp<TextStyle>;
style?: StyleProp<ViewStyle>;
};
export function SettingsLinkRow({
title,
subtitle,
onPress,
showChevron = true,
titleStyle,
subtitleStyle,
style,
}: Readonly<SettingsLinkRowProps>) {
const { colors } = useTheme();
return (
<Pressable
style={[
settingsSharedStyles.linkRow,
{ backgroundColor: colors.card },
style,
]}
onPress={onPress}
>
<View>
<Text
style={[
settingsSharedStyles.rowTitle,
{ color: colors.text },
titleStyle,
]}
>
{title}
</Text>
{subtitle ? (
<Text
style={[
settingsSharedStyles.rowSubtitle,
{ color: colors.textMuted },
subtitleStyle,
]}
>
{subtitle}
</Text>
) : null}
</View>
{showChevron ? (
<Ionicons name="chevron-forward" size={18} color={colors.textMuted} />
) : null}
</Pressable>
);
}
|