refactor(app): drop the unused actions slot from PageLayout

This commit is contained in:
Mohamed Boudra
2026-09-26 21:05:56 +02:00
parent 72c620029d
commit ea1dd5cf1d
@@ -8,8 +8,6 @@ import { useIsCompactFormFactor } from "@/constants/layout";
interface PageLayoutProps {
title?: string;
/** Sits at the end of the title row on desktop and in the header on compact. */
actions?: ReactNode;
/** Compact back button. Defaults to navigating back. */
onBack?: () => void;
testID?: string;
@@ -21,28 +19,21 @@ interface PageLayoutProps {
* document heading inside the page and the header only keeps the titlebar drag
* region and window controls; on compact the title moves into a back header.
*/
export function PageLayout({ title, actions, onBack, testID, children }: PageLayoutProps) {
export function PageLayout({ title, onBack, testID, children }: PageLayoutProps) {
const isCompact = useIsCompactFormFactor();
const insets = useSafeAreaInsets();
const scrollContentStyle = useMemo(() => ({ paddingBottom: insets.bottom }), [insets.bottom]);
const showTitleRow = !isCompact && (title !== undefined || actions !== undefined);
const showTitle = !isCompact && title !== undefined;
return (
<View style={styles.container}>
{isCompact ? (
<BackHeader title={title} rightContent={actions} onBack={onBack} />
) : (
<MenuHeader borderless />
)}
{isCompact ? <BackHeader title={title} onBack={onBack} /> : <MenuHeader borderless />}
<ScrollView style={styles.scroll} contentContainerStyle={scrollContentStyle} testID={testID}>
<View style={styles.content}>
{showTitleRow ? (
<View style={styles.titleRow}>
<Text style={styles.title} testID="page-title">
{title}
</Text>
{actions}
</View>
{showTitle ? (
<Text style={styles.title} testID="page-title">
{title}
</Text>
) : null}
{children}
</View>
@@ -66,16 +57,10 @@ const styles = StyleSheet.create((theme) => ({
maxWidth: 720,
alignSelf: "center",
},
titleRow: {
flexDirection: "row",
alignItems: "center",
gap: theme.spacing[2],
title: {
// Line up with the section titles, which sit inset from their cards.
marginLeft: theme.spacing[1],
marginBottom: theme.spacing[6],
},
title: {
flex: 1,
fontSize: theme.fontSize["4xl"],
fontWeight: theme.fontWeight.medium,
color: theme.colors.foreground,