import { raw } from 'hono/html'; import { Child } from 'hono/jsx'; import { APP_NAME } from "../siteinfo"; import { mainScriptStr } from '../utils/appScripts'; import { IncludeDependencyTags, PreloadDependencyTags, PreloadRules } from "./helpers/includesTags"; import { MetaTags, PersonaTags } from './helpers/metaTags'; type BaseLayoutProps = { children: Child; title: string; noIndex?: boolean; mainClass?: string; simple?: boolean; preloads?: PreloadRules[] }; export const BaseLayout = (props: BaseLayoutProps) => { const noIndex = (props.noIndex !== undefined) ? props.noIndex : false; const mainClass = (props.mainClass !== undefined) ? props.mainClass : ""; const preloads = (props.preloads !== undefined) ? props.preloads : []; const defaultPreloads: PreloadRules[] = [ {type: "style", href: "/dep/pico.min.css"}, {type: "style", href: "/css/stylesheet.min.css"}, ]; const appDefaultPreloads: PreloadRules[] = [ {type: "style", href: "/dep/toastify.min.css"}, {type: "script", href: "/dep/htmx.min.js"}, {type: "script", href: "/dep/toastify.js"}, ...defaultPreloads, {type: "script", href: mainScriptStr} ]; let preloadList: PreloadRules[] = []; if (props.simple) preloadList = defaultPreloads; else preloadList = appDefaultPreloads; preloadList = preloadList.concat(preloads); return (<> {raw("")}