package sihl
The modular functional web framework
Install
Dune Dependency
Authors
Maintainers
Sources
sihl-0.1.3.tbz
sha256=3d1acdd1eae24a7131033656f90b5d20c1621e6ef92957edf88a09b8b5f2d9e9
sha512=d224f54e20a9465c7a03d534dadcb2b9a181ae87c13731840db945aab37534f6f3982c5cb25a197e90c17d8772da062b19fa92bb93ed53a8b736c3776a7776db
doc/src/sihl.data/data_view.ml.html
Source file data_view.ml
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
open Base module PartialCollection = struct type controls = { first : Data_ql.Page.t option; previous : Data_ql.Page.t option; next : Data_ql.Page.t option; last : Data_ql.Page.t option; } [@@deriving show, eq, fields, yojson] type 'a t = { member : 'a list; total_items : int; controls : controls } [@@deriving show, eq, fields, yojson] let controls_of_pagination page total_items = let limit = Data_ql.Page.get_limit page in let offset = Data_ql.Page.get_offset page in let limit = Option.value ~default:25 limit in let offset = Option.value ~default:0 offset in let first = if offset <= 0 then None else Some (Data_ql.Page.set_offset 0 page) in let previous = if offset - limit >= 0 then Some (Data_ql.Page.set_offset (offset - limit) page) else None in let next = if offset + limit < total_items then Some (Data_ql.Page.set_offset (offset + limit) page) else None in let last = if offset < total_items - limit then Some (Data_ql.Page.set_offset (total_items - 1) page) else None in { first; previous; next; last } let create ~page ~meta items = let total_items = Data_repo.Meta.total meta in let controls = controls_of_pagination page total_items in { member = items; total_items; controls } end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>