Current section
Files
Jump to
Current section
Files
src/docs@views@page_view.erl
-module(docs@views@page_view).
-compile([no_auto_import, nowarn_unused_vars]).
-export([page_view/2]).
-export_type([page_view_props/0]).
-type page_view_props() :: {page_view_props,
docs@page_route:page_route(),
list(binary())}.
-spec page_view(sprocket@socket:socket(), page_view_props()) -> {sprocket@socket:socket(),
list(sprocket@element:element())}.
page_view(Socket, Props) ->
{page_view_props, Route, _} = Props,
Pages = [{page, <<"Introduction"/utf8>>, introduction},
{page, <<"Components"/utf8>>, components},
{page, <<"Misc."/utf8>>, misc}],
sprocket@component:render(
Socket,
[sprocket@html:html(
[sprocket@html@attribute:lang(<<"en"/utf8>>)],
[sprocket@html:head(
[],
[sprocket@html:meta(
[sprocket@html@attribute:charset(
<<"utf-8"/utf8>>
)]
),
sprocket@html:meta(
[sprocket@html@attribute:name(
<<"viewport"/utf8>>
),
sprocket@html@attribute:content(
<<"width=device-width, initial-scale=1"/utf8>>
)]
),
sprocket@html:meta(
[sprocket@html@attribute:name(
<<"description"/utf8>>
),
sprocket@html@attribute:content(
<<"Sprocket is a framework for building real-time applications in Gleam."/utf8>>
)]
),
sprocket@html:link(
[sprocket@html@attribute:rel(
<<"stylesheet"/utf8>>
),
sprocket@html@attribute:href(
<<"/app.css"/utf8>>
)]
),
sprocket@html:link(
[sprocket@html@attribute:rel(
<<"stylesheet"/utf8>>
),
sprocket@html@attribute:href(
<<"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css"/utf8>>
),
sprocket@html@attribute:integrity(
<<"sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf/nwasF0nqhPay5w/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w=="/utf8>>
),
sprocket@html@attribute:crossorigin(
<<"anonymous"/utf8>>
),
sprocket@html@attribute:referrerpolicy(
<<"no-referrer"/utf8>>
)]
)]
),
sprocket@html:body(
[sprocket@html@attribute:class(
<<"bg-white dark:bg-gray-900 dark:text-white flex flex-col h-screen"/utf8>>
)],
[sprocket@html:'div'(
[],
[sprocket@component:component(
fun docs@components@header:header/2,
{header_props,
[{menu_item,
<<"Github"/utf8>>,
<<"https://github.com/eliknebel/sprocket"/utf8>>}]}
)]
),
sprocket@component:component(
fun docs@components@responsive_drawer:responsive_drawer/2,
{responsive_drawer_props,
sprocket@component:component(
fun docs@components@sidebar:sidebar/2,
{sidebar_props, Pages, Route}
),
sprocket@html:'div'(
[sprocket@html@attribute:class(
<<"container mx-auto px-6"/utf8>>
)],
[case Route of
introduction ->
sprocket@component:component(
fun docs@components@pages@introduction:introduction_page/2,
introduction_page_props
);
components ->
sprocket@component:component(
fun docs@components@pages@components:components_page/2,
components_page_props
);
misc ->
sprocket@component:component(
fun docs@components@pages@misc:misc_page/2,
misc_page_props
);
unknown ->
sprocket@component:component(
fun docs@components@pages@not_found:not_found_page/2,
not_found_page_props
)
end]
)}
)]
)]
)]
).