import type { JSX } from "solid-js" import type { ThemeColors, LayerBackgrounds } from "../types/settings" import { LayerIndicator } from "./LayerIndicator" type LayerConfig = { depth: number background: string } type LayoutProps = { header?: JSX.Element footer?: JSX.Element children?: JSX.Element theme?: ThemeColors layerDepth?: number } export function Layout(props: LayoutProps) { const theme = props.theme // Get layer configuration based on depth const getLayerConfig = (depth: number): LayerConfig => { if (!theme?.layerBackgrounds) { return { depth: 0, background: "transparent" } } const backgrounds = theme.layerBackgrounds const depthMap: Record = { 0: { depth: 0, background: backgrounds.layer0 }, 1: { depth: 1, background: backgrounds.layer1 }, 2: { depth: 2, background: backgrounds.layer2 }, 3: { depth: 3, background: backgrounds.layer3 }, } return depthMap[depth] || { depth: 0, background: "transparent" } } // Get current layer background const currentLayer = getLayerConfig(props.layerDepth || 0) return ( {/* Header */} {props.header ? ( {props.header} ) : ( )} {/* Main content area with layer background */} {props.children} {/* Footer */} {props.footer ? ( {props.footer} ) : ( )} {/* Layer indicator */} {props.layerDepth !== undefined && ( )} ) }